AWL-Code-Portierung von Moeller-Electric (Sucosoft) zu Siemens / Verständnisfrage

Mats-

Level-1
Beiträge
4
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Community,

ich versuche grad ein Programm einer Moeller-Electric P4-341-MM1 auf eine S7-1500 zu portieren. Das klappt soweit auch gut, allerdings stolpere ich bei längeren AWL-Verknüpfungen an der Logik, da ich nicht weiß, wie die Steuerung mit der reihenweisen Verknüpfungen mittels AND und ODER umgeht. (vermutlich lesen von oben nach unten und Verknüpfung mit dem jeweils vorgestellten VKE, aber gefühlt denke ich, dass die beiden Steuerungen sich hier anders verhalten).

Hier ein einfaches Beispiel:
U Merker1
U Merker2
O Merker3
U Merker4
= Ergebnis

Bei Siemens würde das Ergebnis meines Wissens nach TRUE sein, wenn Merker 1=1 UND Merker 2=1 ODER Merker 3=1 und Merker 4=1.
Bei Moeller-Electric scheint es so zu sein, dass das Ergebnis TRUE ist, wenn Merker 1=1 UND Merker 2=1 und Merker 4=1 ODER Merker 3=1 und Merker 4=1, sprich Merker 4 definitiv "TRUE" sein muss, da von oben reihenweise verknüpft wird. Sollte es so sein, müsste bei Siemens noch eine Klammer um die ersten 3 Zeilen gesetzt werden.

Ich hoffe, ihr könnt mir hier helfen. Leider habe ich keine Möller Steuerung hier, damit ich das Verhalten testen kann.
Richtig toll wäre es, wenn jemand die unten genannten Codeschnipsel umwandeln könnte, bzw. meine Variante bestätigen kann. Dann kann ich andere Dinge davon ableiten.

Danke vorab!

Hier mal konkrete, komplexe Beispiele, bei deren Verknüpfung ich mir alles andere als sicher bin:

Beispiel 1)
Code in Sucosoft (Moeller-Electric):
ld Wass_tief
andn Stoer_pegel
andn Tendenz_steigend
or (Stoer_pegel
or (tendenz_steigend
and Wass_tief
)
and Blinker_1HZ
)
st Diode_tief

Vermutlicher Code in Siemens:
U #Wass_tief
UN #Stoer_pegel
UN #Tendenz_steigend
O
U(
U #Stoer_pegel
O
U #Tendenz_steigend
U #Wass_tief
)
U #Blinker_1HZ
= #Diode_tief

Beispiel 2)
=======
Code in Sucosoft (Moeller-Electric):
LD RRM_Handbetrieb
and (T_Ausschwenken
OR T_Andruecken
)

or (RRM_Uhrbetrieb
OR RRM_Spiegeldiff
and ( Schaltspur1_ausschw
or Schaltspur2_druecken
)
)
andn Not_aus
andn RRM_Gestoert
and Freigabe_Putzvorgang
st Hydraulikpu_einschalten

Vermutlicher Code in Siemens:
U(
U #RRM_Handbetrieb
U(
O #T_Ausschwenken
O #T_Andruecken
)
O
U(
O #RRM_Uhrbetrieb
O #RRM_Spiegeldiff
)
U(
O #Schaltspur1_ausschw
O #Schaltspur2_druecken
)
)
UN #Not_Aus
UN #RRM_Gestoert
U #Freigabe_Putzvorgang
= #Hydraulikpu_einschalten

Beispiel 3)
=======

Code in Sucosoft (Moeller-Electric):
Ld Freigabe_Putzvorgang
and (RRM_Uhrbetrieb
and Uhr_Start
or (RRM_Spiegeldiff
AND ( Differenz_Start
OR Uhr_Start
)
)
or (externer_Start
andn RRM_Handbetrieb
)
)
st Endschalter_ueberbruecken


Vermutlicher Code in Siemens:
U #Freigabe_Putzvorgang
U(
U #RRM_Uhrbetrieb
U #Uhr_Start
O
U #RRM_Spiegeldiff
U(
O #Differenz_Start
O #Uhr_Start
)
O
U #Externer_Start
UN #RRM_Handbetrieb
)
= #Endschalter_ueberbruecken
 
