登录
首页 串口通信 串口通信
回帖 发帖
正文

主题:modbus asc与rtu通信分配存储单元的依据是什么,

点击:1757 回复:19

如图片上讲的,asc时,如图上站号01,0分配了d11,1分配了d12,而在rtu时,站号01直接分配了一个d11,存储单元分配的依据是什么呢?请教大家。
附件 IMG_20170610_124723.jpg
附件 IMG_20170610_124707.jpg
17-06-10 12:51
ASCII方式是把一个字节的高4位和低4位各自转换成ASCII码了
比如站号01
RTU方式就占一个字节
ASCII方式就把0转换为ASCII码30、把1转换为ASCII码31
17-06-10 13:22
您说的一个字节是8位吗,三菱的一个d是十六位的,那在rtu时比如站号应该一个存储单元就够了啊,为什还要分给两个,谢谢您再指教。
17-06-10 13:38

引用 guanyumou 在 2017/6/10 13:22:35 发言【内容省略】

半个字节没有办法表示一个ASC码,也就是字符。
一个字符需要8位数据位来存储。
例如站号01,其由字符0,字符1来表示,也就是16进制数 30,31来表示。
Good Luck~
17-06-10 14:08

引用 jiouai84 在 2017/6/10 13:38:43 发言【内容省略】

之所以这样分配,是因为日系的PLC,或者说很多仿日系的PLC其最小存储单元是字,即Word,而不是欧美系中常用的字节,为了方便用户组合通讯帧信息,因此会让用户将站号,功能码等填入字内,然后通过发送指令发出,其发送指令会在后续的处理中后台以字节的方式重新整合通讯帧。
Good Luck~
17-06-10 14:11
谢谢您的指点,如您所说站号01要用h30,h31表示,用两个d(三菱),那在rtu中也是站号01,只用一个d了,是因为ascii转成了两个十六进制数了,所以用了两个d,而rtu直接可转成一个hex数吗?
17-06-10 15:32

引用 jiouai84 在 2017/6/10 13:38:43 发言【内容省略】

RTU模式时 站号是占一个存储单元啊!
你这是李老师那本书?!
17-06-10 18:46
李老师白模拟量与通道控制用实用实践,我想问的就是这个,为什么有的分配一个存储单元,有的要几个,这个分配的依据是什么?特别是对数据地址,数据内容的。
17-06-10 21:18

引用 jiouai84 在 2017/6/10 21:18:23 发言【内容省略】

你看的这里是Modbus RTU通信,三菱FX的,而且是8位数据处理!在使用RS指令的时候,8位数据模式会自动把一个寄存器的高8位舍弃!只留低8位!
17-06-10 21:24
如图1ascii方式时,规定了起始码4位1个hex数,转换成一个ascii码,所以只用一个d0,地址码,8位,hex两位,两个ascii码,所以用两个d,而rtu模式时,如图2,地址码8位,用一个d,数据区首地址,4个hex数,16位用一个d,这样算对吗?
附件 IMG_20170610_212155.jpg
附件 IMG_20170610_212125.jpg
17-06-10 21:28

上一页下一页

工控新闻

更多新闻资讯