FB OUT P01 : Assign out puts P01

[hit  <- on your browser to return]

 

 

 

Network 1: Pre-Setting

#Support.T01_Estop_TOF(IN := "E00 Estop1 OK" AND NOT "HMI KEY".P01.CARTESIAN_3D.F9_Commissioning, PT := t#1s);

// Current operation mode

#tmp_operation_mode := "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN P01".M00.HomPosRun OR "DI MAIN P01".SEQ1.SSM.S.stepin;

// MoveCircular active (see FB1001 MC TO EPOS)

#S120_X.res_07 := #S120_Y.res_07 := #CARTESIAN_3D.DRV.MC_MoveCircularAbsolute.Busy OR #CARTESIAN_3D.DRV.MC_MoveCircularRelative.Busy;

 

 

 

Network 2: Call manual operation

#Manual(ST_MANU := "DI MAIN GLB".M00.ManuCmpltMa_run,

        MODULE_HP := "HMI KEY".P01.GLB.F20_HomPos,

        SUPPORT_SEQ := "DI MAIN P01".M00.HomPosRun);

 

 

 

Network 3: S120_X Axis gasketting plant

// Execute output stage

#S120_X.DRV.MC_Home.Execute := #S120_X.DRV.Support.LampOFF AND "HMI KEY".P01.#S120_X.F5_Set_Ref_Point AND ("DI MAIN GLB".SET.SSM.S.steps OR "DI MAIN GLB".M00.ManuCmpltMa_run);

#S120_X.DRV.MC_Power.StartMode := #S120_X.DRV.MC_MoveAbsolute.Direction := 1;

#S120_X.DRV.MC_MoveJog.PosCntrl := TRUE;

#S120_X.DRV.Support.Epos_Enabled := "HMI KEY".P01.S120_X.F11_Enable_HP AND "HMI KEY".P01.S120_X.F12_Enable_WP;

// Halt impulse

#S120_X.DRV.Support.FEg_Halt_Imp := #S120_X.DRV.Support.FEg_Halt AND NOT #S120_X.DRV.Support.Epos_Enabled;

#S120_X.DRV.Support.FEg_Halt := #S120_X.DRV.Support.Epos_Enabled;

// Execute output stage

#S120_X(ENABLE := #Support.T01_Estop_TOF.Q,

        HALT_01 := "HMI KEY".P01.S120_X.F21_Halt OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR #S120_X.DRV.Support.FEg_Halt_Imp OR "DI MAIN P01".M00.TOF_ModuleOFF_Pulse.Q,

        MCB := "E00 S120_X MCB",

        START_ABSO := #S120_X.DRV.Support.Cmd_MoveAbso AND #tmp_operation_mode OR "HMI KEY".P01.S120_X.F17_GoToAbsoPos,

        START_RELA := #S120_X.DRV.Support.Cmd_MoveRela AND #tmp_operation_mode OR "HMI KEY".P01.S120_X.F18_GoToRelaPos,

        JOG_WP := #S120_X.DRV.Support.Cmd_MoveJogWP AND #tmp_operation_mode OR #Manual.S120_X.CmdExe_slow_fast_WP,

        JOG_HP := #S120_X.DRV.Support.Cmd_MoveJogHP AND #tmp_operation_mode OR #Manual.S120_X.CmdExe_slow_fast_HP,

        ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg,

        HOM_MODE := 0, // Absolute encoder ActPos = Refpos

        AXIS := "+1-S120_X");

 

 

 

Network 4: S120_Y Axis gasketting plant

// Execute output stage

#S120_Y.DRV.MC_Home.Execute := #S120_Y.DRV.Support.LampOFF AND "HMI KEY".P01.#S120_Y.F5_Set_Ref_Point AND ("DI MAIN GLB".SET.SSM.S.steps OR "DI MAIN GLB".M00.ManuCmpltMa_run);

#S120_Y.DRV.MC_Power.StartMode := #S120_Y.DRV.MC_MoveAbsolute.Direction := 1;

#S120_Y.DRV.MC_MoveJog.PosCntrl := TRUE;

#S120_Y.DRV.Support.Epos_Enabled := "HMI KEY".P01.S120_Y.F11_Enable_HP AND "HMI KEY".P01.S120_Y.F12_Enable_WP;

// Halt impulse

