FB38 MANU P01 Manual operation mode

 

 

 

Netzwerk 1: 1M1 Charging conveyor

    IF #ST_MANU THEN

        "DI OUT P01"."1M1".DRV.SetValSpd := #Support."1M1".ManuSpeed_2;

        IF "HMI KEY".P01."1M1".F3_Jog_slow_WP OR "HMI KEY".P01."1M1".F4_Jog_slow_HP THEN

            "DI OUT P01"."1M1".DRV.SetValSpd := #Support."1M1".ManuSpeed_1;

        END_IF;

        // GotoPos create falling edge when set point reached

        #tmp_dummy_imp := FALSE;

        IF NOT "HMI KEY".P01."1M1".F17_GoToPos AND #Support."1M1".F17_GoToPos_FN AND NOT "DI OUT P01"."1M1".DRV.SetPoReach THEN

            #tmp_dummy_imp := TRUE;

        END_IF;

        #Support."1M1".F17_GoToPos_FN := "HMI KEY".P01."1M1".F17_GoToPos;

        // Stop GotoPos by falling edge

        IF #tmp_dummy_imp OR "DI OUT P01"."1M1".DRV.GenFlt THEN

            "HMI KEY".P01."1M1".F17_GoToPos := FALSE;

        END_IF;

        // Stop GotoPos when set point reached

        IF "HMI KEY".P01."1M1".F19_Jog_fast_WP OR "HMI KEY".P01."1M1".F20_Jog_fast_HP OR "DI OUT P01"."1M1".DRV.SetPoReach THEN

            "HMI KEY".P01."1M1".F17_GoToPos := FALSE;

        END_IF;

       

        // Jog fast positive create rising edge (impulse)

        #tmp_dummy_imp := FALSE;

        IF "HMI KEY".P01."1M1".F19_Jog_fast_WP AND NOT #Support."1M1".F19_Jog_fast_WP_FP THEN

            #tmp_dummy_imp := TRUE;

        END_IF;

        #Support."1M1".F19_Jog_fast_WP_FP := "HMI KEY".P01."1M1".F19_Jog_fast_WP;

        // Jog fast positive (toggle function)

        IF #tmp_dummy_imp THEN

            #Support."1M1".CmdExe_fast_WP := NOT #Support."1M1".CmdExe_fast_WP;

            #Support."1M1".CmdExe_fast_HP := FALSE;

        END_IF;

        // Jog slow positive (button function)

        IF "HMI KEY".P01."1M1".F3_Jog_slow_WP THEN

            #Support."1M1".CmdExe_slow_WP := TRUE;

            #Support."1M1".CmdExe_fast_WP := FALSE;

            #Support."1M1".CmdExe_fast_HP := FALSE;

        ELSE

            #Support."1M1".CmdExe_slow_WP := FALSE;

        END_IF;

       

        // Jog fast negative create rising edge (impulse)

        #tmp_dummy_imp := false;

        IF "HMI KEY".P01."1M1".F20_Jog_fast_HP AND NOT #Support."1M1".F20_Jog_fast_HP_FP THEN

            #tmp_dummy_imp := TRUE;

        END_IF;

        #Support."1M1".F20_Jog_fast_HP_FP := "HMI KEY".P01."1M1".F20_Jog_fast_HP;

        // Jog fast negative (toggle function)

        IF #tmp_dummy_imp THEN

            #Support."1M1".CmdExe_fast_HP := NOT #Support."1M1".CmdExe_fast_HP;

            #Support."1M1".CmdExe_fast_WP := FALSE;

        END_IF;

        // Jog slow negative (button function)

        IF "HMI KEY".P01."1M1".F4_Jog_slow_HP THEN

            #Support."1M1".CmdExe_slow_HP := TRUE;

            #Support."1M1".CmdExe_fast_WP := FALSE;

            #Support."1M1".CmdExe_fast_HP := FALSE;

        ELSE

            #Support."1M1".CmdExe_slow_HP := FALSE;

        END_IF;

    ELSE

        "HMI KEY".P01."1M1".F17_GoToPos := FALSE;

    END_IF;

   

    // Antrieb Enable HP/WP

    "HMI KEY".P01."1M1".Enable_HP := "HMI KEY".P01."1M1".Enable_WP :=

    #Support."1M1".ManuSpeed_2 > 0

    AND "DI OUT P01"."1M1".DRV.ReadyToStart

    AND ("DI OUT P01".Support."1M2 EndLimUp" OR "DI OUT P01".Support."1M2 EndLimDown");

    // Disabling HP (negative)

    IF NOT "HMI KEY".P01."1M1".Enable_HP OR "M00 ManuCmpltMa Imp" THEN

        #Support."1M1".CmdExe_fast_HP := #Support."1M1".CmdExe_slow_HP := "HMI KEY".P01."1M1".F17_GoToPos := FALSE;

    END_IF;

    // Disabling WP (positive)

    IF NOT "HMI KEY".P01."1M1".Enable_WP OR "M00 ManuCmpltMa Imp" THEN

        #Support."1M1".CmdExe_fast_WP := #Support."1M1".CmdExe_slow_WP := "HMI KEY".P01."1M1".F17_GoToPos := FALSE;

    END_IF;

    // Execute WP/HP travel

    "DI OUT P01"."1M1".DRV.ActorJog_WP := #Support."1M1".CmdExe_fast_WP OR #Support."1M1".CmdExe_slow_WP;

    "DI OUT P01"."1M1".DRV.ActorJog_HP := #Support."1M1".CmdExe_fast_HP OR #Support."1M1".CmdExe_slow_HP;

 

 

 

