1、PROC main()Label1:Inital;WHILE TRUE DOPick;Pallet;IF pndi13_diection_selet = 1 THENPallet;ELSEPallet_vert;ENDIFIF nCount = Totality THENMoveL pHome, v800, fine, tool0;PulseDOPLength:=1, pndo10_palletOK_part;IF pndi12_palletOK_all = 1 THENPulseDOPLength:=1, pndo11_palletOK_all;Stop;ENDIFGOTO Label1;E
2、NDIFENDWHILEENDPROCPROC Inital()MoveJ pHome, v600, fine, tool0;Totality := n_Totality;Row := n_Row;Height := 1;Y := 1;H1 := 1;H2 := 1;nCount := 0;PulseDOPLength:=0.5, do00_tuici;Reset do00_tuici;Reset do01_shangci;Reset pndo09_pick_ok;Reset pndo10_palletOK_part;Reset pndo11_palletOK_all;ENDPROCPROC
3、Pallet()MoveL pPlace_safe10, v600, z100, tool0;MoveJ pPlace_safe30, v600, z100, tool0;pPlace := pPlace_base;IF Height MOD 2 = 1 THENpPlace := Offs(pPlace,X_offser,Y_offser - (Y - 1) * 61,Z_offser + (H1 - 1) * 28);ELSEpPlace := Offs(pPlace,X_offser,Y_offser + 15 - (Y - 1) * 61,Z_offser + (H2 - 1) * 2
4、6);ENDIFMoveL Offs(pPlace,0,0,50), v300, fine, tool0WObj:=wobj_place;MoveL pPlace, v20, fine, tool0WObj:=wobj_place;PulseDOPLength:=1, do00_tuici;WaitTime 1;WaitDI di01_tuici_OK, 1;MoveL Offs(pPlace,0,0,300), v300, z30, tool0WObj:=wobj_place;MoveL pPlace_safe30, v600, z50, tool0;Incr nCount;IF Y = R
5、ow THENY := 0;Incr Height;IF Height MOD 2 = 1 THENIncr H1;ELSEIncr H2;ENDIFENDIFIncr Y;ENDPROCPROC Pallet_vert()MoveL pPlace_safe100, v600, z100, tool0;MoveJ pPlace_safe110, v600, z100, tool0;MoveJ pPlace_base2, v50, fine, tool0WObj:=wobj_place;pPlace := place_base2;IF Height MOD 2 = 1 THENpPlace :=
6、 Offs(pPlace,X_offser,Y_offser - (Y - 1) * 61,Z_offser + (H1 - 1) * 28);ELSEpPlace := Offs(pPlace,X_offser,Y_offser + 15 - (Y - 1) * 61,Z_offser + (H2 - 1) * 26);ENDIFMoveL Offs(pPlace,0,0,50), v300, fine, tool0WObj:=wobj_place;MoveL pPlace, v20, fine, tool0WObj:=wobj_place;PulseDOPLength:=1, do00_t
7、uici;WaitTime 1;WaitDI di01_tuici_OK, 1;MoveL Offs(pPlace,0,0,300), v300, z30, tool0WObj:=wobj_place;MoveL pPlace_safe30, v600, z50, tool0;Incr nCount;IF Y = Row THENY := 0;Incr Height;IF Height MOD 2 = 1 THENIncr H1;ELSEIncr H2;ENDIFENDIFIncr Y;ENDPROCPROC Pick()MoveJ p10, v600, fine, tool0;WaitDI
8、pndi09_can_pick, 1;MoveL pPick_base, v20, fine, tool0WObj:=wobj0;pPick := pPick_base;pPick := Offs(pPick,0,-L_offser / 2,0);MoveL Offs(pPick,0,0,70), v200, fine, tool0WObj:=wobj0;IF Height MOD 2 = 1 THENMoveL pPick, v20, fine, tool0WObj:=wobj0;ELSEMoveL Offs(pPick,0,0,15), v20, fine, tool0WObj:=wobj
9、0;ENDIFPulseDOPLength:=1, do01_shangci;WaitDI di02_shangci_OK, 1;MoveL Offs(pPick,0,0,100), v150, z50, tool0WObj:=wobj0;MoveL Offs(pPick,0,0,400), v400, z50, tool0WObj:=wobj0;PulseDOPLength:=1, pndo09_pick_ok;ENDPROCPROC wobj_place0()MoveL p_x1, v20, fine, tool0;MoveL p_x2, v20, fine, tool0;MoveL p_
10、y, v20, fine, tool0;ENDPROCPROC set_home()WZSphDefInside, shape1, home_C1, 100;WZDOSetTemp, home_wzBefore, shape1, pndo07_home, 1;ENDPROCPROC ppp()IDelete intno1;CONNECT intno1 WITH kkk;ISignalDISingle, di01_tuici_OK, 1, intno1;IWatch intno1;MoveL p30, v100, fine, tool0;MoveL p40, v20, fine, tool0;ENDPROCTRAP kkkStopMove;WaitTime 3;!WaitDI di01_tuici_OK, 0;StartMove;MoveJ p50, v100, fine, tool0;IDelete intno1;ENDTRAPENDMODULE