#S120_Y.DRV.Support.FEg_Halt_Imp := #S120_Y.DRV.Support.FEg_Halt AND NOT #S120_Y.DRV.Support.Epos_Enabled;

#S120_Y.DRV.Support.FEg_Halt := #S120_Y.DRV.Support.Epos_Enabled;

// Execute output stage

#S120_Y(ENABLE := #Support.T01_Estop_TOF.Q,

        HALT_01 := "HMI KEY".P01.S120_Y.F21_Halt OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR #S120_Y.DRV.Support.FEg_Halt_Imp OR "DI MAIN P01".M00.TOF_ModuleOFF_Pulse.Q,

        MCB := "E00 S120_Y MCB",

        START_ABSO := #S120_Y.DRV.Support.Cmd_MoveAbso AND #tmp_operation_mode OR "HMI KEY".P01.S120_Y.F17_GoToAbsoPos,

        START_RELA := #S120_Y.DRV.Support.Cmd_MoveRela AND #tmp_operation_mode OR "HMI KEY".P01.S120_Y.F18_GoToRelaPos,

        JOG_WP := #S120_Y.DRV.Support.Cmd_MoveJogWP AND #tmp_operation_mode OR #Manual.S120_Y.CmdExe_slow_fast_WP,

        JOG_HP := #S120_Y.DRV.Support.Cmd_MoveJogHP AND #tmp_operation_mode OR #Manual.S120_Y.CmdExe_slow_fast_HP,

        ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg,

        HOM_MODE := 0, // Encoder dig.input active referencing

        AXIS := "+1-S120_Y");

 

 

 

Network 5: S210_Z Axis gasketting plant

// Execute output stage

#S210_Z.DRV.MC_Home.Execute := #S210_Z.DRV.Support.LampOFF AND "HMI KEY".P01.#S210_Z.F5_Set_Ref_Point AND ("DI MAIN GLB".SET.SSM.S.steps OR "DI MAIN GLB".M00.ManuCmpltMa_run);

#S210_Z.DRV.MC_Power.StartMode := #S210_Z.DRV.MC_MoveAbsolute.Direction := 1;

#S210_Z.DRV.MC_MoveJog.PosCntrl := TRUE;

#S210_Z.DRV.Support.Epos_Enabled := "HMI KEY".P01.S210_Z.F11_Enable_HP AND "HMI KEY".P01.S210_Z.F12_Enable_WP;

// Halt impulse

#S210_Z.DRV.Support.FEg_Halt_Imp := #S210_Z.DRV.Support.FEg_Halt AND NOT #S210_Z.DRV.Support.Epos_Enabled;

#S210_Z.DRV.Support.FEg_Halt := #S210_Z.DRV.Support.Epos_Enabled;

// Execute output stage

#S210_Z(ENABLE := #Support.T01_Estop_TOF.Q,

        HALT_01 := "HMI KEY".P01.S210_Z.F21_Halt OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR #S210_Z.DRV.Support.FEg_Halt_Imp OR "DI MAIN P01".M00.TOF_ModuleOFF_Pulse.Q,

        MCB := "E00 S210_Z MCB",

        START_ABSO := #S210_Z.DRV.Support.Cmd_MoveAbso AND #tmp_operation_mode OR "HMI KEY".P01.S210_Z.F17_GoToAbsoPos,

        START_RELA := #S210_Z.DRV.Support.Cmd_MoveRela AND #tmp_operation_mode OR "HMI KEY".P01.S210_Z.F18_GoToRelaPos,

        JOG_WP := #S210_Z.DRV.Support.Cmd_MoveJogWP AND #tmp_operation_mode OR #Manual.S210_Z.CmdExe_slow_fast_WP,

        JOG_HP := #S210_Z.DRV.Support.Cmd_MoveJogHP AND #tmp_operation_mode OR #Manual.S210_Z.CmdExe_slow_fast_HP,

        ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg,

        HOM_MODE := 0, // Encoder dig.input active referencing

        AXIS := "+1-S210_Z");

 

 

 

Network 6: CARTESIAN Portal 3D

// Enable cartesian portal 3d to move

#CARTESIAN_3D.DRV.Support.KINpos_Enabled := #S120_X.DRV.Support.Epos_Enabled AND #S120_Y.DRV.Support.Epos_Enabled AND #S210_Z.DRV.Support.Epos_Enabled;

