FB39 OUT P01 : Pick and Place + Batching - outputs

[hit  <- on your browser to return]

 

 

 

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);