Hier ein einfaches Beispiel:
U Merker1
U Merker2
O Merker3
U Merker4
= Ergebnis

Bei Siemens würde das Ergebnis meines Wissens nach TRUE sein, wenn Merker 1=1 UND Merker 2=1 ODER Merker 3=1 und Merker 4=1.
Bei Moeller-Electric scheint es so zu sein, dass das Ergebnis TRUE ist, wenn Merker 1=1 UND Merker 2=1 und Merker 4=1 ODER Merker 3=1 und Merker 4=1, sprich Merker 4 definitiv "TRUE" sein muss, da von oben reihenweise verknüpft wird. Sollte es so sein, müsste bei Siemens noch eine Klammer um die ersten 3 Zeilen gesetzt werden.
Auch bei Siemens wird das von oben nach unten abgearbeitet und die Klammer wäre überflüssig. (Klammern sind manchmal nötig, wenn der AWL-Code auch in KOP oder FUP darstellbar sein soll.)
Für Ergebnis=1 muß auf jeden Fall Merker4=1 sein, und entweder Merker3 muß 1 sein oder Merker1 und Merker2 müssen beide 1 sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo PN/DP,

vielen Dank für die schnelle Antwort.

Das überrascht mich jetzt allerdings als vermeintlich "erfahrenen" Siemens Programmierer. Aufgrund der Lesbarkeit habe ich mir aber das setzen von Klammern und vermeintlichen "Leerzeilen" mit "O" zur Trennung angewöhnt, wodurch sich bisher nie die Frage gestellt hat.

Könnte sich bitte noch wer die oben genannten 3 Beispiele anschauen und mir ein Feedback geben?
 
Für Ergebnis=1 muß auf jeden Fall Merker4=1 sein, und entweder Merker3 muß 1 sein oder Merker1 und Merker2 müssen beide 1 sein.
Nein, Harald, das Wort 'entweder' muss weg, sonst deutest Du die Oder-Verknüpfung als Exklusiv-Oder. ;)

PS:
Hmmm. Stimmt so auch nicht. Verdammt, diese umgangssprachlichen Formulierungen haben es in sich!
Merker4 muss auf jeden Fall TRUE sein.
Merker3 kann TRUE sein (muss aber nicht, wenn Merker2 UND Merker1 TRUE sind) oder Merker2 UND Merker1 können TRUE sein (müssen aber nicht, wenn Merker3 TRUE ist).
 
Zuletzt bearbeitet:
Dass man überhaupt überlegen muss wie die AWL code interpretiert werden soll, erzählt mir dass man lieber den Sprung von Moeller AWL nach Siemens KOP oder FUP machen soll.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dass man überhaupt überlegen muss wie die AWL code interpretiert werden soll, erzählt mir dass man lieber den Sprung von Moeller AWL nach Siemens KOP oder FUP machen soll.
Tendenziell freunde ich mich auch immer mehr mit SCL an. Aber AWL mit TIA finde ich auch nicht prickelnd. Wir haben unseren Zulieferern schon AWL nur noch in ausnahmen genehmigt...
 
Doch, es ist genau so richtig wie PN/DP es schreibt.

Wenn du jetzt noch den Merker 4 vor den =M0.7 schreibst, musst du mit Klammern arbeiten, wenn es
in KOP/FUP dargestellt werden soll.


AWL_Kop.png
 
Dass man überhaupt überlegen muss wie die AWL code interpretiert werden soll, erzählt mir dass man lieber den Sprung von Moeller AWL nach Siemens KOP oder FUP machen soll.
Du hast Recht, Jesper.
Aber das bewahrt mich nicht davor, den "Sprung von Moeller AWL" richtig deuten zu müssen.
Mit Moeller AWL hatte ich bisher keinen Kontakt und bin deshalb dort am rätseln, ob ich richtig rate. Die Umsetzung in Siemens AWL konnte ich früher, als ich Siemens AWL noch benutzt habe, immer an einer PLC testen bzw. so formulieren, dass ein Test nicht nötig gewesen wäre.