#tmp_home_done :=

#S120_X.DRV.Support.HomeDone

AND #S120_Y.DRV.Support.HomeDone

AND #S210_Z.DRV.Support.HomeDone;

#CARTESIAN_3D.DRV.Support.InOperation :=

#S120_X.DRV.Support.InOperation

AND #S120_Y.DRV.Support.InOperation

AND #S120_Y.DRV.Support.InOperation;

#CARTESIAN_3D.DRV.MC_MoveLinearAbsolute.CoordSystem := #CARTESIAN_3D."MC MoveLinearRelative".CoordSystem :=

#CARTESIAN_3D.DRV.MC_MoveCircularAbsolute.CoordSystem := #CARTESIAN_3D.DRV.MC_MoveCircularRelative.CoordSystem := 1; // OCS1

#CARTESIAN_3D(ENABLE := #S120_X.DRV.MC_Power.Busy AND #S120_Y.DRV.MC_Power.Busy AND #S210_Z.DRV.MC_Power.Busy AND #tmp_home_done,

              MCB := "E00 S120_X MCB" AND "E00 S120_Y MCB" AND "E00 S210_Z MCB",

              GROUP_STOP := "HMI KEY".P01.CARTESIAN_3D.F5_GroupStop,

              GROUP_INTERRUPT := "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR "DI MAIN P01".M00.TOF_ModuleOFF_Pulse.Q OR #Manual.CARTESIAN_3D.CmdExe_GroupInterrupt,

              GROUP_CONTINUE := "DI MAIN GLB".M00.CmpltMaRun_Imp AND #tmp_operation_mode OR #Manual.CARTESIAN_3D.CmdExe_GroupContinue,

              MOVE_LINEAR_ABSO := #CARTESIAN_3D.DRV.Support.Cmd_MoveLinearAbsolute AND #tmp_operation_mode OR #Manual.CARTESIAN_3D.CmdExe_MovLinAbso,

              MOVE_LINEAR_RELA := #CARTESIAN_3D.DRV.Support.Cmd_MoveLinearRelative AND #tmp_operation_mode OR #Manual.CARTESIAN_3D.CmdExe_MovLinRela,

              MOVE_CIRCULAR_ABSO := #CARTESIAN_3D.DRV.Support.Cmd_MoveCircularAbsolute AND #tmp_operation_mode OR #Manual.CARTESIAN_3D.CmdExe_MovCirAbso,

              MOVE_CIRCULAR_RELA := #CARTESIAN_3D.DRV.Support.Cmd_MoveCircularRelative AND #tmp_operation_mode OR #Manual.CARTESIAN_3D.CmdExe_MovCirRela,

              ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg,

              KINEMATICS := "+1-Cartesian_Portal");

 

 

 

Network 7: V90_A Servo drive metering component A

// Execute output stage

#V90_A.DRV.MC_Home.Execute := #V90_A.DRV.Support.LampOFF AND "HMI KEY".P01.#V90_A.F5_Set_Ref_Point AND ("DI MAIN GLB".SET.SSM.S.steps OR "DI MAIN GLB".M00.ManuCmpltMa_run);

#V90_A.DRV.MC_Power.StartMode := #V90_A.DRV.MC_MoveAbsolute.Direction := 1;

#V90_A.DRV.MC_MoveJog.PosCntrl := TRUE;

#V90_A.DRV.Support.Epos_Enabled := "HMI KEY".P01.V90_A.F11_Enable_HP AND "HMI KEY".P01.V90_A.F12_Enable_WP;

// Halt impulse

#V90_A.DRV.Support.FEg_Halt_Imp := #V90_A.DRV.Support.FEg_Halt AND NOT #V90_A.DRV.Support.Epos_Enabled;

#V90_A.DRV.Support.FEg_Halt := #V90_A.DRV.Support.Epos_Enabled;

// Execute output stage

