紧急求助

ABB RAPID里WaitUntil 后面能不能直接放数字?

19253984730
19253984730
2026/05/22 10:20

项目里用的是IRB1200,跟上位机走Socket通信,主程序里有个WaitUntil diNetReady=1; 这种写法,想把后面的=1直接换成具体的数字1,像WaitUntil 1; 这样能跑通吗?手册上没明说这么写,懒得试错来问下各位。

还有WaitUntil后面跟表达式一般大家都习惯怎么写?我看有的程序里写WaitUntil diNetReady=1 AND nCycleCnt>5,这种多条件组合有坑没?

34 3

全部回复 (3)

小军
小军#1

WaitUntil后面跟的是布尔表达式,不是裸数字,你写WaitUntil 1; 编译应该会报语法错,要么给你隐式转成WaitUntil TRUE一直卡死在那儿等一个恒真条件。建议老实写WaitUntil diNetReady=1; 想加超时用WaitUntil diNetReady=1\MaxTime:=10\TimeFlag:=bTimeout; 超时给个flag出来上位机好处理。

2026/05/22 23:52
老邓
老邓#2

多条件就直接AND串起来就行,注意每个条件两边留空格,别连着写=1AND那种,编译器有时候抽风。IRB1200上跑过十几套这种逻辑,没出过坑。

2026/05/23 21:19
老袁
老袁#3

跟上位机走Socket的话,diNetReady这种IO轮询效率其实一般,我们项目里都是用WaitWHile配合接收的数据包判断,直接读缓冲区长度比等一个IO翻转稳得多。你这个上位机发完数据是怎么通知机器人的?

2026/05/26 03:59