modbus通信协议与程序示范

2020-01-12 17:25发布

RT.
MODBUS协议内通信,发送与回收格式。
另附stc12c5a60s2单片机上运行成功的modbus代码。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
78条回答
zuu0
2020-01-20 11:14
本帖最后由 zuu0 于 2016-7-7 11:02 编辑
blavy 发表于 2016-7-7 09:19
rbuf与tbuf就是做为接收或者发送的数组。只是限定的寄存器数量为120个,哪里有只能从0开始的。
        if(bHost ...


谢谢你的解答

主要是这里

if(addr_data < SUM_HoldingREG_WORD && (addr_data + reg_num) <= SUM_HoldingREG_WORD)  这个我是实在没看明白

addr_data 数据起始地址,SUM_HoldingREG_WORD寄存器数量      这二个的比较关系,没看明白,,,因为我以前这个起始地址都是乱来的,0x100,0x1000随便来

(addr_data + reg_num) <= SUM_HoldingREG_WORD  

再加上这句,我就更不明白了  addr_data起始地址, reg_num实际的寄存器数量,,,SUM_HoldingREG_WORD 最大的寄存器数量

后面                                ModbusPara.tBuf[k + 3] =  HoldingREGPara[addr_data];//                       
                                addr_data++;

addr_data不应该是从0开始的么?所以我觉的,是不是约定了起始地址应该0开始的

哎啊,疯了,,能解释一下么

一周热门 更多>