您现在所在的是:

串口通信

回帖:19个,阅读:1690 [上一页] [1] [2] [下一页]
7662
jiouai84
文章数:655
年度积分:50
历史总积分:7662
注册时间:2013/1/7
发站内信
发表于:2017/6/10 12:51:13
#0楼
如图片上讲的,asc时,如图上站号01,0分配了d11,1分配了d12,而在rtu时,站号01直接分配了一个d11,存储单元分配的依据是什么呢?请教大家。
附件 IMG_20170610_124723.jpg
附件 IMG_20170610_124707.jpg
此帖发自论坛手机版
27950
guanyumou 版主
文章数:10552
年度积分:1133
历史总积分:27950
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2017/6/10 13:22:35
#1楼
ASCII方式是把一个字节的高4位和低4位各自转换成ASCII码了
比如站号01
RTU方式就占一个字节
ASCII方式就把0转换为ASCII码30、把1转换为ASCII码31
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
7662
jiouai84
文章数:655
年度积分:50
历史总积分:7662
注册时间:2013/1/7
发站内信
发表于:2017/6/10 13:38:43
#2楼
回复 #1楼 guanyumou
您说的一个字节是8位吗,三菱的一个d是十六位的,那在rtu时比如站号应该一个存储单元就够了啊,为什还要分给两个,谢谢您再指教。
此帖发自论坛手机版
37237
cvlsam 版主
文章数:12401
年度积分:1589
历史总积分:37237
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2017/6/10 14:08:54
#3楼
以下是引用guanyumou2017/6/10 13:22:35的发言:
ASCII方式是把一个字节的高4位和低4位各自转换成ASCII码了
比如站号01
RTU方式就占一个字节
ASCII方式就把0转换为ASCII码30、把1转换为ASCII码31

半个字节没有办法表示一个ASC码,也就是字符。

一个字符需要8位数据位来存储。

例如站号01,其由字符0,字符1来表示,也就是16进制数 30,31来表示。

Good Luck~
37237
cvlsam 版主
文章数:12401
年度积分:1589
历史总积分:37237
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2017/6/10 14:11:58
#4楼
以下是引用jiouai842017/6/10 13:38:43的发言:
您说的一个字节是8位吗,三菱的一个d是十六位的,那在rtu时比如站号应该一个存储单元就够了啊,为什还要分给两个,谢谢您再指教。

之所以这样分配,是因为日系的PLC,或者说很多仿日系的PLC其最小存储单元是字,即Word,而不是欧美系中常用的字节,为了方便用户组合通讯帧信息,因此会让用户将站号,功能码等填入字内,然后通过发送指令发出,其发送指令会在后续的处理中后台以字节的方式重新整合通讯帧。

Good Luck~
7662
jiouai84
文章数:655
年度积分:50
历史总积分:7662
注册时间:2013/1/7
发站内信
发表于:2017/6/10 15:32:11
#5楼
回复 #3楼 cvlsam
谢谢您的指点,如您所说站号01要用h30,h31表示,用两个d(三菱),那在rtu中也是站号01,只用一个d了,是因为ascii转成了两个十六进制数了,所以用了两个d,而rtu直接可转成一个hex数吗?
此帖发自论坛手机版
27950
guanyumou 版主
文章数:10552
年度积分:1133
历史总积分:27950
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2017/6/10 18:46:47
#6楼
以下是引用jiouai842017/6/10 13:38:43的发言:
您说的一个字节是8位吗,三菱的一个d是十六位的,那在rtu时比如站号应该一个存储单元就够了啊,为什还要分给两个,谢谢您再指教。
RTU模式时 站号是占一个存储单元啊!
你这是李老师那本书?!
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
7662
jiouai84
文章数:655
年度积分:50
历史总积分:7662
注册时间:2013/1/7
发站内信
发表于:2017/6/10 21:18:23
#7楼
回复 #6楼 guanyumou
李老师白模拟量与通道控制用实用实践,我想问的就是这个,为什么有的分配一个存储单元,有的要几个,这个分配的依据是什么?特别是对数据地址,数据内容的。
此帖发自论坛手机版
27950
guanyumou 版主
文章数:10552
年度积分:1133
历史总积分:27950
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2017/6/10 21:24:38
#8楼
以下是引用jiouai842017/6/10 21:18:23的发言:
李老师白模拟量与通道控制用实用实践,我想问的就是这个,为什么有的分配一个存储单元,有的要几个,这个分配的依据是什么?特别是对数据地址,数据内容的。
你看的这里是Modbus RTU通信,三菱FX的,而且是8位数据处理!在使用RS指令的时候,8位数据模式会自动把一个寄存器的高8位舍弃!只留低8位!
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
7662
jiouai84
文章数:655
年度积分:50
历史总积分:7662
注册时间:2013/1/7
发站内信
发表于:2017/6/10 21:28:38
#9楼
回复 #6楼 guanyumou
如图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
此帖发自论坛手机版

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003