技术干货

安川DX200怎么跑双工位码垛啊,程序结构怎么搭比较稳

zqz1977
zqz1977
2026/04/24 12:28

手头有个活,安川DX200带两个工位的码垛,A工位抓完了B工位接着抓,中间还要换抓手,程序是全自己写不用什么模板包。基础动作我都调通了,但程序结构这块一直拿不准。

我现在的写法是把两工位拆成两个大程序,用主程序跳来跳去,但来回跳的时候偶尔会卡一下,IO信号也容易乱。想问下各位DX200上的双工位码垛程序结构怎么搭比较稳?是用多任务还是单任务分状态号好?

12 3

全部回复 (3)

小王
小王#1

DX200上跑双工位码垛,强烈建议用多任务,一个工位开一个子任务,主任务只管调度和IO交互。我之前做的饮料箱码垛就这么干的,两工位互不干扰,换抓手信号走公共DI,状态用系统变量做同步。卡一下那种大概率是主程序跳转的时候堆栈没清干净,你试试把跳转换成CALL+RET,别用JUMP。

另外抓手切换别放主程序里,放到对应工位的子任务开头做,信号确认完了再开始走轨迹,这样逻辑清楚也不容易打架。DI分配上把两工位的占用、完成、故障信号分开,别混用同一组IO,不然你后面调试会疯。

2026/04/25 00:02
小陈
小陈#2

先反问一下,你两个工位之间要不要共用一个抓手?如果是的话那就更复杂了,共用抓手的话必须加互锁,不然两工位同时动作直接撞。

我以前在一家做饲料码垛的厂里见过更简单的写法:不用多任务,单任务里用大状态号,比如100-199是A工位,200-299是B工位,每个工位内部再细分步骤。换抓手单独拉个宏程序,状态号跳过去就调一次。这种写法调试慢但逻辑死板不容易出幺蛾子,看你现场调试员水平选。

2026/04/25 17:16
宁哥
宁哥#3

你说的"来回跳的时候偶尔会卡一下",大概率是主程序跳转的时候没加等待完成信号。两工位之间如果A没干完B就开始跑了,不卡才怪。DX200的JUMP指令你仔细看说明书,它跳转是不等当前动作执行完的,必须用WAIT指令等信号或者等位置到位。

还有IO乱这个事,你查一下DX200的IO刷新周期,默认好像是8ms,两工位共用IO的话响应慢是正常的,必要时把关键信号改成高速IO或者用系统变量替代物理IO。

2026/04/26 07:44