Netzwerk 2: 1M2 Lifting drive

    IF #ST_MANU THEN

        "DI OUT P01"."1M2".DRV.SetValSpd := "DI OUT P01".MANUAL.Support."1M2".ManuSpeed_2;

        IF "HMI KEY".P01."1M2".F3_Jog_slow_WP OR "HMI KEY".P01."1M2".F4_Jog_slow_HP THEN

            "DI OUT P01"."1M2".DRV.SetValSpd := #Support."1M2".ManuSpeed_1;

        END_IF;

        // GotoPos create falling edge when set point reached

        #tmp_dummy_imp := FALSE;

        IF NOT "HMI KEY".P01."1M2".F17_GoToPos AND #Support."1M2".F17_GoToPos_FN AND NOT "DI OUT P01"."1M2".DRV.SetPoReach THEN

            #tmp_dummy_imp := TRUE;

        END_IF;

        #Support."1M2".F17_GoToPos_FN := "HMI KEY".P01."1M2".F17_GoToPos;

        // Stop GotoPos by falling edge

        IF #tmp_dummy_imp OR "DI OUT P01"."1M2".DRV.GenFlt THEN

            "HMI KEY".P01."1M2".F17_GoToPos := FALSE;

        END_IF;

        // Stop GotoPos when set point reached

        IF "HMI KEY".P01."1M2".F19_Jog_fast_WP OR "HMI KEY".P01."1M2".F20_Jog_fast_HP OR "DI OUT P01"."1M2".DRV.SetPoReach THEN

            "HMI KEY".P01."1M2".F17_GoToPos := FALSE;

        END_IF;

       

        // Jog fast positive create rising edge (impulse)

        #tmp_dummy_imp := FALSE;

        IF "HMI KEY".P01."1M2".F19_Jog_fast_WP AND NOT #Support."1M2".F19_Jog_fast_WP_FP THEN

            #tmp_dummy_imp := TRUE;

        END_IF;

        #Support."1M2".F19_Jog_fast_WP_FP := "HMI KEY".P01."1M2".F19_Jog_fast_WP;

        // Jog fast positive (toggle function)

        IF #tmp_dummy_imp THEN

            #Support."1M2".CmdExe_fast_WP := NOT #Support."1M2".CmdExe_fast_WP;

            #Support."1M2".CmdExe_fast_HP := FALSE;

        END_IF;

        // Jog slow positive (button function)     

        IF "HMI KEY".P01."1M2".F3_Jog_slow_WP THEN

            #Support."1M2".CmdExe_slow_WP := TRUE;

            #Support."1M2".CmdExe_fast_WP := FALSE;

            #Support."1M2".CmdExe_fast_HP := FALSE;

        ELSE

            #Support."1M2".CmdExe_slow_WP := FALSE;

        END_IF;

       

        // Jog fast negative create rising edge (impulse)

        #tmp_dummy_imp := false;

        IF "HMI KEY".P01."1M2".F20_Jog_fast_HP AND NOT #Support."1M2".F20_Jog_fast_HP_FP THEN

            #tmp_dummy_imp := TRUE;

        END_IF;

        #Support."1M2".F20_Jog_fast_HP_FP := "HMI KEY".P01."1M2".F20_Jog_fast_HP;

        // Jog fast negative (toggle function)

        IF #tmp_dummy_imp THEN

            #Support."1M2".CmdExe_fast_HP := NOT #Support."1M2".CmdExe_fast_HP;

            #Support."1M2".CmdExe_fast_WP := FALSE;

        END_IF;

        // Jog slow negative (button function)

        IF "HMI KEY".P01."1M2".F4_Jog_slow_HP THEN

            #Support."1M2".CmdExe_slow_HP := TRUE;

            #Support."1M2".CmdExe_fast_WP := FALSE;

            #Support."1M2".CmdExe_fast_HP := FALSE;

        ELSE

            #Support."1M2".CmdExe_slow_HP := FALSE;

        END_IF;

    ELSE

        "HMI KEY".P01."1M2".F17_GoToPos := FALSE;

    END_IF;

   

    // Enabling HP/WP

    "HMI KEY".P01."1M2".Enable_HP :=

    "DI OUT P01"."1M2".DRV.CrntPos >= "DI OUT P01"."1M2".DRV.MinAxisPoint AND #Support."1M2".ManuSpeed_2 > 0

    AND "DI OUT P01"."1M2".DRV.ReadyToStart;

    "HMI KEY".P01."1M2".Enable_WP :=

    "DI OUT P01"."1M2".DRV.CrntPos <= "DI OUT P01"."1M2".DRV.MaxAxisPoint AND #Support."1M2".ManuSpeed_2 > 0

    AND "DI OUT P01"."1M2".DRV.ReadyToStart;

    // Disabling HP (negative)

    IF NOT "HMI KEY".P01."1M2".Enable_HP OR "M00 ManuCmpltMa Imp" THEN

        #Support."1M2".CmdExe_fast_HP := #Support."1M2".CmdExe_slow_HP := "HMI KEY".P01."1M2".F17_GoToPos := FALSE;

    END_IF;

    // Disabling WP (positive)

    IF NOT "HMI KEY".P01."1M2".Enable_WP OR "M00 ManuCmpltMa Imp" THEN

        #Support."1M2".CmdExe_fast_WP := #Support."1M2".CmdExe_slow_WP := "HMI KEY".P01."1M2".F17_GoToPos := FALSE;

    END_IF;

    // Execute WP/HP travel

    "DI OUT P01"."1M2".DRV.ActorJog_WP := #Support."1M2".CmdExe_fast_WP OR #Support."1M2".CmdExe_slow_WP;

    "DI OUT P01"."1M2".DRV.ActorJog_HP := #Support."1M2".CmdExe_fast_HP OR #Support."1M2".CmdExe_slow_HP;

 

 

 

