Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 47

Thema: Statische Variablen funktionieren nicht mehr nach LOOP

  1. #21
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.173
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von trinkiwinki Beitrag anzeigen
    TAR2 #temp_AR2
    ist diese TEMP oder STAT? Ich gehe von STAT aus....
    TEMP reicht.
    Warum wohl hat Züttu die Variable #temp_AR2 genannt?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. #22
    Registriert seit
    20.08.2007
    Beiträge
    40
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    TEMP reicht.
    Warum wohl hat Züttu die Variable #temp_AR2 genannt?

    Harald

    OK hast recht....Entschuldigung

    ABer so kann ich es nicht schreiben:

    TAR2 #temp_AR2 'Temp_AR2 wird ROT

    Muß das evtl. so heißen:

    L #temp_AR2
    TAR2

    ?

    Gruß

  3. #23
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.173
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard

    Hast Du eine TEMP-Variable "temp_AR2" als DWORD angelegt?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #24
    Registriert seit
    20.08.2007
    Beiträge
    40
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Hast Du eine TEMP-Variable "temp_AR2" als DWORD angelegt?

    Harald

    Ja. Halt noch im STAT Bereich, aber das sollte ja eigentlich keine ROlle spielen....
    Gruß

  5. #25
    Registriert seit
    05.10.2006
    Beiträge
    169
    Danke
    21
    Erhielt 19 Danke für 11 Beiträge

    Standard

    Das spielt sehr wohl eine Rolle, denn du weisst nicht mehr wo dein STAT-Register liegt, das steht ja in temp_AR2. Wenn du temp_AR2 im TEMP anlegst wird auch der Aufruf nicht mehr rot

  6. Folgender Benutzer sagt Danke zu Züttu für den nützlichen Beitrag:

    trinkiwinki (06.10.2010)

  7. #26
    Registriert seit
    20.08.2007
    Beiträge
    40
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Züttu Beitrag anzeigen
    Das spielt sehr wohl eine Rolle, denn du weisst nicht mehr wo dein STAT-Register liegt, das steht ja in temp_AR2. Wenn du temp_AR2 im TEMP anlegst wird auch der Aufruf nicht mehr rot

    Alles klar. Ist nun in Ordnung.


    DANKE vielmals an alle, die mir geholfen haben, das zu verstehen.......


    Gruß

    Marco

  8. #27
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.173
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard

    Doch, das spielt eine Rolle. Es darf nicht STAT sein.
    LAR2 #temp_AR2 wäre sogar gar nicht möglich, wenn temp_AR2 in STAT liegen würde.

    Was sagt die Fehlermeldung zur rot markierten Zeile?: "Anweisung nicht erlaubt für AR1/AR2-Befehls-Operanden"

    Auch wichtig:
    Code:
    ...
    LAR2 #Offset_adress_DB40
    ...
    // hier kann nicht auf STAT-Variablen zugegriffen werden!
    ...
    LAR2 #temp_AR2
    // erst wieder ab hier
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    trinkiwinki (06.10.2010)

  10. #28
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Kannste nicht ganz eindeutig schreiben, daß Dein Beitrag #10 ein Witz war?
    Der Beitrag wird wohl von einigen Lesern für bare Münze genommen werden.

    Harald
    Hey Harald,

    was soll die scheiss Anmache?

    Nicht mal du als "push" User (wird ja immer als besonders nützlich hervorgerufen ) kannst leugnen, dass mein Beitrag #10 richtig ist ist.

    Du bist nur der gleiche Depp wie ich, der da niemals drauf gekommen wäre.
    Es funktioniert so, und es ist ohne Multiinstanz einfach kürzer als das AR2 zu retten.

    Du legst du ja immer wert drauf den kürzesten Code zu posten.

    Alle weiterne Einschränkungen hatte ich bereits geschildert.

    Ich hoffe mal, dass dein Image des besten Programmierers unter der Sonne dadurch nicht allzu sehr leidet...

    Micha
    "arbeite klug, nicht hart" - deutsches Sprichwort

  11. #29
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.173
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Reden

    Zitat Zitat von SPSKILLER Beitrag anzeigen
    Zitat Zitat von PN/DP Beitrag anzeigen
    Kannste nicht ganz eindeutig schreiben, daß Dein Beitrag #10 ein Witz war?
    Der Beitrag wird wohl von einigen Lesern für bare Münze genommen werden.

    Harald
    Hey Harald,

    was soll die scheiss Anmache?

    Nicht mal du als "push" User (wird ja immer als besonders nützlich hervorgerufen ) kannst leugnen, dass mein Beitrag #10 richtig ist ist.

    Du bist nur der gleiche Depp wie ich, der da niemals drauf gekommen wäre.
    Es funktioniert so, und es ist ohne Multiinstanz einfach kürzer als das AR2 zu retten.

    Du legst du ja immer wert drauf den kürzesten Code zu posten.

    Alle weiterne Einschränkungen hatte ich bereits geschildert.

    Ich hoffe mal, dass dein Image des besten Programmierers unter der Sonne dadurch nicht allzu sehr leidet...

    Micha
    Hallo Micha,

    was soll denn jetzt Deine echte "scheiss Anmache"?
    Ich war ehrlich davon überzeugt, daß Dein Beitrag #10 nur ein Witz sein kann.
    Zitat Zitat von SPSKILLER Beitrag anzeigen
    Zitat Zitat von vierlagig Beitrag anzeigen
    (ich geh davon aus, dass hinter TAR1 und TAR2 noch ne variable steht ...)
    nee. sicher net.

    Das mit dem Beschreiben der ARs hinter dem Loop ist eigentlich genial, solange der Baustein nicht als Multiinstanz verwendet wird.

    Da bin ich in 15 Jahren nicht drauf gekommen...
    Mit Programmiererfahrung kann man doch nicht wirklich glauben, daß LAR1 + LAR2 hinter LOOP irgendwas sinnvolles bewirkt, außer
    die ARs auf 0 zu schreiben. Mit retten und und wieder herstellen hat das überhaupt nichts zu tun ... es ist noch nicht mal besonders
    kurz, weil komplett überflüssig. Also ich leugne ausdrücklich, daß an solchem Code irgend etwas richtig ist und funktioniert.

    4L hat ja versucht, Dir diplomatisch und schonend beizubringen, daß Du auf dem Holzweg bist, falls Dein Beitrag ernst gemeint war.

    Es ging trinkiwinki im Übrigen gerade darum, wegen Multiinstanz die Adressregister zu retten und wieder herzustellen.

    Weil kürzlich in einem anderen Thread ein User (angeblich mit vollem Wissen) einen nicht richtig funktionierenden Beispielcode postete,
    der zum STOP der CPU führen kann, habe ich Dich einfach gebeten, Deinen vermeintlichen Witz aufzuklären.

    Und was Deine weiteren Ausflüsse angeht:
    Willst Du nicht am Freitag zum Forum-Stammtisch nach Bielefeld kommen? Da könnten wir schön ein Bier zusammen trinken und Du sagst
    mir mal ins Gesicht, was Dir an mir nicht passt (gut programmieren können ist doch kein Übel).
    Vielleicht kann ich ja mein Auftreten hier noch verbessern.


    Prost
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  12. #30
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Damit auch ich das nun endlich begreife ...

    Ich dachte, es ist so, dass AR1 zur freien Verfügung steht. Wenn ich also garnicht erst mit AR2 rumhantiere, dann ich auch keine Falle stelle, wo vorübergehend der Zugriff auf die Lokaldaten fehl geht, da man ja AR2 in einem multiinstanzfähigen Baustein verbogen hat. Fazit: wenn man mit einem Quell- und Zielzeiger arbeiten muss, läd man die, wenn auch laufzeituneffektiver, wechselseitig in AR1. Und lässt die Codeakrobatik mit AR2 bleiben, um nicht in die Falle zu treten, dass während verbogenem AR2 der Zugriff auf Lokaldaten in die Hose geht.

    ... und irgendwie ist das dann doch sinnvoll, in AR2 eine Null zu laden, wenn, ich will es mal Root-Instanz nennen, wenn also der Baustein wie in dem gezeigten Fall auf eine Root-Instanz zugreift. Sowie in AR2 ein Offset steht, weil der gerade bearbeitete Baustein mit einer Multiinstanz aufgerufen wurde, ist es natürlich nicht mehr sinnvoll, dann AR2 mit Null zu füttern. Gut - der Beispielcode, der da die Null in AR2 läd, ist nicht mit voller Absicht entstanden.

Ähnliche Themen

  1. statische Variablen...
    Von snowleopard1702 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 08.05.2011, 11:47
  2. Ausgänge der Wago funktionieren nicht mehr
    Von Reto Hasler im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 22.07.2008, 20:55
  3. Statische Variablen in FB´s
    Von Gerri im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 26.06.2008, 14:34
  4. Antworten: 3
    Letzter Beitrag: 15.08.2006, 11:02
  5. Statische Variablen
    Von Sh4gr4th im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 09.12.2005, 14:45

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •