若该文为原创文章,转载请注明原文出处 本文章博客地址:blog.csdn.net/qq21497936/…
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)
其他(编程相关)
上一篇:《台达PLC开发笔记(一):台达PLC连接介绍,分别使用485、网口与台达PLC建立连接》 下一篇:敬请期待...
前言
前面使用485和网口与台达成功建立通讯,但是485是使用用的ASICC模式,多数情况下是使用RTU模式提升通讯效率。
下载安装台达ISPSoft软件
官网下载地址:downloadcenter.delta-china.com.cn/DownloadCen… 配置需要通过网线,使用HWCONFIG软件进行配置: (先安装前面的commgr通讯管理软件) 下载后,如下图: 安装后,如下图:
配置之前测试
使用485测试ASCII通讯方式
使用485测试RTU通讯方式
(端口默认是ASCII方式,RTU方式会返回一个固定长度固定的数据,应该是错误检测)
使用ISPSoft软件配置台达PLC的485由ASCII转为RTU
步骤一:打开软件
步骤二:创建工程
步骤三:打开网络配置HWCONFIG
步骤四:配置COM1口等参数(ASCII改为RTU)
(若没有之前使用网线连接,会出现提示,之前是需要先网线连接到PLC的) 正在下载,提示处理中,如下图: 下载超时,是需要使用网口连接的。
步骤五:使用网线方式连接PLC
步骤六:再次下载新的配置(原先为485现在为网线IP)
步骤七:下载成功,使用485RTU进行测试
(为hex了,不是acsii了,成功)
入坑
入坑一:使用Qt的modbus485读取失败
问题
Qt的modbus全方面测试读取M、D、Y、X对应的寄存器附近几个值都为0。
解决
直接使用modbus rtu测试
是没有问题的,但是Qt返回值依然是:
其他部分在此尝试过了,总共四种类型,相关的M、D、X、Y变量都设置过类似的,全部读取成功,但是值都为0与实际不符,好像架空了一样。
论证(2021年04月25日补充)
测试单个线圈,使用libmodbus可以读出来 测试单个线圈,使用QModbus还是无法读出 测试读取寄存器,使用libmodbus可以读出 测试读取寄存器,使用QModbus可以读出
结论
Qt有些东西确实鸡肋,没必要死磕。
上一篇:《台达PLC开发笔记(一):台达PLC连接介绍,分别使用485、网口与台达PLC建立连接》 下一篇:敬请期待...
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!