待解决

ABB机器人testdi指令咋用才不出幺蛾子

阿伟
阿伟
2026/04/03 18:08

项目里要用testdi读一组DI信号做互锁,常规写法我大概清楚,但现场碰到个情况想确认下:DI板是挂在Profibus从站上的,testdi信号这块延迟会偏大吗?我看手册说默认扫描周期是100ms左右,但实际跑程序时感觉反应有时候慢半拍,产线节拍紧的时候容易误判。

另外想问下各位,testdi跟普通的DIN指令在跨总线场景下到底差多少?是不是该把板子单独走DeviceNet而不是Profibus?我们现在改线成本有点高,想先从程序侧优化下手。

26 3

全部回复 (3)

4140148828
4140148828#1

testdi这玩意儿我以前在汽车焊装线上用过不少,Profibus从站确实会拖响应,实测下来最差能到150-200ms,主要看DP的波特率和从站数量。你说的半拍延迟大概率不是testdi本身的问题,是总线轮询周期在那摆着。解决办法有几个:一是看能不能把那块DI板挪到本地I/O,ABB自己的板子挂在X2口上延迟能压到10ms以内;二是程序里加个去抖逻辑,别用单次读的结果直接做互锁,至少做3取2或者连续N次确认;三是总线参数里把那个从站的poll时间调小点,但得看从站本身支不支持。

DeviceNet我没在这场景里用过,不好乱说,但理论上DeviceNet的确定性比Profibus好一点,不过改造起来确实麻烦。还是建议先从程序侧下手,加个超时兜底比啥都强。

2026/04/04 08:55
波哥
波哥#2

你确定是testdi慢还是逻辑本身就慢?testdi执行时间基本是us级的,问题肯定不在指令本身。去查下你那个DP从站的GSD配置,I/O更新时间是不是设的太大了,有的从站默认是auto或者1ms,但挂多了就给你拉到ms级甚至十几ms。

2026/04/04 09:29
5201314
5201314#3

节拍紧就别用testdi了,直接上中断或者trigger,testdi轮询这机制天生不适合快速互锁。你现场DI信号频率大概多高?如果是开关量慢变信号,testdi凑合能用;如果是高速触发,那延迟再怎么优化都不够看。

2026/04/10 12:35