讨论

FANUC机器人程序里DO[1]=ON这种直接写IO指令靠谱吗还是要走后台逻辑

1132705544
1132705544
2026/05/25 15:17

刚入行两个月,现在在搞FANUC R-30iB的搬运项目,写的TP程序里要跟外围的夹具、气缸做联动,我直接就在程序里写了 DO[1]=ON WAIT DI[2]=ON 这种,师傅看了一眼没说话,但我心里没底,这种直写IO的指令在实际项目里真没问题吗?还是要全部丢到后台逻辑(BG Logic)里去跑?

我看有的资料说直写IO响应快但容易在程序暂停或者急停的时候卡住,不知道大家平时怎么处理的,给说说经验。

11 4

全部回复 (4)

生意兴隆
生意兴隆#1

你这个写法能用,但要看场景。DO[1]=ON WAIT DI[2]=ON 这种顺序控制直接写在TP里没问题,调试也方便,响应延迟基本在1个扫描周期左右。但凡涉及安全联锁、报警、急停相关的IO,必须走BG Logic或者DCS(Dual Check Safety),别图省事。我在汽车焊装线上见过太多因为IO直写急停回路出事的案例了,后来统一规定所有安全相关的DI/DO全走后台。

2026/05/25 22:56
jianguo666
jianguo666#2

反对上一条说法。DO[1]=ON直写在TP里就是垃圾写法,不管你是不是安全IO。我们厂出过一次事,机器人跑到一半程序暂停,DO[1]没复位,气缸一直顶着,夹具把工件夹废了。后来全部改成走BG Logic,TP里只做触发和状态读取,IO动作统一在后台跑,程序暂停也能自动复位。

2026/05/26 01:33
小程
小程#3

你用的是R-30iB的话,BG Logic里能跑梯形图就直接用梯形图写,直观,调试还能在线监控。DO[1]=ON这种简单动作可以写在里面,注意BG Logic的扫描周期一般是8-10ms,IO响应比TP里慢一点,但做非安全类的动作完全够用。你先把BG Logic跑起来,再把TP里的直写IO慢慢替换掉,别一步到位,容易出乱子。

2026/05/27 02:17
军哥
军哥#4

WAIT DI[2]=ON你加了超时时间没?建议加上 TIMEOUT 5s,不然万一DI信号没来,机器人就死在那儿了。

2026/06/10 23:01