恭喜,你发布的帖子
发布于 2017-05-31 08:11:23
7楼
EXTERN GRTEST(REAL,REAL,REAL,REAL ,REAL,REAL,REAL,REAL,REAL,INT,INT )
N10 ID=1 WHENEVER(0==0) DO $R300=$A_INA[1]/2000 ;PREPARE READING MEASURD VALUE
N20 SAFEPOS
N21 STOPRE
N22 R313=R300
N23 STOPRE
;N30 M28 ;POS HEAD
;N40 G4 F3
N41 TT:
N42 IF R300==R313 GOTOB TT
N43 STOPRE
N44 R303=R300
N45 STOPRE
;N46 M29 ;POS HEAD
N50 M02=04 S2=110;WORKPIECE SPEED
N55 $P_IFRAME=CTRANS(X,R212-R29/2,Z,R213);T1
N60 GRTEST(47.021 ,0 ,2 ,0.45 ,0.048 ,0.012 ,0.6 ,82 ,0.008,0 ,0)
N70 SAFEPOS
N80 M80
N85 R215=R215-1
N90 IF R215>0 GOTOF N100
N95 L0155
N96 R215=R216
N100 M60;SET CHANGE PART POSITION
N120 M30
屏蔽上面红色部分后,能够正常跑程序了
N41 TT:
N42 IF R300==R313 GOTOB TT
是不是因为这里死循环所以停留在了N23步?但是为什么有时候等一会,程序又接着执行呢?
N41 TT:
N42 IF R300==R313 GOTOB TT
问题就是这里了,在执行过过程中,如果R300==R313就是死循环就会一直在这里循环(也可理解为等待),如果等一会又接着执行肯定有地方对这两个变量进行修改,(PLC或同步动作),如果两个变量不相等了就接着执行
请填写推广理由:
分享
只看
楼主