电工学习网

 找回密码
 立即注册
查看: 4351|回复: 0
打印 上一主题 下一主题

学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

[复制链接]
跳转到指定楼层
楼主
发表于 2020-2-10 11:54:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
这个假期真是过舒服了,无聊的把电脑上所有的SIEMENS软件都升级为最新版本了。无耐开工一推再推,于是把之前Zane版发表的《博图环境下Modbus-RTU应用入门之任务轮询》研究了一遍,正好也学习一下VARIANT间接寻址的用法。也借此机会提出自己的一点想法。
主要几个关键程序段:
1.     建立plc DATA TYPE(UDT)
建立MB_JOB_UDT(见图1),这个UDT主要是用在MODBUS_MASTER这个块接口的
图1 学习《博图环境下Modbus-RTU应用入门之任务轮询》有感
2.     新建数据块MB_Job_DB,以MB_JOB_UDT为数据类型,建立数组。每一个数组可以看成是一条MODBUS报文。见图2
图2
学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

3.     建立FB块(MB_RTU_Master_V31),作为MODBUS的主功能块。
学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

4.     MODBUS通讯主要用到了2个功能块,MODBUS_COMM LOAD和MODBUS_MASTER。对于MODBUS_COMM LOAD的接口,可以直接做在FB功能块的接口上,PLC上电初始化时赋值一次就可以了。见图3
图3
学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

5.     接下来就是把要读写的指令和数据,赋给MODBUS_MASTER。主要是用到了MOVE_BLOCK_VARIANT指令(见图4),把DB块内对应数组内的数据,传给内部地址MB_JOB(基于UDT建立的)。FB的接口主要是2个,见图5
图4
学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

图5
学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

6.     给MODBUS_MASTER的接口赋值,见图6
图6
学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

7.     对于读指令,把读回来的数据,再写入MB_Job_DB数据块的对应的数组,这样,读回来的数据就在对应数组的DATA_PTR数组里面了。
对于写指令,只要把MB_Job_DB数据块里,对应数组内赋值(报文指令)就可以了。见图7
图7
学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

8.     最后,MB_JOB_DB内有几个数组(报文指令),就循环几次,完成整个轮询过程。

研究完整个程序,有一个地方觉得不够完美。就是第7点,数据读回来后,要写回MB_Job_DB数据块,这会导致MB_ADDR、MODE、DATA_ADDR、DATA_LEN也会被覆盖。而实际上,只需要把DATA_PTR的数据写回DB块。
假如要通过上位机动态修改报文的读和写,或是读写的数据长度,或地址,那么,这几个数据有时不能一次性修改(就是不能一次修改成功)。因为这几个数据有可能会被上次的数据重新写回去。这是有一定概率的事情。
  解决这个问题,最好把MB_Job_DB数据块中的DATA_PTR单独做个PLC DATA TYPE,这样就可以写回我们需要的数据。
以上,就是本人对Zane版所写程序的一点感悟,一点拙见,还请批评指正。也感谢Zane版的无私奉献,让我们能够学习到PORTAL的更高级的编程。
最后,放上修改过的几个截图:
  • 把之前的UDT拆成2个独立的UDT
学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

2.修改FB的接口
学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

3.修改DB数据块,并增加一个DATA_PTR的数据块
学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

4.修改FB相关程序

学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

学习《博图环境下Modbus-RTU应用入门之任务轮询》有感

5.最后FB的接口如下图
学习《博图环境下Modbus-RTU应用入门之任务轮询》有感
来源:西门子工业技术论坛

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-27 23:26

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表