【持续更新】近期C++开发Modbus通讯接口小结

项目需求:对PLC上存储的数据进行读取,并转存到数据库

语言:C++、DDL

所需知识点:Socket通信、Modbus帧结构、C++中数据库的操作、多线程、Linux

项目进度拆解记录(不会做就是困难!!管它简不简单!)

1、Socket通信。

        由于之前一直采用串口通信,并未了解过其他通信机制,所以&*%¥%!@#(啥也不会)。打开网页、视频各种学习,发现是自己掌握的TCP通信机制,但自己只是理论掌握,不具备代码实现的能力,在优快云、GitHub寻找各种资源后,终于写出了自己的Socket.cpp。这只是开始,耗时一周(严重浪费!!!)

        1.1、Socket通信连接问题

       在不打开服务器的情况下,程序会一直停在连接时(我用的是connect连接)。且打开服务器后,通信连接成功,但会报出一个错误(自己写的,取出connect返回值为-1)。这里理想的优化方案是连接服务器超时时,报出一个错误,然后再尝试继续连接。实现方式学习中……

2、Modbus帧结构。(这个我可以,最喜欢帧结构!)

        2.1、Socket通信连接问题

       耗时一个下午,各处查找资料后,学习到Modbus帧中的位所代表的信息。——这里安利两个小工具(Modbus Slave和Modbus Poll)下载地址(链接:https://pan.baidu.com/s/1YNz1wbb6PeRrVDhg2mrdgQ 提取码:z2a0 --来自百度网盘超级会员V4的分享)——下图可以即为帧结构,显然~~~所以~~~这里懂了。在代码实现的过程中,由于不可抗力的被要求加入CRC校验算法,然后打开GitHub一顿扒拉,读了很多之后ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值