Netzwerk 3: 1M3 Cooling conveyor 2

    IF #ST_MANU THEN

        "DI OUT P01"."1M3".DRV.SetValSpd := "DI OUT P01".MANUAL.Support."1M3".ManuSpeed_2;

        IF "HMI KEY".P01."1M3".F3_Jog_slow_WP OR "HMI KEY".P01."1M3".F4_Jog_slow_HP THEN

            "DI OUT P01"."1M3".DRV.SetValSpd := #Support."1M3".ManuSpeed_1;

        END_IF;

        // GotoPos create falling edge when set point reached

        #tmp_dummy_imp := FALSE;

        IF NOT "HMI KEY".P01."1M3".F17_GoToPos AND #Support."1M3".F17_GoToPos_FN AND NOT "DI OUT P01"."1M3".DRV.SetPoReach THEN

            #tmp_dummy_imp := TRUE;

        END_IF;

        #Support."1M3".F17_GoToPos_FN := "HMI KEY".P01."1M3".F17_GoToPos;

        // Stop GotoPos by falling edge

        IF #tmp_dummy_imp OR "DI OUT P01"."1M3".DRV.GenFlt THEN

            "HMI KEY".P01."1M3".F17_GoToPos := FALSE;

        END_IF;

        // Stop GotoPos when set point reached

        IF "HMI KEY".P01."1M3".F19_Jog_fast_WP OR "HMI KEY".P01."1M3".F20_Jog_fast_HP OR "DI OUT P01"."1M3".DRV.SetPoReach THEN

            "HMI KEY".P01."1M3".F17_GoToPos := FALSE;

        END_IF;

       

        // Jog fast positive create rising edge (impulse)

        #tmp_dummy_imp := FALSE;

        IF "HMI KEY".P01."1M3".F19_Jog_fast_WP AND NOT #Support."1M3".F19_Jog_fast_WP_FP THEN

            #tmp_dummy_imp := TRUE;

        END_IF;

        #Support."1M3".F19_Jog_fast_WP_FP := "HMI KEY".P01."1M3".F19_Jog_fast_WP;

        // Jog fast positive (toggle function)

        IF #tmp_dummy_imp THEN

            #Support."1M3".CmdExe_fast_WP := NOT #Support."1M3".CmdExe_fast_WP;

            #Support."1M3".CmdExe_fast_HP := FALSE;

        END_IF;

        // Jog slow positive (button function)

        IF "HMI KEY".P01."1M3".F3_Jog_slow_WP THEN

            #Support."1M3".CmdExe_slow_WP := TRUE;

            #Support."1M3".CmdExe_fast_WP := FALSE;

            #Support."1M3".CmdExe_fast_HP := FALSE;

        ELSE

            #Support."1M3".CmdExe_slow_WP := FALSE;

        END_IF;

       

        // Jog fast negative create rising edge (impulse)

        #tmp_dummy_imp := FALSE;

        IF "HMI KEY".P01."1M3".F20_Jog_fast_HP AND NOT #Support."1M3".F20_Jog_fast_HP_FP THEN

            #tmp_dummy_imp := TRUE;

        END_IF;

        #Support."1M3".F20_Jog_fast_HP_FP := "HMI KEY".P01."1M3".F20_Jog_fast_HP;

        // Jog fast negative (toggle function)

        IF #tmp_dummy_imp THEN

            #Support."1M3".CmdExe_fast_HP := NOT #Support."1M3".CmdExe_fast_HP;

            #Support."1M3".CmdExe_fast_WP := FALSE;

        END_IF;

        // Jog slow negative (button function)

        IF "HMI KEY".P01."1M3".F4_Jog_slow_HP THEN

            #Support."1M3".CmdExe_slow_HP := TRUE;

            #Support."1M3".CmdExe_fast_WP := FALSE;

            #Support."1M3".CmdExe_fast_HP := FALSE;

        ELSE

            #Support."1M3".CmdExe_slow_HP := FALSE;

        END_IF;

    ELSE

        "HMI KEY".P01."1M3".F17_GoToPos := FALSE;

    END_IF;

   

    // Enabling HP/WP

    "HMI KEY".P01."1M3".Enable_HP := "HMI KEY".P01."1M3".Enable_WP :=

    #Support."1M3".ManuSpeed_2>0 AND "DI OUT P01"."1M3".DRV.ReadyToStart;

    // Disabling HP (negative)

    IF NOT "HMI KEY".P01."1M3".Enable_HP OR "M00 ManuCmpltMa Imp" THEN

        #Support."1M3".CmdExe_fast_HP := #Support."1M3".CmdExe_slow_HP := "HMI KEY".P01."1M3".F17_GoToPos := FALSE;

    END_IF;

    // Disabling WP (positive)

    IF NOT "HMI KEY".P01."1M3".Enable_WP OR "M00 ManuCmpltMa Imp" THEN

        #Support."1M3".CmdExe_fast_WP := #Support."1M3".CmdExe_slow_WP := "HMI KEY".P01."1M3".F17_GoToPos := FALSE;

    END_IF;

    // Execute WP/HP travel

    "DI OUT P01"."1M3".DRV.ActorJog_WP := #Support."1M3".CmdExe_fast_WP OR #Support."1M3".CmdExe_slow_WP;

    "DI OUT P01"."1M3".DRV.ActorJog_HP := #Support."1M3".CmdExe_fast_HP OR #Support."1M3".CmdExe_slow_HP;

 

 

 

Netzwerk 4: Monitoring pneumatics manual operation ***

    #tmp_dummy_imp := FALSE;

    IF NOT #ST_MANU THEN

        RETURN;

    ELSIF #MODUL_HP AND NOT #Support.GLB.Modl_HomPos_FP THEN

        #tmp_dummy_imp := TRUE;

    END_IF;

    #Support.GLB.Modl_HomPos_FP := #MODUL_HP;

    IF #tmp_dummy_imp THEN

        "M01 Init" := true;

    END_IF;

    IF #SUPPORT_SEQ THEN

        RETURN;

    END_IF;

 

 

Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO