Hallo,
caret schrieb:
Nach deiner Aussage soll ja angeblich auch auf Stackoperationen UND stärker binden als ODER. Der AWL Code würde dann dem folgenden Ausdruck entsprechen:
...
FAZIT:
Die Steuerungen arbeiten allesamt sehr unterschiedlich. Da hilft wirklich nur ein Blick ins Handbuch. Deswegen sollten alle hier genau angeben auf welcher SPS sie arbeiten und ggf. dann auch noch Quellangaben machen.
Was reine Bitverknüpfungen angeht können die gar nicht unterschiedlich arbeiten. Wie ich schon schrieb: Wem willst du so ne Steuerung verkaufen bei der Bitaritmethik nach Lust und Laune gemacht wird. Intern passiert bei der S7-200/300 vielleicht was anderes, aber nach aussen machen die genau das gleiche. Der Unterschied besteht darin das du bei ner 300er Klammern setzt, und bei der 200er durch OLD und ULD mit dem Ergebnis auf dem Stack arbeitest.
U E1.1
O E1.2
U(
U E 1.3
U E1.4
O E1.5
)
U E1.6
ergibt auf der 300er das gleiche wie das auf der 200er dieses:
LD E1.1
O E1.2
LD E1.3
U E1.4
O E1.5
ULD
U E1.6
Das Programm wird immer noch sequentiell abgeabeitet, aber durch das arbeiten mit dem Stack werden Zwischenergebnisse benutzt, die genaugenommen die Reihenfolge der Vernküpfung ändern.
Vermutlich wird in der 300er bei erkennen einer Klammer das gleiche gemacht wie bei der 200er beim erkennen eines LD-Befehls, nämlich das Zwischenergenis auf den Stack gepackt. Nach dem schliessen der Klammer (300) oder einem ULD/OLD (200er) wird das Ergenbis in der Klammer mit dem Wert auf dem Stack vernküpft.
In AWL ist man eh immer bemüht Klammern zu vermeiden und durch die Reihenfolge der programmierung diese zu umgehen. Wenn man als AWL programmierer sich anguckt was aus einer Verknüpfung wird wenn man sie von FUP oder KOP umwandelt bekommt man schon mal Bauchschmerzen. IMO kommt daher auch das Gerücht AWL wäre schwerer zu lesen. Ist es IMO aber nicht wenn man es gleich in AWL macht.
Torsten
Edit: Wenn es dir nur darum geht einen Operanden mit dem Stack zu verknüpfen hast du recht, es gibt keine Bevorzugung.
Wenn du 3+7 rechnest ist die Regel "Punkt vor Strich" natürlich Witzlos, es gibt ja nur eine Operation. Wenn aber mehr ins Spiel kommen gilt die Regel. Hoffentlich auch für SPS Hersteller !
Man kommt aber nicht immer mit einer Operation aus. Und man fährt auch schlecht wenn man die hälfte der Rechnung weglässt um dann zu sagen "Punkt vor Strich, wer braucht das schon"...