leonhuang
级别: 略有小成
精华主题: 0
发帖数量: 59 个
工控威望: 202 点
下载积分: 3933 分
在线时间: 37(小时)
注册时间: 2013-06-27
最后登录: 2023-11-09
查看leonhuang的 主题 / 回贴
楼主  发表于: 2019-07-04 11:27
描述:通讯读写格式
图片:
描述:仪表设定
图片:
描述:仪表通讯方式设定
图片:
描述:仪表数据存取地址
图片:
描述:编写的程序1
图片:
描述:编写的程序2
图片:
不懂通讯的菜鸟,请各位大佬教教我。
通讯格式我看了些资料,有基本的认识。但是在编写程序的过程中有一些不懂。
一、就编写程序是用8位还是16位即M8161的选择。因为我T3仪表(图片:仪表数据存取地址,功能地址40005,毛重;占两个寄存器、32位,4字节有符号只读)的寄存器是否影响位数与RS指令的编写?
二:编写数据格式,{RS D0 Kn D30 Kn},Kn的个数如何确定。如[MOV H1 D0]   [MOV H3 D1]   [MOV H5 D2]   [MOV H2 D3]    [MOV H核验码? D4] 那这样是不是就5个。8位与16位数据格式,地址码到校验码个数是否不一样?
三、8位和16位的格式,D0(b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0),8位是处理b0-b7;16位是处理b0-b15。 8位的编写:[MOV H1 D0]   [MOV H3 D1]   [MOV H5 D2]  [MOV H2 D3] 在第一点中说的功能地址0005占两个寄存器、共4个字节、32位;那数据个数这样编写是不是就有问题了?    16位的编写:[MOV H1 D0]   [MOV H3 D1]   [MOV H5 D2]   [MOV H2 D3]
三、CRC校验如何编写,我这个程序的CRC校验码是什么?
四、回传数据的处理。回传回来的数据是放在D33、D34中,还是D33、D34、D35、D36中?[MOV D30 D50 K10 ] 如果是16位处理,那数据是放在D53与D54,那程序:[MOV D54 K4M10]   [MOV D53 K4M26]    [MOV K4M10 D100]最终数据存在D100、D101中?    这样的理解是不是有问题?
[ 此帖被leonhuang在2019-07-04 14:06重新编辑 ]
tingfenghu
级别: 工控侠客

精华主题: 0
发帖数量: 2845 个
工控威望: 3617 点
下载积分: 3517 分
在线时间: 3803(小时)
注册时间: 2007-11-04
最后登录: 2024-11-22
查看tingfenghu的 主题 / 回贴
1楼  发表于: 2019-07-10 11:56
首先你用个USB转485,
串口助手发送相应报文,看仪表返回的报文是否正确,
Modbus地址各家并没有统一,有些需要偏移一位,如40001,实际地址,是00H,00H,而有些是00H,01H,
直至返回报文数据正解,

用串口助手接收FX3U-485BD的发出报文,
是否是与上面串口助手发出的相同
检查报文是否正解?程序作相对的调整.
二手PLC,触摸屏,伺服驱动,各类气动设备
http://shop58129605.taobao.com/
tingfenghu
级别: 工控侠客

精华主题: 0
发帖数量: 2845 个
工控威望: 3617 点
下载积分: 3517 分
在线时间: 3803(小时)
注册时间: 2007-11-04
最后登录: 2024-11-22
查看tingfenghu的 主题 / 回贴
2楼  发表于: 2019-07-11 12:20
首选确认你的232转485正常,
一般采用串口助手,比较灵活。
可以参考我之前做过测试
http://www.ymmfa.com/read-gktid-1658651.html
文档有整个测试过程。
二手PLC,触摸屏,伺服驱动,各类气动设备
http://shop58129605.taobao.com/