Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 47334

Geschachtelte IF-Anweisungen mit Funktionsbausteinsprache realisieren

$
0
0
Hallo zusammen,

ich nutze in TwinCAT3 die TF1910 UML Funktionen um bestehende StateMachines in Zustandsautomaten zu übertragen.
Aufgrund komplexer Transitionsbedingungen lager ich diese in separate Transitionselemente aus und rufe diese an der entsprechenden Stelle im Zustandsautomaten auf.
Vorgabe ist es die ausgelagerten Transitionen in Funktionsbausteinsprache zu realisieren.

Ich bin gerade an einer Transition, welche aus einer Vielzahl geschachtelter IF-Anweisungen besteht:

IF(PRG_Hauptspindeln.bFastTaskEnable AND (FPRG_EtherCatCom.SoE_Antrieb[diAxisNr].DriveStatusWord AND stSoE.ReadyPowerON(*Globale_Const.wCnst_SoE_ReadyPowerON*)) <> 0)
AND FPRG_EtherCatCom.SoE_Antrieb[diAxisNr].ECatState = stSoE.EcatStateOPmode(*Globale_Const.wCnst_SoE_EcatStateOPmode*)
THEN
IF( (stPbInData.wSTW1 AND stSTW1.NichtAUS3) <> 0) THEN (* TA2 *)
IF( (stPbInData.wSTW1 AND stSTW1.NichtAUS2) <> 0) THEN
IF( (stPbInData.wSTW1 AND stSTW1.Fuehrung) <> 0) THEN
IF( (stPbInData.wSTW1 AND stSTW1.NichtAUS1) = 0) THEN
stPbOutData.wZSW1:= stPbOutData.wZSW1 AND NOT stZSW1.Einschaltsperre;
iSAstate:= 3;
END_IF
END_IF
END_IF
END_IF
END_IF

Meine erste Idee ist es an dieser Stelle für jede IF-Anweisung ein Netzwerk zu erstellen, welches dann wiederum mit der nächsten Stufe (IF-Anweisung) verknüpft wird. Dies stelel ich mir so vor, dass der Ausgang des ersten Netzwerkes mit der Bedingung der nächsten IF-Anweisung mittels AND verbunden wird. Ist dies ein in der Praxis zulässiges Vorgehen?

Ich habe gerade die Sprung- und Marken-Funktionen in dem Infosys von Beckhoff gefunden. So wie ich es verstehen ist die eine bessere Umsetzung, da ich mit dem Sprung-befehl in die Marke des nächsten Netzwerks springen kann und somit in die nächste IF-Anweisung. Sehe ich das richtig so?

Vielen Dank im Voraus für eure Tipps.

Gruß Floh

Viewing all articles
Browse latest Browse all 47334


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>