#V90_A(ENABLE := #Support.T01_Estop_TOF.Q,

       HALT_01 := "HMI KEY".P01.V90_A.F21_Halt OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR #V90_A.DRV.Support.FEg_Halt_Imp OR "DI MAIN P01".M00.TOF_ModuleOFF_Pulse.Q,

       MCB := "E00 V90_A MCB",

       START_ABSO := #V90_A.DRV.Support.Cmd_MoveAbso AND #tmp_operation_mode OR "HMI KEY".P01.V90_A.F17_GoToAbsoPos,

       START_RELA := #V90_A.DRV.Support.Cmd_MoveRela AND #tmp_operation_mode OR "HMI KEY".P01.V90_A.F18_GoToRelaPos,

       JOG_WP := #V90_A.DRV.Support.Cmd_MoveJogWP AND #tmp_operation_mode OR #Manual.V90_A.CmdExe_slow_fast_WP,

       JOG_HP := #V90_A.DRV.Support.Cmd_MoveJogHP AND #tmp_operation_mode OR #Manual.V90_A.CmdExe_slow_fast_HP,

       ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg,

       HOM_MODE := 0, // Absolute encoder ActPos = Refpos

       AXIS := "+1-V90_A");

// Lubricating metering components

IF #V90_A.DRV.Support.HomeDone THEN

    IF #V90_A.DRV.Support.ActPos > "HMI KEY".SetPointComp_A[0].Stroke - 5.0 AND NOT #Support.V90_A_REg_EndPos THEN

        "HMI KEY".Lubrication_A.Current_Value_Device_Strokes := "HMI KEY".Lubrication_A.Current_Value_Device_Strokes + 1;

        IF "HMI KEY".Lubrication_A.Current_Value_Device_Strokes >= "HMI KEY".Lubrication_A.Set_Value_Device_Strokes THEN

            "HMI KEY".Lubrication_A.Current_Value_Device_Strokes := 0;

            "HMI KEY".Lubrication_A.Start := "HMI KEY".Lubrication_A.Set_Value_Device_Strokes > 0;

        END_IF;

    END_IF;

END_IF;

#Support.V90_A_REg_EndPos := #V90_A.DRV.Support.ActPos > "HMI KEY".SetPointComp_A[0].Stroke - 5.0;

 

 

 

Network 8: V90_B Servo drive metering component B

// Execute output stage

#V90_B.DRV.MC_Home.Execute := #V90_B.DRV.Support.LampOFF AND "HMI KEY".P01.#V90_B.F5_Set_Ref_Point AND ("DI MAIN GLB".SET.SSM.S.steps OR "DI MAIN GLB".M00.ManuCmpltMa_run);

#V90_B.DRV.MC_Power.StartMode := #V90_B.DRV.MC_MoveAbsolute.Direction := 1;

#V90_B.DRV.MC_MoveJog.PosCntrl := TRUE;

#V90_B.DRV.Support.Epos_Enabled := "HMI KEY".P01.V90_B.F11_Enable_HP AND "HMI KEY".P01.V90_B.F12_Enable_WP;

// Halt impulse

#V90_B.DRV.Support.FEg_Halt_Imp := #V90_B.DRV.Support.FEg_Halt AND NOT #V90_B.DRV.Support.Epos_Enabled;

#V90_B.DRV.Support.FEg_Halt := #V90_B.DRV.Support.Epos_Enabled;

// Execute output stage

#V90_B(ENABLE := #Support.T01_Estop_TOF.Q,

       HALT_01 := "HMI KEY".P01.V90_B.F21_Halt OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR #V90_B.DRV.Support.FEg_Halt_Imp OR "DI MAIN P01".M00.TOF_ModuleOFF_Pulse.Q,

       MCB := "E00 V90_B MCB",

       START_ABSO := #V90_B.DRV.Support.Cmd_MoveAbso AND #tmp_operation_mode OR "HMI KEY".P01.V90_B.F17_GoToAbsoPos,

       START_RELA := #V90_B.DRV.Support.Cmd_MoveRela AND #tmp_operation_mode OR "HMI KEY".P01.V90_B.F18_GoToRelaPos,

       JOG_WP := #V90_B.DRV.Support.Cmd_MoveJogWP AND #tmp_operation_mode OR #Manual.V90_B.CmdExe_slow_fast_WP,

       JOG_HP := #V90_B.DRV.Support.Cmd_MoveJogHP AND #tmp_operation_mode OR #Manual.V90_B.CmdExe_slow_fast_HP,

       ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg,

       HOM_MODE := 0, // Absolute encoder ActPos = Refpos

       AXIS := "+1-V90_B");

 

 

 

