- Beiträge
- 2.630
- Reaktionspunkte
- 766
-> Hier kostenlos registrieren
Servus..
ich bin jetzt dabei mir die SCL Sprache mit die Methode "learning by doing" rein zu ziehen.
Als unterlagen das Berger, Johannes Hofer Buch und natürlich das SPS-Forum.
Durch das der SCL Editor im TIA recht Anfänger freundlich ist komme ich ganz gut voran.
Doch kommt die mir die frage auf ob solche (Einfache) Code noch zu vereinfachen ist.
z.b.
Beim teil //Alarm High High, habe ich versucht die IF-Struktur zu verschachteln. Test haben gezeigt das diese Code dann nicht funktioniert. ist das die kürzte Methode ? Den Flipflop die ich drinnen hab geht auch bestimmt anders.
Beim Teil //Analog will ich das #Limit_LL auf diverse andere stellen schreiben. Mus ich das #Limit_Ll dann bei jede Zuweisung abfragen oder geht das auch das mann nur 1 ml abfragt und dann auf die andere stellen schreibt.
Beim Teil //Alarm and BIT OUT and STATE will ich das Bit #LL_AL_Intern auch weiter rangieren.
Muss man da so vorgehen wie ich gemacht hab ? (in der AWL komm ich mit 4 Zeilen zurecht)
ich bin gespannt auf euer Bemerkungen.
Bram
ich bin jetzt dabei mir die SCL Sprache mit die Methode "learning by doing" rein zu ziehen.
Als unterlagen das Berger, Johannes Hofer Buch und natürlich das SPS-Forum.
Durch das der SCL Editor im TIA recht Anfänger freundlich ist komme ich ganz gut voran.
Doch kommt die mir die frage auf ob solche (Einfache) Code noch zu vereinfachen ist.
Code:
// Alarm High High
IF NOT #HH_Activ THEN
#HH_AL_Intern := false;
GOTO Jump_HH;
;
END_IF;
IF #AV_intern >= #Limit_HH THEN
#Running_Time_HH_Help_M := TRUE;
ELSE
#Running_Time_HH_Help_M := false;
;
END_IF;
#TIMER_HH(IN := #Running_Time_HH_Help_M,
PT := #Delay_HH);
IF #TIMER_HH.Q = true THEN
#HH_AL_Intern := true;
ELSIF (#ACK AND #Extern_ACK_Activ) OR ((#AV_intern < (#Limit_HH - #HYSTERYSE_HH) AND NOT #Extern_ACK_Activ))
THEN
#HH_AL_Intern := false;
;
END_IF;
Jump_HH:
// Analog
#LL_LIM_OUT := #Limit_LL;
#Comm_ZLT.Limit_LL := #Limit_LL;
//Alarm and BIT OUT and STATE
IF #LL_AL_Intern THEN
#LL_ALARM_OUT := true;
#STATE_HMI.LL_ALARM_OUT := true;
#Comm_ZLT.STATE.LL_ALARM_OUT := true;
ELSE
#LL_ALARM_OUT := false;
#STATE_HMI.LL_ALARM_OUT := false;
#Comm_ZLT.STATE.LL_ALARM_OUT := false;
;
END_IF;
z.b.
Beim teil //Alarm High High, habe ich versucht die IF-Struktur zu verschachteln. Test haben gezeigt das diese Code dann nicht funktioniert. ist das die kürzte Methode ? Den Flipflop die ich drinnen hab geht auch bestimmt anders.
Beim Teil //Analog will ich das #Limit_LL auf diverse andere stellen schreiben. Mus ich das #Limit_Ll dann bei jede Zuweisung abfragen oder geht das auch das mann nur 1 ml abfragt und dann auf die andere stellen schreibt.
Beim Teil //Alarm and BIT OUT and STATE will ich das Bit #LL_AL_Intern auch weiter rangieren.
Muss man da so vorgehen wie ich gemacht hab ? (in der AWL komm ich mit 4 Zeilen zurecht)
ich bin gespannt auf euer Bemerkungen.
Bram
Zuletzt bearbeitet: