Mit dem "U" als erster Befehl einer Verknüpfung ist wohl ein hartnäckiges Gerücht von AWL-Programmierern, die das Konzept der Erstabfrage/VKE-Begrenzung nicht verstanden hatten.
...
Nein, nie versionsabhängig. Das ist schon mindestens seit Step5 immer so.
Es gab durchaus S5-CPUs, die das Konzept der ErstAbfrage nicht verstanden hatten.
Ich erinnere mich an die Begegnung mit einer solchen CPU, bei der sich genau der "Fehler" zeigte, dass als ErrstVerknüpfung O statt U bzw. ON statt UN programmiert worden war. Damals war ich überhaupt nur deshalb auf die ProblemLösung gekommen, weil ich in irgendeiner SiemensDoku gelesen hatte, dass mit U bzw. UN begonnen werden muss. X bzw. XN gab es bei S5 noch nicht.
Doch. Bei S5 gab es also tatsächlich ein CPU-abhängiges Verhalten.
Wenn die vorherige Verknüpfung nicht abgeschlossen (begrenzt) ist, dann "heilt" auch ein U nicht diesen Fehler, sondern setzt die Verknüpfung fehlerhaft fort. Ein U ist genauso "falsch" wie O oder X.
Ein generelles "erzwungenes" LD nach IEC hilft dem Compiler allerdings ein kleines bisschen mehr, vom Programmierer ungewollte Fehler zu erkennen und zu melden.
Was Du hier beschreibst, ist etwas ganz anderes, Harald. Dass eine (versehentliche) nicht abgeschlossene Verknüpfung (z.B. durch Auskommentieren von Befehlen beim Testen) zu zwangsläufigen Fehlern in der nächsten Verknüpfung führen kann, ist unmittelbar einleuchtend und sicherlich kein versionsabhängiges Phänomen.
Das Konzept "ErstAbfrage/VKE-Begrenzung" gab es meines Wissens nur bei Siemens. Diese "automatische Erkennung" einer ErstVerknüpfung mit recht einfachen Mitteln ermöglichte es, auf die speziellen OP-Codes (LD, LDN kombiniert mit den Operanden A, E, M, D, T, Z) zur Kennzeichnung einer ErstVerknüpfung zu verzichten. Vermutlich in der Absicht, möglichst viele Reserven für zukünftige Erweiterungen des Befehlssatzes offen zu halten.
Edit:
Da ist der erste Code den ich eingeben habe, nachdem ich den Code in FUP gesehen habe, einfacher nachzuvollziehen. Für mich ist es wichtig den Code wie es der Programmierer damals für unsere Anlage geschrieben hat, also dann direkt eingegeben in AWL, diesen in FUP umzuschreiben, damit ich den AWL Code verstehe. Vielleicht verstehe ich irgendwann AWL auch.
Das ist nur eine Frage der Übung im Umgang damit. Ich finde AWL einfacher als FUP, weil ...
Ein wichtger Hinweis ist denke ich mal das jede Zeile das VKE beeinflusst und das man den Code von oben nach unten lesen muss.
Man muss nicht nur von oben nach unten lesen, man darf es auch bzw. man darf sich darauf verlassen, dass dies funktioniert und der AWL-Code dadurch eindeutig ist. Für FUP sieht das schon komplizierter und weniger eindeutig aus, weil es hier ausser "von oben nach unten" auch noch die Richtung "von links nach rechts" gibt. Da kann man bei FUP gelegentlich ins Grübeln kommen, welche Richtug den Vorrang hat. In dieser Beziehung ist AWL wirklich einfacher als FUP.
@ Heinileini Hast du diesen AWL Code in eine LOGO und konntest du daraus diesen Funktionsplan daraus übersetzen?
Die LOGO! kennt kein AWL. Sie kann nur von FUP in KOP bzw. von KOP ind FUP umwandeln (wenn überhaupt
).
Und FUP bei der LOGO! ist eine ganz andere Welt als FUP bei sonstigen Steuerungen. Zuerst LOGO!-FUP zu erlernen, um damit den Einstieg in andere FUPs zu erleichtern, das funktioniert leider nicht wirklich!
Ich habe nur deshalb LOGO!-FUP gewählt, weil ich es zur Verfügung habe und mich davor scheue, die Kästchen und Verbindungen "zu Fuss" zu malen. Reine Bequemlichkeit meinerseits.
Die Umwandlung von AWL in FUP habe ich "im Kopf" gemacht, ganz ohne Unterstützung durch irgendein Programm.