基于昆仑通态的屏的MODBUS协议调试之10功能码

本文详细解析了一段MODBUS通信过程,包括COM8接口的写入和读取操作。内容涉及MODBUS功能码、寄存器地址、字节数以及数据的连续写入,尤其关注超过单次最大写入限制时如何分批写入400个字节的数据。通过对指令`SetDevice(DB16,WritePV(412001,WUB4400,DB_T1,nReturn))`的解读,阐述了从多个DB区获取数据并连续写入的过程。
COM8 Write(hex): 249(Bytes)21 10 07 D0 00 78 F0 00 00 00 01 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 01 00 02 00 06 00 01 00 01 00 01 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 01 00 01 00 00 00 01 00 01 00 00 00 01 00 01 00 00 00 01 00 00 00 02 00 05 00 00 00 00 00 01 00 00 00 03 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 01 00 03 00 01 00 01 00 01 00 00 00 04 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 02 00 06 00 00 00 00 00 01 00 00 00 05 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 01 00 02 00 06 00 01 00 01 00 01 00 00 00 06 00 00 00 01 00 00 23 13 
COM8 Read(hex): 8(Bytes) 21 10 07 D0 00 78 C7 C6 
COM8 Write(hex): 249(Bytes)21 10 08 48 00 78 F0 00 01 00 00 00 01 00 01 00 00 00 01 00 01 00 00 00 01 00 01 00 00 00 01 00 00 00 02 00 05 00 00 00 00 00 01 00 00 00 07 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 01 00 03 00 01 00 01 00 01 00 00 00 08 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 02 00 06 00 00 00 00 00 01 00 00 00 09 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 01 00 02 00 06 00 01 00 01 00 01 00 00 00 0A 00 00 00 01 00 00 00 01 00 00 00 01 00 01 00 00 00 01 00 01 00 00 00 01 00 01 00 00 00 01 00 00 00 02 00 05 00 00 00 00 00 01 00 00 00 0B 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 AC 9B 
COM8 Read(hex): 8(Bytes) 21 10 08 48 00 78 45 3D 
COM8 Write(hex): 249(Bytes)21 10 08 C0 00 78 F0 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 01 00 03 00 01 00 01 00 01 00 00 00 0C 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 02 00 06 00 00 00 00 00 01 00 00 00 0D 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 01 00 02 00 06 00 01 00 01 00 01 00 00 00 0E 00 00 00 01 00 00 00 01 00 00 00 01 00 01 00 00 00 01 00 01 00 00 00 01 00 01 00 00 00 01 00 00 00 02 00 05 00 00 00 00 00 01 00 00 00 0F 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 01 00 03 00 01 00 01 00 01 00 00 00 10 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7 87 
COM8 Read(hex): 8(Bytes) 21 10 08 C0 00 78 C5 17 
COM8 Write(hex): 89(Bytes)21 10 09 38 00 28 50 00 06 00 00 00 00 00 02 00 06 00 00 00 00 00 01 00 00 00 11 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 01 00 02 00 06 00 01 00 01 00 01 00 00 00 12 00 00 00 01 00 00 00 01 00 00 00 01 00 01 BA F5 
COM8 Read(hex): 8(Bytes) 21 10 09 38 00 28 45 26 

 !SetDevice(DB,6,"WritePV(4,2001,WUB,400,DB_T1,nReturn)")

该指令是指从2000地址开始连续写入400个字节,数据依次从DB_T1,DB_T2....获取。 
昆仑通态的屏最大连续写入120个字节。

第一个写入命令 21是设备地址,10是功能码,07 D0是寄存器地址  00 78 是字节数转换成十进制即120.后面的就是要写入的数据了。

第二,第三个类似,;

第四个因为是连续写入400个,除去360个,即还要写入40个,即 00 28(转换成10进制为40)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值