一路生花
级别: 略有小成
精华主题: 0
发帖数量: 92 个
工控威望: 354 点
下载积分: 2843 分
在线时间: 187(小时)
注册时间: 2021-11-11
最后登录: 2024-12-18
查看一路生花的 主题 / 回贴
楼主  发表于: 2022-01-04 09:33
图片:
图片:
图片:
图片:
大家帮忙看看我哪里设置的不对?MODBUS设定是9600, 无校验,8数据长度,1停止位,温控器站号设置第五站,H3读取从站保持寄存器,但后面从站寄存器涉及到一个功能码H4读测量值数据以及0*00第一通道测量值地址,我这程序应该怎样写?下面是我自己写的,麻烦各位大佬帮忙看一看,纠正一下!
zhangqi_1234
级别: 略有小成
精华主题: 0
发帖数量: 342 个
工控威望: 493 点
下载积分: 4015 分
在线时间: 250(小时)
注册时间: 2013-03-22
最后登录: 2024-12-07
查看zhangqi_1234的 主题 / 回贴
1楼  发表于: 2022-01-04 14:07
图片:
没有正确使用ADPRW指令,仔细阅读图中所示的信息,再对照你编写的ADPRW指令:[ADPRW H5 H3 H4 H0 D1500],H5表示站号,H3是功能码,H4是什么?H0是什么?另外,每个通道存储测量值的寄存器数量是多少个?
zhangqi_1234
级别: 略有小成
精华主题: 0
发帖数量: 342 个
工控威望: 493 点
下载积分: 4015 分
在线时间: 250(小时)
注册时间: 2013-03-22
最后登录: 2024-12-07
查看zhangqi_1234的 主题 / 回贴
2楼  发表于: 2022-01-05 00:33
引用
引用第5楼一路生花于2022-01-04 14:19发表的  :

我查过手册,其他部分的通讯已经完成,这个东西的地址我确实不知道如何写在程序里才来提问的。
H5是站号H3是modbus从站保持寄存器读出H4是温控仪读测量值功能码H0是第一温控仪测量值地址,现在不知道怎么去用ADPRW指令读取这个温控仪的第一通道测量值
温控仪手册的详细我截图放在上面了。

根据你贴出的功能码和存储器截图,假设读取第一通道测量值,而测量值只占用1个16位寄存器,应该用[ADPRW H5 H4 H0 H1 D1500],注意,功能码不能用H3,H3是读取保持寄存器数据,H4才是读取测量值。