登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:试玩FX5U 第二篇,ModBus_RTU FB功能块 ST编写调试<有附件>

点击:91 回复:1

废话不多说,先看指令,
附件 1.jpg
附件 2.jpg
S1-S5 都是相关参数,D2是执行状态反馈,D2.0 D2.1 D2.2 分别是执行中,OK完成,NG完成。
手册给的注意事项:
///////////////////////////////////////////////////
请勿在ADPRW指令完成前将驱动触点置为OFF。
根据驱动状况,ADPRW指令通信开始的时间不同。使用单独ADPRW指令驱动时,通信即时开始。同时使用多个ADPRW指令驱动时,通过先行驱动的ADPRW指令进行的通信完成后,通过后续驱动的ADPRW指令进行的通信开始。因此,请勿在通信完成前将ADPRW指令的驱动触点置为OFF。
使用线圈读取功能或输入读取功能,并在读取目标软元件中指定字软元件时,仅通过ADPRW指令的访问点数所指定的位会被改写。字软元件的剩余位不会变化。
//////////////////////////////////////
~~~~~~~~~~~~~~
经过我实际编写梯形图测试,
1,驱动ADPRW的时候,OK NG位会自己复位,
2,指令为完成以后,OK,NG位一直ON,也可以单独复位。<所以官方程序使用的标志位上升沿>
2,未完成的时候断开驱动,NG会ON。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面来规划FB编写:
1,FB引脚不能太多,太多看来来臃肿,
2,要用结构体,每一行通讯使用的时候弄个ST框,这样也不会感觉乱,体现出表格式编辑就可以通讯。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
modbus rtu 结构体:
参考其它品牌的表格式填写以及ADPRW指令内容,
需要 站号,功能码,数据地址,长度,这样就可以了,具体读和写的数据DATA建一个数组大小就32个字吧,
一般就读写字,线圈那些很少用,很多时候,我就读写几个字不得了了。
附件 3.jpg
以上<经过调试修改后的>。
然后就是程序逻辑,用case写,
第一步:等待通讯,。。
(*)*()*)(
算了,我直接丢程序把,截图:<用AI帮忙加了注释,以及格式,挺好用的>
附件 01.jpg
附件 02.jpg
附件 03.jpg
附件 04.jpg
~~~~~~~~~~
程序使用:<启停开关,通信信道&硬件选择,通讯条数>
附件 05.jpg
附件 06.jpg
~~~~~~~~~~
以上,从站1,从站5用的USB转RS485硬件,然后用modbus RTU 模拟软件测试的。
来个动图 GIF:
附件 GIF 2025-12-12 15-52-10.gif
~~~~~~
说好的附件呢,库文件如下:自行导入就OK了
附件:
[本地下载]
1,程序如果有BUG,请自行修改,但是更希望能后续添加附件,方便后来人学习使用修改。
2,任何人可以商用修改,随你,但是我无责啊。
3,用得上的点个赞,毕竟我也是陆陆续续写了几个早晨,雷锋啊~
25-12-12 16:04
不才我也来一个,用无协议方式封装的ModbusRTU主站功能块,支持01~06、0F、10、17等功能码
附件 FX5U_ModbusRTU_Master.jpg
附件 FX3U_ModbusRTU_Master.jpg
25-12-15 13:50

工控新闻

更多新闻资讯