-> Hier kostenlos registrieren
Moin moin,
ich hoffe mit diesr Frage nicht wieder einen "Threadtsunami" auszulösen aber ich hätte gern mal eine grundsätzliche Einschätzung...
Viele kenne ja bereits das Prog. oder Grundgerüst aus den vorhergegangenen Threads. Ich habe es auf Grund div. Anregungen und um es für mich übersichtlicher zu machen etwas umgebaut.
Kann ich das eigenlich mit RS Gliedern schreiben oder ist auch davon mal wieder abzuraten?
Danke vorab...
ich hoffe mit diesr Frage nicht wieder einen "Threadtsunami" auszulösen aber ich hätte gern mal eine grundsätzliche Einschätzung...
Viele kenne ja bereits das Prog. oder Grundgerüst aus den vorhergegangenen Threads. Ich habe es auf Grund div. Anregungen und um es für mich übersichtlicher zu machen etwas umgebaut.
Kann ich das eigenlich mit RS Gliedern schreiben oder ist auch davon mal wieder abzuraten?
Danke vorab...
Code:
(* Initialisierung *)
RS_Start(SET:= xStart_wab , RESET1:=xStop_wab );
RS_Init(SET:= nLevel_t1<nLevel_t1_min AND nLevel_t2<nLevel_t2_min , RESET1:=F_TRIG_Start.Q );
xStartVorgang:= RS_Init.Q1;
(* Startvorgang *)
IF RS_Start.Q1 AND RS_Init.Q1 AND xStop_wab=FALSE THEN
RS_P1_Start(SET:=nLevel_t1<(nLevel_t1_max-100) , RESET1:=nLevel_t1>nLevel_t1_max ); (* P1 | T1 auffüllen *)
xP1:= RS_P1_Start.Q1;
RS_GWP_Start(SET:=nLevel_t1>(nLevel_t1_min+400) , RESET1:=nLevel_t1>nLevel_t1_max ); (* GWP | T1 auffüllen *)
xGWP:= RS_GWP_Start.Q1;
TOF_StaFilt(IN:=nLevel_t1>nLevel_Filt_Start , PT:=tStartDauer , Q=> , ET=> ); (* Filt | Start Filtrierungszyklus *)
xFilt:= TOF_StaFilt.Q;
RS_P4_Start(SET:=nLevel_t2>nLevel_StaP4 , RESET1:=RS_Start.Q1=FALSE AND RS_Init.Q1=FALSE ); (* P4 | Start P4 *)
xP4:= RS_P4_Start.Q1;
RS_MV2_Start(SET:=nLevel_t2>(nLevel_t1+100) , RESET1:=nLevel_t2>nLevel_t2 ); (* MV2 | Start Magnetventiel 2 *)
xMV2:= RS_MV2_Start.Q1;
F_TRIG_Start(CLK:=TOF_StaFilt.Q , Q=> ); (* Rücksetzen Startvorgang *)
ELSE
xStop_wab:= TRUE
END_IF
(* Betrieb *)
IF RS_Start.Q1 AND RS_Init.Q1=FALSE AND xStop_wab=FALSE THEN
RS_P4_Betrieb(SET:=nLevel_t2>(nLevel_t2_min+100) , RESET1:=nLevel_t2>nLevel_t2_min ); (* P4 | Start P4 *)
xP4:= RS_P4_Betrieb.Q1;
RS_P1_Betrieb(SET:=nLevel_t1<1200 , RESET1:=nLevel_t1>nLevel_t1_max ); (* P1 | T1 auffüllen *)
xP1:= RS_P1_Betrieb.Q1;
RS_GWP_Betrieb(SET:=nLevel_t1>1500 , RESET1:=nLevel_t1>nLevel_t1_max ); (* GWP | T1 auffüllen *)
xGWP:= RS_GWP_Betrieb.Q1;
RS_Filt(SET:=nLevel_t2<(nLevel_t2_min+100) , RESET1:=nLevel_t2>nLevel_t2_max OR nLevel_t1<nLevel_t1_min ); (* ZwischenFiltrierung *)
xFilt:= RS_Filt.Q1;
ELSE
xStop_wab:= TRUE
END_IF