Doch, es ist genau so richtig wie PN/DP es schreibt.
Jain. Harald meint ja das Richtige. Aber das Wörtchen 'entweder' ist trotzdem fehl am Platz, weil die Oder-Verknüpfung 'O Merker3' ein inklusives Oder meint, aber mit 'entweder ... oder ...' ein exklusives Oder bezeichnet wird.
Schreibt man entweder Merker3 oder Merker1 UND Merker2, so meint man damit, dass in dem Fall, dass sowohl Merker3 TRUE als auch Merker1 TRUE UND Merker2 TRUE sind, dennoch das Ergebnis FALSE ist, weil entweder nur Merker3 TRUE oder nur Merker1 UND Merker2 TRUE sein dürfen, um als Ergbenis TRUE zu liefern.
AWL ist da "leider" doch einwenig eindeutiger als die UmgangsSprache.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jain. Harald meint ja das Richtige. Aber das Wörtchen 'entweder' ist trotzdem fehl am Platz, weil die Oder-Verknüpfung 'O Merker3' ein inklusives Oder meint, aber mit 'entweder ... oder ...' ein exklusives Oder bezeichnet wird.
Schreibt man entweder Merker3 oder Merker1 UND Merker2, so meint man damit, dass in dem Fall, dass sowohl Merker3 TRUE als auch Merker1 TRUE UND Merker2 TRUE sind, dennoch das Ergebnis FALSE ist, weil entweder nur Merker3 TRUE oder nur Merker1 UND Merker2 TRUE sein dürfen, um als Ergbenis TRUE zu liefern.
AWL ist da "leider" doch einwenig eindeutiger als die UmgangsSprache.

Das seh ich anders, das und ist hier stärker als das oder:
man kann' s auch im Text in Klammern stellen : entweder Merker 3 oder (Merker 1 und Merker 2)

 
Das seh ich anders, das und ist hier stärker als das oder:
man kann' s auch im Text in Klammern stellen : entweder Merker 3 oder (Merker 1 und Merker 2)
Nein, das kann man nicht.

Ein "etweder oder" ist per Definition ein "exclusiv oder" und das meint, dass:

Wenn Merker 3 und Merker 2 und Merker 1 da sind, das Ergebnis FALSE ist.

Das wäre bei einem einfachen bzw. inklusiven Oder nicht der Fall.
 
Ich weiß, das "entweder" kann verwirren. Ich hatte erst ohne das "entweder" formuliert, doch da kam so eine unklare Beschreibung raus wie vom Fragesteller "wenn Merker 1=1 UND Merker 2=1 ODER Merker 3=1 und Merker 4=1." Weil da gar keine Kommas und Klammern stehen, kann man das verschieden auslegen... Ich habe es dann extra dazu geschrieben, damit man nicht versteht "... Merker3 oder Merker1 ...". Ich dachte mir da schon, daß das die meisten Leute so verstehen wie ich es meine, und daß fast nur Heinrich das so versteht wie ich es tatsächlich geschrieben habe. ;)
Ich meinte: der eine Fall oder der andere Fall trifft zu oder beide Fälle (nicht ausschließlich).

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das seh ich anders, das und ist hier stärker als das oder:
Das U Merker4 ist "stärker" als das O Merker3 und
das O Merker3 ist "stärker" als das U Merker2, weil weder ODER noch UND an sich "stärker" sind - hier entscheidet einzig und allein die Reihenfolge in der Abarbeitung (von oben nach unten).

man kann' s auch im Text in Klammern stellen : entweder Merker 3 oder (Merker 1 und Merker 2)
Durch die Verwendung von Klammern in AWL würde meine obige Behauptung allerdings ausgehebelt werden ...
 
Umwandlung mit Sucosoft 5.06
Anmerkung: Die Sucosoft ist extrem normkonform, Siemens-AWL nicht, da historisch ein eigener Standard.
 
Ich kann beim besten Willen nicht erkennen, wie man aus dem Programmierbeispiel:

" Hier ein einfaches Beispiel:"

U Merker1
U Merker2
O Merker3
U Merker4
= Ergebnis

Ein Exlusiv-Oder konstruieren kann.
 
Ich kann beim besten Willen nicht erkennen, wie man aus dem Programmierbeispiel:

" Hier ein einfaches Beispiel:"

U Merker1
U Merker2
O Merker3
U Merker4
= Ergebnis

Ein Exlusiv-Oder konstruieren kann.
Macht doch gar niemand. Meine umgangssprachliche Formulierung in #2 mit "entweder - oder" wird als Exklusiv-Oder verstanden.
 
Zurück
Oben