380091044 发表于 2024-3-28 08:45:05

MB协议里面可以直接传输十进制的两位数吗?

MB协议里面,可以直接把十进制的数比如8899这样数字传输到后台吗?必须要转换成十六进制才能传输吗?十进制转换成十六进制例程可以参考一下?

Lkck8210 发表于 2024-3-28 08:52:33

数码协议只会传01
如0B01011010
十进制:90
十六进制:0x5A

_奶咖君_ 发表于 2024-3-28 09:35:11

怎么感觉是你钻牛角尖了呢0.0

进制只是人为了方便赋予的数值的意义,,计算机里面都是01的这种数据,,如果只是为了自己看的方便,可以了解一下BCD码

_奶咖君_ 发表于 2024-3-28 09:35:47

还有一句 MB 说的是 MODBUS协议么0.0

380091044 发表于 2024-3-28 10:13:53

_奶咖君_ 发表于 2024-3-28 09:35
怎么感觉是你钻牛角尖了呢0.0

进制只是人为了方便赋予的数值的意义,,计算机里面都是01的这种数据,,如 ...

没有,我现在有十进制数,想转换成十六进制,发出去,不知道如何转化?我也想当然了,如果能直接传十进制更好,

_奶咖君_ 发表于 2024-3-28 10:19:19

如果是以字符形式的话 可以用一用sprintf函数 虽然效率低占用大,,但是用起来很方便。其他的就自己百度吧,有小而美的程序

如果是以整形数值的方式,那不用管。直接发送就行。前提你所谓的十进制数据的数据类型是整形

网老四 发表于 2024-3-28 11:17:26

如果是modbus协议的话,本身就好几种传输方式
modbus RTU是传输二进制数据的方式,
modbus ASCII是把二进制数转成ASCII字符再传输的方式
具体要看你的接收端支持不支持

380091044 发表于 2024-3-28 13:03:38

_奶咖君_ 发表于 2024-3-28 10:19
如果是以字符形式的话 可以用一用sprintf函数 虽然效率低占用大,,但是用起来很方便。其他的就自己百度吧 ...

是整型的,只有01-99这些数字,没有其他的

380091044 发表于 2024-3-28 13:04:11

网老四 发表于 2024-3-28 11:17
如果是modbus协议的话,本身就好几种传输方式
modbus RTU是传输二进制数据的方式,
modbus ASCII是把二进制数 ...

我用的是MB-RTU

jwd 发表于 2024-3-28 13:57:41

当然可以发送十进制数啦,不过就是你自己解析的问题,比如,你可以这样写
页: [1] 2
查看完整版本: MB协议里面可以直接传输十进制的两位数吗?