-> Hier kostenlos registrieren
Hallo
Bis jetzt habe ich immer gelesen, aber heute mal eine Frage an die Pofis was FUP/KOP/AWL angeht.
Ich selbst komme eher aus dem Bereich der textorientierten Hochsprachen (C/C++ bzw. Delphi/Pascal) und hatte bis auf einen kurzen "Ausflug" in Richtung "Codesys" bis vor einem Jahr weniger mit SPS zu tun. Das TIA V11 ermöglicht ja nun ohne Zusatzlizenz auch in SCL zu programmieren. Nun sammle ich Argumente für TIA V11 und SCL. Ohne damit FUP/KOP/AWL in Abrede zu stellen...
Folgender SCL-Code soll in FUP bzw. AWL erstellt werden. Ich behaupte nun dass jede zu erfüllende Bedingung (IF/ELSIF) in einem eigenen Netzwerk dargestellt werden muss, wobei alle nicht klar definierten VKE bei FUP/KOP/AWL explizit in einem eigenen Netzwerk ausgeschlossen werden muss. Oder liege ich da falsch? Wie würde das in z.B. FUP aussehen?
Ich stelle mir ein Netzwerk vor in welchem alle verwendeten M11.x auf "0" gesetzt werden, danach drei Netzwerke mit den Bedingungen.
Das sieht zwar auf den ersten Blick trivial aus, aber wenn sich die Bedingungen weiter verzweigen (siehe Bsp.) vermute ich lange komplizierte Netzwerke.
Ich hoffe ich habe halbwegs verständlich das Problem darstellen können.
THX
flicflac
Bis jetzt habe ich immer gelesen, aber heute mal eine Frage an die Pofis was FUP/KOP/AWL angeht.
Ich selbst komme eher aus dem Bereich der textorientierten Hochsprachen (C/C++ bzw. Delphi/Pascal) und hatte bis auf einen kurzen "Ausflug" in Richtung "Codesys" bis vor einem Jahr weniger mit SPS zu tun. Das TIA V11 ermöglicht ja nun ohne Zusatzlizenz auch in SCL zu programmieren. Nun sammle ich Argumente für TIA V11 und SCL. Ohne damit FUP/KOP/AWL in Abrede zu stellen...
Folgender SCL-Code soll in FUP bzw. AWL erstellt werden. Ich behaupte nun dass jede zu erfüllende Bedingung (IF/ELSIF) in einem eigenen Netzwerk dargestellt werden muss, wobei alle nicht klar definierten VKE bei FUP/KOP/AWL explizit in einem eigenen Netzwerk ausgeschlossen werden muss. Oder liege ich da falsch? Wie würde das in z.B. FUP aussehen?
Code:
IF "M10.0" AND "M10.1" AND "M10.2" THEN
"M11.0" := TRUE;
"M11.1" := FALSE;
"M11.2" := FALSE;
ELSIF "M10.0" AND NOT "M10.1" AND NOT "M10.2" THEN
"M11.0" := TRUE;
"M11.1" := TRUE;
"M11.2" := FALSE;
ELSIF NOT "M10.0" AND "M10.1" AND "M10.2" THEN
"M11.0" := TRUE;
"M11.1" := FALSE;
"Tag_1" := TRUE;
ELSE
"M11.0" := FALSE;
"M11.1" := FALSE;
"M11.2" := FALSE;
END_IF;
Ich stelle mir ein Netzwerk vor in welchem alle verwendeten M11.x auf "0" gesetzt werden, danach drei Netzwerke mit den Bedingungen.
Das sieht zwar auf den ersten Blick trivial aus, aber wenn sich die Bedingungen weiter verzweigen (siehe Bsp.) vermute ich lange komplizierte Netzwerke.
Code:
IF (
("M10.0" AND ("M12.0" AND NOT "M12.1"))
OR
("M10.0" AND ("M12.0" AND NOT "M12.2"))
)
AND "M10.1" AND "M10.2" THEN
"M11.0" := TRUE;
"M11.1" := FALSE;
"M11.2" := FALSE;
ELSIF
...
Ich hoffe ich habe halbwegs verständlich das Problem darstellen können.
THX
flicflac