注册名:

密码:

个人注册

企业注册

商务申请

商务管理平台

企业管理平台

个人管理平台

我的工控博客

中国工控网www.chinakong.com

首页 | 新闻中心 | 工控论坛 | 经验视点 | 工控商务 | 电气手册 | 工控博客 | 招聘求职 | 网上调查 | 企业中心 | 供求信息 | 资料中心 | 工控书店

所在位置:工控论坛 -- 工业自动化网络论坛 -- Modbus论坛 -- 协议标准

中国工控网搜索:

 自动化企业招聘

更多..

 登陆:密码:  注册  密码

搜索:

Modbus论坛分类  

全部论题

协议标准

硬件配置

发表人:wyt7788 发表时间:2008/11/7 9:52:00  

 

 本栏论题: MODBUS-RTU通讯协议简介   [16382]

    1.1 Modbus协议简述
    ACRXXXE系列仪表使用的是Modbus-RTU通讯协议,MODBUS协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。MODBUS协议在一根通讯线上使用主从应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机。
    Modbus协议只允许在主机(PC,PLC等)和终端设备之间通讯,而不允许独立的终端设备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。
    1.2 查询—回应周期
    1.2.1 查询
    查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。
    1.2.2 回应
    如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据:如寄存器值或状态。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。
    1.3 传输方式
    传输方式是指一个数据帧内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与Modbus 协议– RTU方式相兼容的传输方式。
    每个字节的位:
    · 1个起始位
    · 8个数据位,最小的有效位先发送
    · 无奇偶校验位
    · 1个停止位
    错误检测(Error checking):CRC(循环冗余校验)
    1.4 协议
    当数据帧到达终端设备时,它通过一个简单的“端口”进入被寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。返回的响应数据中包含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的被请求数据(Data)和一个校验码(Check)。发生任何错误都不会有成功的响应,或者返回一个错误指示帧。
    1.4.1 数据帧格式
    Address Function Data Check
    8-Bits 8-Bits N x 8-Bits 16-Bits
    1.4.2 地址(Address)域
    地址域在帧的开始部分,由一个字节(8位二进制码)组成,十进制为0~255,在我们的系统中只使用1~247,其它地址保留。这些位标明了用户指定的终端设备的地址,该设备将接收来自与之相连的主机数据。每个终端设备的地址必须是唯一的,仅仅被寻址到的终端会响应包含了该地址的查询。当终端发送回一个响应,响应中的从机地址数据便告诉了主机哪台终端正与之进行通信。
    1.4.3 功能(Function)域
    功能域代码告诉了被寻址到的终端执行何种功能。下表列出了该系列仪表用到的功能码,以及它们的意义和功能。
    代码 意义 行为
    03 读数据寄存器 获得一个或多个寄存器的当前二进制值
    16 预置多寄存器 设定二进制值到一系列多寄存器中(不对 ACRXXXE开放)
    1.4.4 数据(Data)域
    数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容可能是数值、参考地址或者设置值。例如:功能域码告诉终端读取一个寄存器,数据域则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型和从机之间的不同内容而有所不同。
    1.4.5 错误校验(Check)域
    该域允许主机和终端检查传输过程中的错误。有时,由于电噪声和其它干扰,一组数据在从一个设备传输到另一个设备时在线路上可能会发生一些改变,出错校验能够保证主机或者终端不去响应那些传输过程中发生了改变的数据,这就提高了系统的安全性和效率,错误校验使用了16位循环冗余的方法(CRC16)。
   
    1.5 错误检测的方法
    错误校验(CRC)域占用两个字节,包含了一个16位的二进制值。CRC值由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较,如果这两个值不相等,就发生了错误。
    CRC运算时,首先将一个16位的寄存器预置为全1,然后连续把数据帧中的每个字节中的8位与该寄存器的当前值进行运算,仅仅每个字节的8个数据位参与生成CRC,起始位和终止位以及可能使用的奇偶位都不影响CRC。在生成CRC时,每个字节的8位与寄存器中的内容进行异或,然后将结果向低位移位,高位则用“0”补充,最低位(LSB)移出并检测,如果是1,该寄存器就与一个预设的固定值(0A001H)进行一次异或运算,如果最低位为0,不作任何处理。
    上述处理重复进行,直到执行完了8次移位操作,当最后一位(第8位)移完以后,下一个8位字节与寄存器的当前值进行异或运算,同样进行上述的另一个8次移位异或操作,当数据帧中的所有字节都作了处理,生成的最终值就是CRC值。
    生成一个CRC的流程为:
    1 预置一个16位寄存器为0FFFFH(全1),称之为CRC寄存器。
    2 把数据帧中的第一个字节的8位与CRC寄存器中的低字节进行异或运算,结果存回CRC寄存器。
    3 将CRC寄存器向右移一位,最高位填以0,最低位移出并检测。
    4 如果最低位为0:重复第三步(下一次移位);如果最低位为1:将CRC寄存器与一个预设的固定值(0A001H)进行异或运算。
    5 重复第三步和第四步直到8次移位。这样处理完了一个完整的八位。
    6 重复第2步到第5步来处理下一个八位,直到所有的字节处理结束。
    7 最终CRC寄存器的值就是CRC的值。
    此外还有一种利用预设的表格计算CRC的方法,它的主要特点是计算速度快,但是表格需要较大的存储空间,该方法此处不再赘述,请参阅相关资料。(
   

以下是关于《MODBUS-RTU通讯协议简介 》论题的回复(共18篇,分2页显示)

 共2页  第1页   末页   下一页   

回复人:彩锐 

 回复时间:2008/12/26 16:48:00

支持(517) | 反对(571)

 

    湖北彩锐科技公司是专业从事军工液晶显示器、工业液晶显示器及工业自动化控制等产品的研发、制造和销售为一体的高科技企业。
    公司主要产品产系列有:工业/军用液晶显示器,工业/军用液晶监视器,工业/军用PPC平板电脑,工业/军工多画面分割液晶显示器,工业/军工串口切换液晶显示器,壁挂式显示器,家用壁挂式TV,串口/USB触摸屏,工业/军工多通道KVM系列,翻盖液晶显示器,抽屉式键盘,USB/PS2按键板,(以上所有系列外形,尺寸均可定制)
    公司所有产品严格执行行业规范(军用执行GJB 322A-1998,工业执行NEMA4/IP65标准)军工产品适用于地面军事监控
   
    公司网站:www.hbcrkj.com
    联系人:胡先生
    联系电话:027-87210960-8006
    QQ:495737049

回复人:tian0208 

 回复时间:2009/7/29 15:37:00

支持(581) | 反对(647)

 

    讲得好,顶

回复人:jsntec 

 回复时间:2009/11/9 22:45:00

支持(607) | 反对(637)

 

    讲得好

回复人:jsntec 

 回复时间:2009/11/9 22:45:00

支持(488) | 反对(566)

 

    ,,,,,,,,,,,,,,,,,,讲得好,顶

回复人:lzy808 

 回复时间:2009/11/15 15:07:00

支持(518) | 反对(1435)

 

    ok

回复人:fz210ck 

 回复时间:2010/3/21 21:49:00

支持(604) | 反对(976)

 

    受教!

回复人:barryjun 

 回复时间:2010/3/23 15:51:00

支持(484) | 反对(836)

 

    好样的

回复人:海陆空183 

 回复时间:2010/4/3 15:43:00

支持(507) | 反对(770)

 

    好东西啊,明白了

回复人:洪水 

 回复时间:2010/5/9 8:40:00

支持(654) | 反对(559)

 

    好
   

回复人:ghf225 

 回复时间:2010/6/24 21:20:00

支持(535) | 反对(679)

 

    真郁闷 没积分啦 你这个东西真的好

回复人:xu_yicheng 

 回复时间:2010/7/17 20:28:00

支持(526) | 反对(569)

 

    为客户量身定制专业系统方案,设计-选型-开发-实施-维护一条龙服务;提供各种通讯接口的可程控仪器仪表的远程监控,精确控制远程IO,个性化人机界面,电子地图,数据库管理,电子报表,实时报警,历史查询; 各种通讯接口(TCP,COM,USB,GPIB...)软件编写; 专业OPC,SPC等软件开发; 实用办公系统软件开发; 实验室软件开发; 数据库软件开发; 方案制作; 数据采集;系统集成; 客户定制专用软件开发; 欢迎洽谈合作,客户至上,价格公道,满意为止!
   
    深圳精控系统科技有限公司
    http://acselec.uni86.net/
    徐工 :13088853275
    QQ: 422690987
   

回复人:1qaz2wsx 

 回复时间:2010/10/12 14:11:00

支持(577) | 反对(1078)

 

    好东西啊,明白了

回复人:zzdyybyq 

 回复时间:2011/7/5 20:55:00

支持(665) | 反对(534)

 

    好!!!!

回复人:lupei 

 回复时间:2011/8/19 14:32:00

支持(744) | 反对(536)

 

    本人现有北京纵横科技的hmibuilder组态软件150点,中间变量不算点,现欲清仓出售,1000块一套,正版,有软件狗,包装盒里有详细的说明书和功能手册,有兴趣的qq联系。
    qq:1455457295
   

回复人:longhushi 

 回复时间:2012/8/14 14:21:00

支持(505) | 反对(592)

 

    好的介绍

 共2页  第1页   末页   页次: 1  2      下一页  

如果要回复本栏论题,请首先中国工控网www.chinakong.com

·如果你已经是中国工控网www.chinakong.com成员,请直接登录。

·如果你还不是中国工控网www.chinakong.com成员,请首先注册,注册为免费!

注册名:

密  码:

           注册中国工控网www.chinakong.com
           忘记密码

关闭该窗口

关于我们     免责声明     服务项目     广告联系     友情链接     联系方式     意见反馈     设为首页     加入收藏

 ©2023-2025 中国工控网(www.chinakong.com) 版权所有 豫ICP备17046657号

管理员信箱:chinakong98@163.com  服务热线:13525974529

洛阳博德工控自动化技术有限公司

中国    洛阳