Unstack Machine - 上位机和下位机通讯

本文讲述了作者作为新人在项目中遇到的第一个任务——通过TCP socket实现上位机(C# + Halcon)与下位机(Delta PLC,Modbus协议)的通讯。文章详细讨论了如何克服Modbus协议的学习曲线,包括理解其帧格式、功能码的使用以及数值返回顺序的反向问题。此外,还提到了在与机械臂通讯时需要注意在返回数据末尾添加/r或/n的细节。
摘要由CSDN通过智能技术生成

这篇文章只作为工作记录和个人感悟。

作为刚入职的新人,第一个接到的项目就很有挑战性。项目要求是对一摞从高温烘烤箱里拿出来的磨片进行分拣,如下图所示:
磨片堆
可以看到,每个磨片之间有一层特氟龙片进行间隔,每隔十个磨片有一个铝合金片。项目的主要任务就是将特氟龙,铝合金片和磨片都分类放在不同的post上,之后会有图片解释什么是post.

第一个task是建立一个TCPsocket,实现上位机(机械臂和机器视觉)和下位机(PLC)的通讯。这里所使用的PLC是Delta的,使用的通讯协议是modbus,而机器视觉(Halcon)是基于C#运行的。机械臂本身虽然支持I/O串口通讯,但是只有16个input和16个output端口,略少。所以决定使用一个MCU作为信息交互的中转站,所有的信息处理都在MCU上运行。这里就要求基于C#写个程序,可以同时实现和机械臂,Halcon和PLC的通讯。具体的程序我发到Github上了,有需要的话可以去查看 TCP socket for Modbus. 这里就不再赘述关于代码的内容了,只来谈谈我遇到的困难和一些思考。
第一个遇到的困难是如何使用socket和PLC进行通讯,众所周知,PLC上有很多registers和coils,而我们每次运行的时候其实也是在不断读取和存储不同的数值。这里就有一个问题,我使用的PLC是基于Modbus通讯协议的,而这个协议要求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值