190B
Level-1
- Beiträge
- 1.124
- Reaktionspunkte
- 214
-> Hier kostenlos registrieren
... man ist/wird verwirrt !:???:
Ja, so geht es uns auch......
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
... man ist/wird verwirrt !:???:
Üblicherweise unterscheidet man in der IT schon zwischen Init und Restore / Wiederherstellen von Registern.
Was soll bei einem bedingten Aufruf passieren? Solange ich AR2 in Ruhe lasse nix
Gruß
Dieter
Hab nicht gewusst dass AR2 automatisch korrigiert wird falls man danach Multiinstanz 4A aufruft ...
Das AR2 wird nicht korrigiert.
Es wird beim Aufruf des FB verwendet.
Aber das weißt du ja schon.
Alex PLC ist kein Geheimnis, wenn man nachliest.
bike
Hallo Leute,
entschuldigt die späte Antwort! ERSTMAL VIELEN DANK FÜR DIE ZAHLREICHEN UND GUREN BEITRÄGE!
Leider handelt es sich bei dem Integer-Wert als Bezug für die Adresse um eine Vorgabe, die ich nicht ändern kann! Ich werde aber auf jeden Fall die Adressen in Zukunft zwischenspeichern!
Vielen Dank an euch!
Marcus
[COLOR=#333333]L #Eingang //INT(IN)
[/COLOR]SLD 3
T [COLOR=#333333]#EingangTEMP //DINT(TEMP)[/COLOR]
L #Ausgang //INT(IN)
SLD 3
T #AusgangTEMP //DINT(TEMP)
L EW [[COLOR=#333333]#EingangTEMP[/COLOR]]
[COLOR=#333333](Bitmanipulation)
[/COLOR]
//L EW [[COLOR=#333333]#EingangTEMP[/COLOR]]
[COLOR=#333333]T AW [[/COLOR]#AusgangTEMP[COLOR=#333333]]
[/COLOR]
Also , was soll man in diesem spezial Fall machen ... AR2 RESTORE/Init ?
@TE; Wenn man ein EW über Pointer ansprechen muss , dann bitte es gut dokumentieren.
Solltest du in deinem FB das 2. Register benötigen, dann dieses im ersten NW1
LAR2
T #AR2_SAVE
und im letzten NW
L #AR2_SAVE
TAR2
schreiben, dann passiert dir beim Rücksprung aus der Funktion kein unschönes Erlebnis.
Da hast du aber einen groben Gedankenfehler, wozu das Sichern des AR2 in einem FB überhaupt notwendig ist.
Am Ende des FB interessiert es nämlich überhaupt keinen mehr ob das AR2 passt oder nicht, weil der Inhalt dann nicht mehr benötigt wird.
Wenn du das AR2 manipulierst, laufen alle Zugriffe auf statische Variablen bei symbolischer Adressierung auf falsche Speicherbereiche. Darum muss es heißen:
Bevor in einem FB das AR2 manipuliert wird, sichern, und unmittelbar nachdem es nicht mehr verwendet wird, wiederherstellen. Bzw. spätestens dann, wenn man auf eine Variable zugreifen will die im Instanz-DB des FB liegt, d.h. In, Out, InOut oder Stat.
Aber das sieht man selbst bei Siemens Programmbeispielen, dass da ohne Sinn und Verstand Register gesichert und rückgesichert werden. Was nur zeigt dass der Programmierer überhaupt nicht verstanden hat was er da macht.
Thomas, ich habe es gerade versucht, und habe beim Rücksprung bewusst Müll in das AR2 geschrieben und es hat beim Aufruf des nächsten FB geknallt.
TAR2 LD 0
+AR2 P#12.0
UC "FB12"
LAR2 LD 0
Makro eben auch das Sichern und Wiederherstellen des AR2 beinhaltet.
Ein Call "FB12" umschließt dann automatisch folgendes:
Code:TAR2 LD 0 +AR2 P#12.0 UC "FB12" LAR2 LD 0
L DW#16#87000000
LAR1
L P#9999.7
T D [AR1,P#0.0]
Was meinst du mit Überlauf?
Der Lokaldaten-Bereich hat je nach CPU nur eine bestimmte Größe.
Was passiert, wenn im aufgerufen FB die kompletten Lokaldaten belegt werden?
Bin zwar selber noch nie in die Situation gekommen ... aber es gibt ja bekanntlich nichts was nicht irgendeiner Programmierer fertig bringt
Pro Baustein wird der Lokaldatenbereich schon beim Laden überprüft.
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen