库卡DEF promain程序Word文档格式.docx
《库卡DEF promain程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《库卡DEF promain程序Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
![库卡DEF promain程序Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/30/0ccad13f-20f0-4f22-89ec-aef9c4af11e6/0ccad13f-20f0-4f22-89ec-aef9c4af11e61.gif)
LAST_STATION=0
LAST_RANK=0
LAST_ROW=0
VEL=0
ENDFOLDINITIAL
PTP$POS_ACT
$ov_pro=5
connectionname[]="
XmlServer"
RET=EKI_Init("
)
RET=EKI_Open("
LOOP
IF$FLAG[1]THEN
FOLDRESET
Xm=0
Ym=0
Zm=0
LAYER=0
DOWN=FALSE
UP=FALSE
ENDFOLDRESET
RECEIVE_CharAndData()
SEND_CharAndData()
IF((RECCHAR[1]=="
G"
)AND(RECCHAR[2]=="
O"
))OR((RECCHAR[1]=="
S"
C"
)AND(RECCHAR[3]=="
A"
)AND(RECCHAR[4]=="
N"
))THEN
TRANSFER()
ENDIF
$OV_PRO=VEL
IF(RANK<
>
LAST_RANK)OR(ROW<
LAST_ROW)OR(STATION_NO<
LAST_STATION)OR(RECCHAR[1]<
LAST_CHAR[1])OR(RECCHAR[2]<
LAST_CHAR[2])OR(RECCHAR[3]<
LAST_CHAR[3])OR(RECCHAR[4]<
LAST_CHAR[4])OR(RECCHAR[5]<
LAST_CHAR[5])OR(RECCHAR[6]<
LAST_CHAR[6])THEN
FOLDCHECKSTATUS()
IF(RECCHAR[1]=="
)AND(RECCHAR[3]=="
)AND(RECCHAR[4]=="
)AND(RECCHAR[5]=="
T"
)THEN
ONACT
SENDCHAR[]="
KUKAKR16-2ONACT"
WAITFOR$FLAG[1]
SEND_CHAR()
L"
P"
)AND(RECCHAR[6]=="
)AND(RECCHAR[7]=="
LASTPOS
LASTPOS"
F"
"
OFFACT"
KUKAKR270
FINISH"
!
Bytes[]="
ERROR"
RET=EKI_Send("
BinaryStream"
Bytes[]
ENDFOLDCHECKSTATUS()
FOLDPICK()
I"
K"
))AND((ZN==1)OR(ZN==2))THEN
IF(BZ>
0)AND(BX>
0)AND(BY>
0)THEN
PICKPIECE()
RET=EKI_ClearBuffer("
"
Sensor"
);
clearconnection
ENDFOLDPICK()
GoSCAN()
GoPrepallet()
GoRotation()
GoPallet()
GoLINE()
GoPalletUp()
FOLDGOHOME()
H"
M"
E"
)THEN
gohome()
STORE_DATA()
WAITSEC0
ENDFOLDGOHOME()
ELSE
RecChar[]="
VALUEINVALID"
SEND_CharANDdata()
ENDLOOP
END
DEF
TOUCHPOINT()
FOLDTOUCHPOINT()
SWITCH
zn
CASE1
TP=Xconvey_pick
$BASE=$NULLFRAME
TP=Xstation3
$BASE=BASE_DATA[3]
CASE14
TP=Xbuffur_pick
$BASE=BASE_DATA[2]
IF(ROW==1)AND(RANK==1)THEN
IF(ROW==1)AND(RANK==3)THEN
TP=Xbuffur_pick3
IF(ROW==1)AND(RANK==5)THEN
TP=Xbuffur_pick5
CASE3
TP=Xstation4
$BASE=BASE_DATA[4]
CASE4
CASE5
TP=Xstation5
$BASE=BASE_DATA[5]
CASE6
TP=Xstation6_2
$BASE=BASE_DATA[6]
CASE7
TP=Xstation6_1
$BASE=BASE_DATA[7]
CASE8
TP=Xstation6_3
$BASE=BASE_DATA[8]
CASE9
TP1=Xstation7
$BASE=BASE_DATA[11]
CASE10
TP=Xstation6_4
CASE11
TP=Xstation7_L
CASE12
TP=XSCAN_L
CASE13
TP=XSCAN_R
CASE2
TP=XBUFFER_PICK2
CASE15
TP=XJIGSCAN1
CASE17
TP=XJIGSCAN2
CASE16
TP=XJIGSCAN3
CASE18
TP1=Xstation6_2R
CASE19
TP1=Xstation6_1R
CASE20
TP1=Xstation20_mid
CASE21
TP1=Xstation21_R
CASE22
TP=Xstation22_R_R
CASE23
TP=Xstation23
CASE24
TP=Xstation24
CASE25
TP=Xstation25
CASE26
TP=Xstation26
ENDSWITCH
ENDFOLDTOUCHPOINT()
DEFCALCULATE()
FOLDCALCULATE()
IF(ZN==9)or(zn==20)or(zn==21)or(zn==18)or(zn==19)THEN
PALLET_POS[RANK,ROW]=TP1
PALLET_POS[RANK,ROW].X=TP1.X+(RANK-1)*Xm
PALLET_POS[RANK,ROW].Y=TP1.Y+(ROW-1)*Ym
PALLET_POS[RANK,ROW]=TP
PALLET_POS[RANK,ROW].X=TP.X+(RANK-1)*Xm
PALLET_POS[RANK,ROW].Y=TP.Y+(ROW-1)*Ym
PRE_PALLET=PALLET_POS[RANK,ROW]
PRE_PALLET.Z=PALLET_POS[RANK,ROW].Z+Zm
ENDFOLDCALCULATE()
DEFGoPrepallet()
CALCULATE()
PTPPRE_PALLET
RECCHAR[]="
Xm=$pos_act.X
Ym=$pos_act.Y
Zm=$pos_act.Z
DEFGoPallet()
D"
)AND(RECCHAR[3]=="
W"
)AND(RECCHAR[4]=="
SET_TQ_VALUES(0,0,11,0,13,11)
IF(ZN==3)or(zn==2)
THEN
PRE_PALLET.Z=PRE_PALLET.Z-160
LINPRE_PALLET
$OV_PRO=5
IF
(zn==1)THEN
PRE_PALLET.Z=PRE_PALLET.Z-340
LINPALLET_POS[RANK,ROW]
SET_TQ_VALUES(0,0,0,0,0,0)
DEFGoLINE()
PRE_PALLET.Z=PRE_PALLET.Z-180
DEFGoPalletUp()
U"
GLOBALDEFSEND_CHAR()
FOLDSEND_CHAR()
RET=EKI_SetString(ConnectionName[],"
Robot/CMD"
SENDCHAR[])
RET=EKI_Send(ConnectionName[],"
Robot"
ENDFOLDSEND_CHAR()
GLOBALDEFSEND_CharAndData()
FOLDSEND_CharAndData()
WAITSEC0.1
R"
B"
)AND(RECCHAR[5]=="
)AND(RECCHAR[6]=="
RET=EKI_SetINT(ConnectionName[],"
Robot/STATION"
ZN)
Robot/N1"
BY)
Robot/N2"
BX)
Robot/N3"
BZ)
RET=EKI_SetREAL(ConnectionName[],"
Robot/N4"
Xm)
Robot/N5"
Ym)
Robot/N6"
Zm)
RecChar[])
ENDFOLDSEND_CharAndData()
GLOBALDEFRECEIVE_CharAndData()
FOLDRECEIVE_CharAndData()
waitfor$flag[2]and$flag[3]and$flag[4]and$flag[5]and$flag[6]and$flag[7]and$flag[8]and$flag[9]
ford=2to9
$flag[d]=false
RET=EKI_GetINT(ConnectionName[],"
Sensor/STATION"
Sensor/N1"
Sensor/N2"
Sensor/N3"
RET=EKI_GetREAL(ConnectionName[],"
Sensor/N4"
Sensor/N5"
Sensor/N6"
RET=EKI_GetSTRING(ConnectionName[],"
Sensor/CMD"
INTERRUPTON128
ENDFOLDRECEIVE_CharAndData()
GLOBALDEFRECEIVE_Char()
FOLDRECEIVE_Char()
waitfor$flag[9]
ENDFOLDRECEIVE_Char()
DEFTRANSFER()
FOLDTRANSFER()
STATION_NO=ZN
RANK=BX
ROW=BY
VEL=BZ
ENDFOLDTRANSFER()
DEFGoRotation()