这里接前一章节迪文串口屏基础GUI开发流程案例,继续迪文屏的开发,前章主要讲串口屏基础GUI开发流程,此章节开始讲迪文MODBUS协议栈的使用方法。
1、MODBUS协议栈获取,首先在迪文官方论坛上获取MODBUS协议栈的OS程序,官方提供了众多不同的历程,是通过组合不同的串口接口及串口波特率等组合方式配合协议栈完成的,此处选择的是基于UART5-485/115200波特率的示例程序。
将其下载下来后,解压目录包含如下文件
文件作用解析如下:
我们需要用到的仅有两个bin文件,将DWINOS-xx.bin和22_xx.bin放入SD卡中的DWIN_SET目录下,屏幕断电,插入SD卡后再上电,即可看到屏幕开始更新SD卡中的内容。
2、22文件内有两天默认的指令用于测试,使用能够查看BIN文件的工具,官方有推荐其他工具,各位也可以选择自己熟悉的工具,只要能够编辑bin文件即可,在这里我选择已经安装好的J-Flash软件打开,将22_Master_Poll.bin 拖入J-Flash软件,在顶部将其定位到0X1C000位置处可以看到如下数据:
刚开始可能看不懂代表的具体意思,迪文论坛上有人自制了22文件的图形化编辑工具,有需要.net环境版本的,也有不需要环境直接运行的,区别就是用.net环境的会比不需要环境的压缩包更小,为了省掉不必要的麻烦,在这里选了不依赖.net环境的下载,下载后内容如下
3、双击DwinModbus.exe即可正常打开,打开后选择从22文件导入数据即可看到每条指令分别代表什么意思。
在这里按屏幕提示正常按需求添加MODBUS指令即可,但需要注意的是,部分功能码对GUI界面的变量地址做出了要求,例如使用05码控制单个线圈,官方在手册中对位定义做出了要求,变量地址必须在0X0110到0X011F之间,每个变量分为16bit,最多256个bit位。对其他的部分功能码也有相关的限制,需要查手册或论坛以及询问技术支持。
按要求,需要读取modbus从机数据并将其显示到页面上,假设从机modbus地址为1,数据位于输入寄存器2000号地址,浮点型,两个寄存器数据表示一个浮点数,将其读取出来后显示到GUI的1000变量地址上,则在图形化22配置工具上应输入如下指令 :
(1) 启用标记:在命令的开头必须是0X5A代表本条MODBUS指令被启用,其余数据代表不起用;
(2) 从机ID:从机MODBUS地址;
(3) 命令:MODBUS功能码;
(4) 本条指令长度:要从目标寄存器开始读取多少个寄存器数量;
(5) 接收超时时间:主机发出消息后等待从机的响应时间,从解释来看,是16进制,单位是ms;
(6) 执行方式:可以选择附加条件的执行,具体可以查看软件上的注释,这里选择00即是无条件执行;
(7) 附加限制:指的在开启附加条件时根据此条件进行发送;
(8) DGUS变量地址:指的是GUI上用户设置的用于显示数据的变量地址,也就是前文中设置的数据显示地址;
(9) 寄存器地址:读取从机的起始寄存器地址;
4、当配置完成后,点击生成ModBus指令按钮即可导出设置的modbus命令集,但注意,这个软件有bug,生成的指令对齐格式不对,无法直接使用,可以看到在默认的22文件中,两条指令之间即5A开头之间是相差了16个字节的,但使用这个软件进行多指令生成的时候可以看到是不一致的。
问了官方的图形配置工具已经在做了,预计还要一段时间,建议各位使用这个工具的时候还是用来熟悉指令格式,自己手动修改bin文件。虽然软件生成有问题,但加载是正常的,可以用来验证手改bin的效果是否达到。
5、指令添加完成后,使用串口工具进行下载,即可在串口5上使用485转换器接收到主机发出的MODBUS指令:
此时使用< Modbus Slave>模拟从机设备,建立如下寄存器:
点击上方的connect选择好对应的串口参数,即可查看到主机与模拟器的交互过程。
此时,屏幕上的指定变量应当会显示模拟器中的数据。
参考资料:
【分享】免配置22文件生成MODBUS主机参数工具 - Modbus通信开发 - 迪文科技论坛 - Powered by Discuz! (dwin.com.cn)
【开发资料】T5, T5L 系列MODBUS_RTU 协议通讯 os源码-升级版 - Modbus通信开发 - 迪文科技论坛 - Powered by Discuz! (dwin.com.cn)
今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多产品更多资料,感兴趣的小伙伴可以登录我们的亿佰特官网和企业公众号(微信号:cdebyte)进行了解,也可以直接拨打400电话咨询技术专员!
相关阅读:
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 杭州办事处戴经理:17512568697
常州办事处崔经理:15906110783 南京办事处葛经理:17626012283
业务邮箱:support@cdebyte.com
全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都亿佰特电子科技有限公司【版权所有】 蜀ICP备13019384号-3