FB39 OUT P01 : Pick and Place + Batching - outputs |
|
|
|
Netzwerk 1: Pre-Setting
#Support.T01_EStop_TOF(IN := "M00 GLB Estop", PT := t#1s); |
|
|
|
Netzwerk 2: Call manual operation
#MANUAL(ST_MANU:="M00 ManuCmpltMa run", MODULE_HP:="HMI KEY".P01.GLB.F20_HomPos, SUPPORT_SEQ:="M01 HomPosRun"); |
|
|
|
Netzwerk 3: V90_X Gripper linear Xaxis
// Execute reference point #V90_X.DRV.MC_Home.Execute := #V90_X.DRV.Support.LampOFF AND "HMI KEY".P01.V90_X.F5_Set_Ref_Point AND ("M01 HomPosRun" OR "M00 ManuCmpltMa run"); #V90_X.DRV.MC_Power.StartMode := #V90_X.DRV.MC_MoveAbsolute.Direction := 1; #V90_X.DRV.MC_MoveJog.PosCntrl := TRUE; // Halt impulse #tmp_enable_axis := "HMI KEY".P01.V90_X.F11_Enable_HP AND "HMI KEY".P01.V90_X.F12_Enable_WP; #Support.V90_X_FEg_Halt_Imp := #Support.V90_X_FEg_Halt AND NOT #tmp_enable_axis; #Support.V90_X_FEg_Halt := #tmp_enable_axis; // Execute output stage #V90_X(ENABLE := #Support.T01_EStop_TOF.Q, HALT_01 := "HMI KEY".P01.V90_X.F21_HALT_GoToPos OR "DI MAIN GLB".TOF_CmpltMaOFF_Pulse.Q OR #Support.V90_X_FEg_Halt_Imp, MCB := "E00 V90_X MCB", START_ABSO := #tmp_enable_axis AND ("M01 V90_X MovAbso" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR "HMI KEY".P01.V90_X.F17_GoToAbsoPos), START_RELA := #tmp_enable_axis AND ("M01 V90_X MovRela" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR "HMI KEY".P01.V90_X.F18_GoToRelaPos), JOG_WP := "M01 V90_X MovJogWP" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR #MANUAL.V90_X.CmdExe_slow_fast_WP, JOG_HP := "M01 V90_X MovJogHP" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR #MANUAL.V90_X.CmdExe_slow_fast_HP, ACK_FLT := "M00 FLT CmpltMaACK REg", HOM_MODE := 6, // Encoder type = absolute AXIS := "+1-V90_X"); |
|
|
|
Netzwerk 4: V90_Y Gripper linear Yaxis
// Execute reference point #V90_Y.DRV.MC_Home.Execute := #V90_Y.DRV.Support.LampOFF AND "HMI KEY".P01.V90_Y.F5_Set_Ref_Point AND ("M01 HomPosRun" OR "M00 ManuCmpltMa run"); #V90_Y.DRV.MC_Power.StartMode := #V90_Y.DRV.MC_MoveAbsolute.Direction := 1; #V90_Y.DRV.MC_MoveJog.PosCntrl := TRUE; // Halt impulse #tmp_enable_axis := "HMI KEY".P01.V90_Y.F11_Enable_HP AND "HMI KEY".P01.V90_Y.F12_Enable_WP; #Support.V90_Y_FEg_Halt_Imp := #Support.V90_Y_FEg_Halt AND NOT #tmp_enable_axis; #Support.V90_Y_FEg_Halt := #tmp_enable_axis; // Execute output stage #V90_Y(ENABLE := #Support.T01_EStop_TOF.Q, HALT_01 := "HMI KEY".P01.V90_Y.F21_HALT_GoToPos OR "DI MAIN GLB".TOF_CmpltMaOFF_Pulse.Q OR #Support.V90_Y_FEg_Halt_Imp, MCB := "E00 V90_Y MCB", START_ABSO := #tmp_enable_axis AND ("M01 V90_Y MovAbso" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR "HMI KEY".P01.V90_Y.F17_GoToAbsoPos), START_RELA := #tmp_enable_axis AND ("M01 V90_Y MovRela" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR "HMI KEY".P01.V90_Y.F18_GoToRelaPos), JOG_WP := "M01 V90_Y MovJogWP" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR #MANUAL.V90_Y.CmdExe_slow_fast_WP, JOG_HP := "M01 V90_Y MovJogHP" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR #MANUAL.V90_Y.CmdExe_slow_fast_HP, ACK_FLT := "M00 FLT CmpltMaACK REg", HOM_MODE := 6, // Encoder type = absolute AXIS := "+1-V90_Y"); |
|
|
|
Netzwerk 5: V90_Z Gripper linear Zaxis
// Execute reference point #V90_Z.DRV.MC_Home.Execute := #V90_Z.DRV.Support.LampOFF AND "HMI KEY".P01.V90_Z.F5_Set_Ref_Point AND ("M01 HomPosRun" OR "M00 ManuCmpltMa run"); #V90_Z.DRV.MC_Power.StartMode := #V90_Z.DRV.MC_MoveAbsolute.Direction := 1; #V90_Z.DRV.MC_MoveJog.PosCntrl := TRUE; // Halt impulse #tmp_enable_axis := "HMI KEY".P01.V90_Z.F11_Enable_HP AND "HMI KEY".P01.V90_Z.F12_Enable_WP; #Support.V90_Z_FEg_Halt_Imp := #Support.V90_Z_FEg_Halt AND NOT #tmp_enable_axis; #Support.V90_Z_FEg_Halt := #tmp_enable_axis; // Execute output stage #V90_Z(ENABLE := #Support.T01_EStop_TOF.Q, HALT_01 := "HMI KEY".P01.V90_Z.F21_HALT_GoToPos OR "DI MAIN GLB".TOF_CmpltMaOFF_Pulse.Q OR #Support.V90_Z_FEg_Halt_Imp, MCB := "E00 V90_Z MCB", START_ABSO := #tmp_enable_axis AND ("M01 V90_Z MovAbso" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR "HMI KEY".P01.V90_Z.F17_GoToAbsoPos), START_RELA := #tmp_enable_axis AND ("M01 V90_Z MovRela" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR "HMI KEY".P01.V90_Z.F18_GoToRelaPos), JOG_WP := "M01 V90_Z MovJogWP" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR #MANUAL.V90_Z.CmdExe_slow_fast_WP, JOG_HP := "M01 V90_Z MovJogHP" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR #MANUAL.V90_Z.CmdExe_slow_fast_HP, ACK_FLT := "M00 FLT CmpltMaACK REg", HOM_MODE := 6, // Encoder type = absolute AXIS := "+1-V90_Z"); |
|
|
|
Netzwerk 6: V90_R Gripper rotary Raxis
// Execute reference point #V90_R.DRV.MC_Home.Execute := #V90_R.DRV.Support.LampOFF AND "HMI KEY".P01.V90_R.F5_Set_Ref_Point AND ("M01 HomPosRun" OR "M00 ManuCmpltMa run"); #V90_R.DRV.MC_Power.StartMode := #V90_R.DRV.MC_MoveAbsolute.Direction := 1; #V90_R.DRV.MC_MoveJog.PosCntrl := TRUE; // Halt impulse #tmp_enable_axis := "HMI KEY".P01.V90_R.F11_Enable_HP AND "HMI KEY".P01.V90_R.F12_Enable_WP; #Support.V90_R_FEg_Halt_Imp := #Support.V90_R_FEg_Halt AND NOT #tmp_enable_axis; #Support.V90_R_FEg_Halt := #tmp_enable_axis; // Execute output stage #V90_R(ENABLE := #Support.T01_EStop_TOF.Q, HALT_01 := "HMI KEY".P01.V90_R.F21_HALT_GoToPos OR "DI MAIN GLB".TOF_CmpltMaOFF_Pulse.Q OR #Support.V90_R_FEg_Halt_Imp, MCB := "E00 V90_R MCB", START_ABSO := #tmp_enable_axis AND ("M01 V90_R MovAbso" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR "HMI KEY".P01.V90_R.F17_GoToAbsoPos), START_RELA := #tmp_enable_axis AND ("M01 V90_R MovRela" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR "HMI KEY".P01.V90_R.F18_GoToRelaPos), JOG_WP := "M01 V90_R MovJogWP" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR #MANUAL.V90_R.CmdExe_slow_fast_WP, JOG_HP := "M01 V90_R MovJogHP" AND ("M00 AutoCmpltMa run" OR "M01 HomPosRun" OR "DI MAIN P01".SEQ1.SSM1.S.stepin) OR #MANUAL.V90_R.CmdExe_slow_fast_HP, ACK_FLT := "M00 FLT CmpltMaACK REg", HOM_MODE := 6, // Encoder type = absolute AXIS := "+1-V90_R"); |
|
|
|
Netzwerk 7: M01 Filter feeder conveyor 1
#M01(CMD_ONOFF := FALSE, HALT_01 := NOT "M00 GLB Estop", MCB := "E00 M01 MCB", ACK_FLT := "M00 FLT Cmpl IO_ADDRESS := 200); |
|
|
|
Netzwerk 8: M02 Filter feeder conveyor 2
#M02(CMD_ONOFF := FALSE, HALT_01 := NOT "M00 GLB Estop", MCB := "E00 M02 MCB", ACK_FLT := "M00 FLT CmpltMaACK Imp", IO_ADDRESS := 202); |
|
|
|
Netzwerk 9: M03 Filter batch outlet conveyor
#M03(CMD_ONOFF := "DI MAIN GLB".Interface.FilterStack_Finished AND ("M00 AutoCmpltMa run" OR "M00 InchCmpltMa run"), HALT_01 := NOT "M00 GLB Estop", MCB := "E00 M03 MCB", ACK_FLT := "M00 FLT CmpltMaACK Imp", IO_ADDRESS := 204); |
|
|
|
Netzwerk 10: C01 Gripper jaws
#C01(CMD_HP := FALSE, CMD_WP := FALSE, FB_HP := "E01 C01 HP", FB_WP := "E01 C01 WP", RLS := "E00 GLB AirPrsr", ACK_FLT := "M00 FLT CmpltMaACK Imp", VALV_HP => "A01 C01 HP", VALV_WP => "A01 C01 WP"); |
|
|
|
Netzwerk 11: C02 Pusher Nok
IF "E01 C02 SlideAccess" AND NOT #Support.C02_SlideAccess_REg THEN #"C02".VLV_OC.CmdExe_WP := FALSE; #"C02".VLV_OC.CmdExe_HP := "HMI KEY".P01.C02.F11_Enable_HP; "DI MAIN GLB".Interface.FilterPlaced_NokPusher := FALSE; ELSIF NOT "E01 C02 FltrPlaced" AND "DI MAIN GLB".Interface.FilterPlaced_NokPusher THEN #"C02".VLV_OC.CmdExe_HP := FALSE; #"C02".VLV_OC.CmdExe_WP := "HMI KEY".P01."C02".F12_Enable_WP; END_IF; #Support.C02_SlideAccess_REg := "E01 C02 SlideAccess";
#C02(CMD_HP := FALSE, CMD_WP := FALSE, FB_HP := "E01 C02 HP", FB_WP := "E01 C02 WP", RLS := "E00 GLB AirPrsr", ACK_FLT := "M00 FLT CmpltMaACK Imp", VALV_HP => "A01 C02 HP", VALV_WP => "A01 C02 WP"); |
|
|
|
Netzwerk 12: C03 QA Pusher (Quality Assurance)
IF "E01 C03 SlideAccess" AND NOT #Support.C03_SlideAccess_REg THEN #"C03".VLV_OC.CmdExe_WP := FALSE; #"C03".VLV_OC.CmdExe_HP := "HMI KEY".P01.C03.F11_Enable_HP; "DI MAIN GLB".Interface.FilterPlaced_NokPusher := FALSE; ELSIF NOT "E01 C03 FltrPlaced" AND "DI MAIN GLB".Interface.FilterPlaced_NokPusher THEN #"C03".VLV_OC.CmdExe_HP := FALSE; #"C03".VLV_OC.CmdExe_WP := "HMI KEY".P01."C03".F12_Enable_WP; END_IF; #Support.C03_SlideAccess_REg := "E01 C03 SlideAccess";
#C03(CMD_HP := FALSE, CMD_WP := FALSE, FB_HP := "E01 C03 HP", FB_WP := "E01 C03 WP", RLS := "E00 GLB AirPrsr", ACK_FLT := "M00 FLT CmpltMaACK Imp", VALV_HP => "A01 C03 HP", VALV_WP => "A01 C03 WP"); |
|
|
|
Netzwerk 13: O2Vx TopView camer
#TopViewCam(ixTrigger := #TopViewCam.Support.IN.ixTrigger, ixChApp := #TopViewCam.Support.IN.ixChApp, oiActAppNo => #TopViewCam.Support.IN.iiAppNo, oxBusy => #TopViewCam.Support.OUT.oxBusy, oxDone => #TopViewCam.Support.OUT.oxDone, oxError => #TopViewCam.Support.OUT.oxError, owStatus => #TopViewCam.Support.OUT.owStatus, iiAppNo := #TopViewCam.Support.OUT.oiActAppNo, odiRcvdLen => #TopViewCam.Support.OUT.odiRcvdLen, ioudtCfgData := #TopViewCam.Support.IN_OUT); |
|
|
|
Netzwerk 14: O2Vx TextView camer
#TextViewCam(ixTrigger := #TextViewCam.Support.IN.ixTrigger, ixChApp := #TextViewCam.Support.IN.ixChApp, oiActAppNo => #TextViewCam.Support.IN.iiAppNo, oxBusy => #TextViewCam.Support.OUT.oxBusy, oxDone => #TextViewCam.Support.OUT.oxDone, oxError => #TextViewCam.Support.OUT.oxError, owStatus => #TextViewCam.Support.OUT.owStatus, iiAppNo := #TextViewCam.Support.OUT.oiActAppNo, odiRcvdLen => #TextViewCam.Support.OUT.odiRcvdLen, ioudtCfgData := #TextViewCam.Support.IN_OUT); |
|
|
|
Netzwerk 15: HITACHI label printer
"A01 PRNT RunSignal" := "M01 PRNT RunSignal";
#HITACHI(RUN_SIGNAL := "A01 PRNT RunSignal", PRINT_TARGET_DETECTED := "A01 PRNT PrintTargetDetector", DEFLECTION_ON := "A01 PRNT DeflectionVoltageON_OFFSignal", RECIPROCATIVE := FALSE, PRINT_STOP := "A01 PRNT PrintStop", STOP_SIGNAL := "A01 PRNT StopSignal", RESET := "A01 PRNT ResetSignal", READY => "E01 PRNT Ready", PRINTING_01 =>"E01 PRNT Printing_01", PRINT_COMPLET => "E01 PRNT PrintComplet", WARNING => "E01 PRNT Warning", FAULT => "E01 PRNT Fault", ONLINE => "E01 PRNT OnLine", UNIVERSAL_OUT1 => "E01 PRNT UniversalOutput_1", UNIVERSAL_OUT2 => "E01 PRNT UniversalOutPut_2"); |
|
|
|
Netzwerk 16: Scanner ET200SP over RS232 interface
#Scanner_ET200SP(LADDR_HW_IO := "+1-81A0~+1-81A1",// 311 HW-Sub-Module PUFFER := "RCV_P2P_RS232".Scanned_Data, ENABLE := #V90_X.DRV.Support.InPos AND #V90_Y.DRV.Support.InPos AND "DI MAIN P01".SEQ1.PosIndex = 4, LB_1 := "E01 SCAN LB_1", LB_2 := "E01 SCAN LB_2", ACK_FLT := "M00 FLT CmpltMaACK REg", ERROR := "DI MAIN P01".SEQ1.SSM1.S."1_FAULT_00_15".%X1); |
|