Network 9: P24C_A Pressure regulator component A (0-100%)

"FC OUT PAW"(REQ_VALUE := #P24C_A.Output,

             H_LIM := 100.0,

             L_LIM := 0.0,

             PAW_OUT => "A01 P24C1_A PAW":P);

 

 

 

Network 10: P24C_B Pressure regulator component B (0-100%)

"FC OUT PAW"(REQ_VALUE := #P24C_B.Output,

             H_LIM := 100.0,

             L_LIM := 0.0,

             PAW_OUT => "A01 P24C1_B PAW":P);

 

 

 

Network 11: V23Y4 Outlet valve component A

#V23Y4.LampWP := "A01 V23Y4 WP" := "HMI KEY".P01.V23Y4.F12_Enable_WP AND #V23Y4.CmdExe_WP;

#V23Y4.LampHP := NOT #V23Y4.LampWP;

 

 

 

Network 12: V23Y5 Outlet valve component B

#V23Y5.LampWP := "A01 V23Y5 WP" := "HMI KEY".P01.V23Y5.F12_Enable_WP AND #V23Y5.CmdExe_WP;

#V23Y5.LampHP := NOT #V23Y5.LampWP;

 

 

 

Network 13: V23Y6 Suction valve component A

#V23Y6.LampWP := "A01 V23Y6 WP" := "HMI KEY".P01.V23Y6.F12_Enable_WP AND #V23Y6.CmdExe_WP;

#V23Y6.LampHP := NOT #V23Y6.LampWP;

 

 

 

Network 14: V23Y7 Suction valve component B

#V23Y7.LampWP := "A01 V23Y7 WP" := "HMI KEY".P01.V23Y7.F12_Enable_WP AND #V23Y7.CmdExe_WP;

#V23Y7.LampHP := NOT #V23Y7.LampWP;

 

 

 

Network 15: V28Y12 Drive cylinder down component A

#V28Y12(CMD_WP := FALSE,

        CMD_HP := FALSE,

        FB_WP := "E01 V28Y12 WP",

        FB_HP := "E01 V28Y12 HP",

        RLS := "E00 AirPressure OK",

        ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_Imp,

        VALV_WP => "A01 V28Y12 WP",

        VALV_HP => "A01 V28Y12 HP");

 

 

 

Network 16: V28Y34 Drive cylinder down component B

#V28Y34(CMD_WP := FALSE,

        CMD_HP := FALSE,

        FB_WP := "E01 V28Y34 WP",

        FB_HP := "E01 V28Y34 HP",

        RLS := "E00 AirPressure OK",

        ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_Imp,

        VALV_WP => "A01 V28Y34 WP",

        VALV_HP => "A01 V28Y34 HP");

// Lubricating supply components

IF "E01 V28Y34 WP" AND NOT #Support.V28Y34_REg_EndPos THEN

    "HMI KEY".Lubrication_B.Current_Value_Device_Strokes := "HMI KEY".Lubrication_B.Current_Value_Device_Strokes + 1;

    IF "HMI KEY".Lubrication_B.Current_Value_Device_Strokes >= "HMI KEY".Lubrication_B.Set_Value_Device_Strokes THEN

        "HMI KEY".Lubrication_B.Current_Value_Device_Strokes := 0;

        "HMI KEY".Lubrication_B.Start := "HMI KEY".Lubrication_B.Set_Value_Device_Strokes > 0;

    END_IF;

END_IF;

#Support.V28Y34_REg_EndPos := "E01 V28Y34 WP";

 

 

 

Network 17: P24B_A Read pressure sensor component A (0-80 bar)

#P24B_A(PEW_IN := "E01 24B_A PEW", //"E01 24B_A PEW":P,

        H_LIM := #P24B_A.Support.High_Lim,

        L_LIM := #P24B_A.Support.Low_Lim,

        PEW_SCALE => #P24B_A.Support.Out_Scaled);

 

 

 

Network 18: P24B_B Read pressure sensor component B (0-80 bar)

#P24B_B(PEW_IN := "E01 24B_B PEW", //"E01 24B_B PEW":P,

        H_LIM := #P24B_B.Support.High_Lim,

        L_LIM := #P24B_B.Support.Low_Lim,

        PEW_SCALE => #P24B_B.Support.Out_Scaled);