MB协议里面可以直接传输十进制的两位数吗?
MB协议里面,可以直接把十进制的数比如8899这样数字传输到后台吗?必须要转换成十六进制才能传输吗?十进制转换成十六进制例程可以参考一下?数码协议只会传01
如0B01011010
十进制:90
十六进制:0x5A 怎么感觉是你钻牛角尖了呢0.0
进制只是人为了方便赋予的数值的意义,,计算机里面都是01的这种数据,,如果只是为了自己看的方便,可以了解一下BCD码 还有一句 MB 说的是 MODBUS协议么0.0 _奶咖君_ 发表于 2024-3-28 09:35
怎么感觉是你钻牛角尖了呢0.0
进制只是人为了方便赋予的数值的意义,,计算机里面都是01的这种数据,,如 ...
没有,我现在有十进制数,想转换成十六进制,发出去,不知道如何转化?我也想当然了,如果能直接传十进制更好, 如果是以字符形式的话 可以用一用sprintf函数 虽然效率低占用大,,但是用起来很方便。其他的就自己百度吧,有小而美的程序
如果是以整形数值的方式,那不用管。直接发送就行。前提你所谓的十进制数据的数据类型是整形 如果是modbus协议的话,本身就好几种传输方式
modbus RTU是传输二进制数据的方式,
modbus ASCII是把二进制数转成ASCII字符再传输的方式
具体要看你的接收端支持不支持 _奶咖君_ 发表于 2024-3-28 10:19
如果是以字符形式的话 可以用一用sprintf函数 虽然效率低占用大,,但是用起来很方便。其他的就自己百度吧 ...
是整型的,只有01-99这些数字,没有其他的 网老四 发表于 2024-3-28 11:17
如果是modbus协议的话,本身就好几种传输方式
modbus RTU是传输二进制数据的方式,
modbus ASCII是把二进制数 ...
我用的是MB-RTU 当然可以发送十进制数啦,不过就是你自己解析的问题,比如,你可以这样写
页:
[1]
2