您现在所在的是:

PLC论坛

回帖:8个,阅读:478 [上一页] [1] [下一页]
22903
bnnyygy
文章数:6524
年度积分:176
历史总积分:22903
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2025/12/12 16:04:40
#0楼
废话不多说,先看指令,
附件 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,用得上的点个赞,毕竟我也是陆陆续续写了几个早晨,雷锋啊~




29034
guanyumou 版主
文章数:10693
年度积分:115
历史总积分:29034
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2025/12/15 13:50:32
#1楼
不才我也来一个,用无协议方式封装的ModbusRTU主站功能块,支持01~06、0F、10、17等功能码
附件 FX5U_ModbusRTU_Master.jpg
附件 FX3U_ModbusRTU_Master.jpg
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
22903
bnnyygy
文章数:6524
年度积分:176
历史总积分:22903
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2025/12/17 9:36:07
#2楼
回复 #1楼 guanyumou
三菱自带的通讯指令也还行,简单易用,但是还是更喜欢填表一样的通讯方式,
27236
ytleaderplc
文章数:11329
年度积分:196
历史总积分:27236
注册时间:2008/6/7
发站内信
发表于:2025/12/18 8:44:03
#3楼
好像还是不能同时读吧 几路的还要轮询吧
PLC 文本显示器 触摸屏 变频 伺服 编程电缆 plc触摸屏编程 维修等
email:  ytleader@126.com
22903
bnnyygy
文章数:6524
年度积分:176
历史总积分:22903
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2025/12/18 11:27:08
#4楼
以下是引用ytleaderplc2025/12/18 8:44:03的发言:
好像还是不能同时读吧 几路的还要轮询吧


硬件就决定了,RS485 2条线,同一时刻要么是1,要么是0 非0功能码只能轮询,参考你开会是领导发言,一问一答机制。

此贴的意义在于,可以类似表格式通讯,添加一个ST框就可以定义从站编号,功能码那些,对于项目多从站还是很有必要的。
27236
ytleaderplc
文章数:11329
年度积分:196
历史总积分:27236
注册时间:2008/6/7
发站内信
发表于:2025/12/18 13:50:03
#5楼
读不同的modbus地址 比如40001-40005读。有些数据在40010开始 这样的
PLC 文本显示器 触摸屏 变频 伺服 编程电缆 plc触摸屏编程 维修等
email:  ytleader@126.com
22903
bnnyygy
文章数:6524
年度积分:176
历史总积分:22903
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2025/12/18 15:06:30
#6楼
以下是引用ytleaderplc2025/12/18 13:50:03的发言:
读不同的modbus地址 比如40001-40005读。有些数据在40010开始 这样的


所以,这个帖子很有意义了,

你如果不连续的地址,如果控制器支持,可以一条指令读多个地址,比如40001-400100这样<包含你需要的数据就行>,要用的再mov出来就行,不用的不管它,

也可以分2条或者多条指令读,

第一条读40001-40005.第二条读40010-~N这样,<效率低一些罢了>;

这个FB预制了0-49条,自己外面填写数据就行,不够的自己加~
116
Brainy_fa
文章数:104
年度积分:116
历史总积分:116
注册时间:2023/1/6
发站内信
发表于:2025/12/19 15:31:38
#7楼
太长不看,先收藏,用到的时候再研究,谢谢!
13122
逍遥的久鸣
文章数:4718
年度积分:122
历史总积分:13122
注册时间:2017/3/6
发站内信
2018论坛热心网友
发表于:2025/12/21 11:41:25
#8楼
大佬们,恐怖如斯!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2026 Gkong.com, All Rights Reserved

78.0005