FB OUT P01 : Assign out puts P01 |
|
|
|
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); |
|