-> 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
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