发表于:2016/11/29 15:28:36
#7楼
这是整套的程序,大神们,讲解下呗
DEF promain_0510( )
;FOLD INI
;FOLD BASISTECH INI
BAS (#INITMOV,0 )
INTERRUPT DECL 128 WHEN $flag[2]==true DO BufferRecData ( )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
;FOLD INITIAL
for l=1 to 64
RecChar[l]=0
endfor
for l=1 to 64
last_Char[l]=0
endfor
FOR M=1 TO 64
SENDCHAR[M]=0
ENDFOR
BZ=0
BX=0
BY=0
ZN=0
Xm=0.0
Ym=0.0
Zm=0.0
STATION_NO=0
RANK=0
ROW=0
LAST_STATION=0
LAST_RANK=0
LAST_ROW=0
VEL=0
;ENDFOLD INITIAL
PTP $POS_ACT
$ov_pro=5
PTP $POS_ACT
connectionname[]="XmlServer"
RET=EKI_Init("XmlServer")
RET=EKI_Open("XmlServer")
LOOP
IF $FLAG[1] THEN
;FOLD RESET
;BZ=0
;BX=0
;BY=0
;ZN=0
;Xm=0
;Ym=0
;Zm=0
;STATION_NO=0
;RANK=0
;ROW=0
;LAYER=0
;DOWN=FALSE
;UP=FALSE
;ENDFOLD RESET
;FOLD INITIAL
for l=1 to 64
RecChar[l]=0
endfor
FOR M=1 TO 64
SENDCHAR[M]=0
ENDFOR
;ENDFOLD INITIAL
RECEIVE_CharAndData()
SEND_CharAndData()
IF ((RECCHAR[1]=="G") AND (RECCHAR[2]=="O")) OR ((RECCHAR[1]=="S") AND (RECCHAR[2]=="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
;FOLD CHECK STATUS()
IF (RECCHAR[1]=="O") AND (RECCHAR[2]=="N")AND (RECCHAR[3]=="A")AND (RECCHAR[4]=="C")AND (RECCHAR[5]=="T")THEN
;ONACT
SENDCHAR[]="KUKA KR16-2 ONACT"
WAIT FOR $FLAG[1]
SEND_CHAR()
ENDIF
IF (RECCHAR[1]=="L") AND (RECCHAR[2]=="A")AND (RECCHAR[3]=="S")AND (RECCHAR[4]=="T")AND (RECCHAR[5]=="P")AND (RECCHAR[6]=="O")AND (RECCHAR[7]=="S")THEN
;LASTPOS
SENDCHAR[]="LASTPOS"
WAIT FOR $FLAG[1]
SEND_CHAR()
ENDIF
IF (RECCHAR[1]=="O") AND (RECCHAR[2]=="F")AND (RECCHAR[3]=="F")AND (RECCHAR[4]=="A")AND (RECCHAR[5]=="C")AND (RECCHAR[6]=="T")THEN
; "OFFACT"
SENDCHAR[]=" KUKA KR270 OFFACT&