FB42 SEQ1 P02 : Heating oil SEQ1

 

 

 

Netzwerk 1: Show message on HMI

"HMI KEY".Message.Required_Temperature_Reached :=

ABS("DI OUT P02".RV200_PID.Setpoint - "DI OUT P02".RV200_PID.Input) < "HMI KEY".SetValues.Temperature_Deviation

AND "DI OUT P02".T201_PEW.Support.PEW_Scaled > 75.0; // °C

 

 

 

Netzwerk 2: Define last step

#SSM(LAST_STEP := 1);

 

 

 

Netzwerk 3: Step Switching Mechanism (SSM)

CASE #SSM.S.stepact OF

    0: // Waiting for sequencer to start

        #SSM.S.stepd := #SSM.S.steps;

        "DI MAIN P02".M00.SEQ1_Busy := FALSE;

       

    1: // Assign drivers velocity

        IF #SSM.S.steplo THEN

            "DI MAIN P02".M00.SEQ1_Busy := TRUE;

            // Assign actors pre-setting

            "DI OUT P02".RV200_PID.Mode := 3;

            "DI OUT P02".RV200_PID.ModeActivate := "HMI KEY".P02.RV200_PID.F12_Enable_WP;

        ELSE

            "DI OUT P02".RV200_PID.ModeActivate := FALSE;

            "DI OUT P02".M200.DRV.CmdExe_WP := "HMI KEY".P02.M200.F12_Enable_WP AND #SSM.S.stepa;

            "DI OUT P02".V200.VLV_O.CmdExe_WP := "HMI KEY".P02.V200.F12_Enable_WP AND NOT "HMI KEY".Message.Heating_Oil_Over_Heated_whilst_Production AND #SSM.S.stepa;

            // Calculate required temperature

            #SEQ400.SSM.S.steph := #SSM.S.steph OR NOT "DI OUT P02".M200.DRV.LampWP;

            #SEQ400.SSM.S.steps := #SSM.S.steps AND "DI OUT P02".RV200_PID.State = 3 AND "HMI KEY".P02.RV200_PID.F12_Enable_WP

            AND "DI OUT P02".V200.VLV_O.LampWP AND "DI OUT P02".M200.DRV.LampWP AND NOT "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q;

            #SEQ400();

            "FC CALC PE UNITS"(PU_EXE := #SSM.S.stepa,

                               PIPE_DN := 20.0,

                               PIPE_LENGTH := 6.52, // meter

                               HL_H := "HMI KEY".SetValues.FIT200_Heating_Oil_Flow,

                               TEMP_ACT_VAL := "DI OUT P02".T200_PEW.Support.PEW_Scaled,

                               PU_SET_VAL := "HMI KEY".SetValues.Scal_PE_Unit_PU_SET_VAL,

                               SET_POINT_TEMP => #Set_Point_Temperature,

                               PU_ACT_VAL => #PU_Current_Value,

                               TEMP_HOLD_TIME_SEC => #Temperature_Holding_Time); // sec

            "DI OUT P02".RV200_PID.Setpoint := #Set_Point_Temperature * "HMI KEY".SetValues.Scal_PE_Unit_Regulating_Factor;

        END_IF;

        // Query SEQ1_Done

        IF "DI MAIN P01".M00.SEQ1_Done THEN

            "DI MAIN P02".M00.SEQ1_Done := TRUE;

        END_IF;

END_CASE;

 

 

Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO