三菱FX3U编程口通信上位机QT实现
三菱FX3U PLC
三菱FX3U编程口通信上位机软件
上位机开发流程:
一、查找类似工具
找到 三菱FX串口实验(FX Serial) 这款工具
这款工具挺好用的,能够验证大多数的功能,而且能够看到发送和接收的报文,是一个不错的辅助工具,给我的上位机开发提供了很大的帮助。
二、查找通信协议
通过上面的工具能够验证通信的畅通,并且能够看到实际效果。但是缺乏理论支持,不了解通信的帧格式,查看通信协议能够消除这个困境。
协议链接
从这份协议里面能够了解到通信的帧格式以及字节序。(PS:文档中对于特殊寄存器地址的说明貌似有点问题,按照文档中的做法始终无法读写特殊寄存器)
三、串口抓包
三菱FX串口实验(FX Serial) 这款工具 不能读写特殊寄存器,按照协议中对特殊寄存器地址的介绍也没能正确读出特殊寄存器中的值。所以只好放大招,串口抓包(发现通过三菱官方的编程软件GX Works2 能够读写特殊寄存器的值,然后想着通过串口抓包肯定能够抓到相应的读写报文)
果真还是被抓到了
写特殊数据寄存器指令:02 45 31 30 38 30 30 30 30 32 30 41 30 30 03 41 34
通过数据帧可以得到特殊数据寄存器地址的算法:(特殊数据寄存器地址-8000)*2+0x8000 得到协议中的起始地址。
上面是特殊数据寄存器(特D)的地址算法,特殊辅助继电器(特M)也可以通过抓包方式得到协议帧格式,这里不再赘述。
至此,普通寄存器读写、强制位操作、特殊寄存器读写就开发完了。
注:本demo为功能验证项目、并没有做强壮性优化,可能会出现一些小bug(如波特率不匹配导致崩溃)。使用注意事项:特D只能进行字操作,地址8000 ~ 8511,特M操作放在了位操作里面,地址也是8000 ~ 8511。