FB32 SEQ1 P01 Spring block testing (slave 1)

 

 

 

Netzwerk 1: Pre-Setting

 

"M01 RdyToStart" :=

"M01 HomPos" AND "DI MAIN P05".SEQ1.Shift_Register.%X3;

 

 

 

Netzwerk 2: Execute SEQ1

 

#SSM1(STEP_PLS := "HMI KEY".P01.GLB.F17_StepPls,

      STEP_MNS := "HMI KEY".P01.GLB.F18_StepMns,

      GOTO_STEP := "HMI KEY".P01.GLB.F19_GoToStep,

      GOTO_STEP_NO := "HMI KEY".P01.GLB.GoToStep,

      MAX_STEP := 4);

 

 

 

Netzwerk 3: Step jump distributor

 

CASE #SSM1.S.stepact OF

    0: // Waiting for SEQ1 to start

        "M01 SEQ1 Active" := FALSE;

        #Index := 0;

        IF NOT "DI MAIN P05".SEQ1.Shift_Register.%X3 THEN

            "M01 Enbl toRTT" := TRUE;

            RETURN;

        END_IF;

        #SSM1.S.stepd := #SSM1.S.steps AND "M01 RdyToStart" AND "M01 Enbl frmRTT";

       

    1: // HSC wait for stabled start value

        "M01 SEQ1 Active" := TRUE;

        IF #SSM1.S.stepfc THEN

            "M01 Enbl frmRTT" := FALSE;

            #Index := #Index + 1;

            #SSM1.S.c1.set := 8;

            RETURN;

        ELSE

            "M01 HSC OnOff" := TRUE;

            #SSM1.S.c1.start := "DI OUT P01".HSC_TRVL_IO.UserStatusFlags.StatusDQ1;

            IF #SSM1.S.c1.done THEN

                #SSM1.S.stepd := TRUE;

            END_IF;

        END_IF;

       

    2: // Z01 spring-block slide downward WP

        "DI OUT P01".Z01.VLV.CmdExe_HP := FALSE;

        "DI OUT P01".Z01.VLV.CmdExe_WP := "HMI KEY".P01.Z01.F12_Enable_WP;

        #SSM1.S.c1.start := "DI OUT P01".Z01.FB_WP;

        #SSM1.S.c1.set := 8;

        #SSM1.S.stepd := #SSM1.S.c1.done;

       

    3: // Spring-block travel measuring

        #SSM1.S.c1.start := TRUE;

        #SSM1.S.c1.set := 8;

        "DI OUT P01".MANUAL.SpringBLK_LS.Measurement[#Index] := "DI OUT P01".HSC_TRVL_IO.OUT.MeasuredValue;

        IF "DI OUT P01".MANUAL.SpringBLK_LS.Compensation < ABS("DI OUT P01".HSC_TRVL_IO.OUT.MeasuredValue - "DatOfMod".P01.STS.MeanVal_LS_BLK) THEN

            "DI MAIN P05".SSM1.Shift_Register_BadParts.%X3 := TRUE;

        END_IF;

        #SSM1.S.stepd := #SSM1.S.c1.done;

       

    4: // Z01 move spring-block slide upward HP

        "DI OUT P01".Z01.VLV.CmdExe_WP := FALSE;

        "DI OUT P01".Z01.VLV.CmdExe_HP := "HMI KEY".P01.Z01.F11_Enable_HP;

       

        IF "DI OUT P01".Z01.FB_HP AND #Index < 4 THEN

            #SSM1.S.stepnew := 1;

            #SSM1.S.stepd := TRUE;

        ELSIF "DI OUT P01".Z01.FB_HP THEN

            "DatOfMod".P01.STS.MeanVal_LS_BLK :=

            ("DI OUT P01".MANUAL.SpringBLK_LS.Measurement[1]

            + "DI OUT P01".MANUAL.SpringBLK_LS.Measurement[2]

            + "DI OUT P01".MANUAL.SpringBLK_LS.Measurement[3]

            + "DI OUT P01".MANUAL.SpringBLK_LS.Measurement[4]) / 4.0;

            #FLT."3_FAULT_00_15".%X0 := "DI MAIN P05".SEQ1.Shift_Register_BadParts.%X3;

            "M01 SSM1 Done" := "M01 Enbl toRTT" := TRUE;

        END_IF;

END_CASE;

 

 

Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO