- 1
- 0
- 约2.97千字
- 约 4页
- 2023-09-10 发布于广东
- 举报
modbus协议的分析与研究
0 基于转变的必要性通信
《洛马条约》是工业控制领域最普遍、最公开的通信协议之一,得到了许多制造商的支持。通过Modbus协议,不同厂商的设备可以方便地连成工业网络,进行相互通信。目前,Modbus协议已经成为我国工业自动化网络协议规范的国家标准之一,国内许多厂商的产品或系统均支持该协议。
Modbus协议采用主从应答式通信,详细规定了主、从设备的通信行为,定义了设备能够识别和使用的报文结构。该协议规定网络中只能有一个通信主设备(主站),其他设备均为通信从设备(从站)。通信必须由主站发起,各从站通过地址来识别属于自己的查询信息并进行响应。
Modbus协议有2种传输模式,即ASCII和RTU模式。两者相比,RTU模式要求数据连续传输,且字节传输效率高,更适用于测控系统中数据的实时传输。本文即以RTU从站模式为例,介绍Modbus协议的软件设计方法。
1 基本功能码的作用
RTU模式下,主站查询报文和从站响应报文遵循的报文结构如图1所示。需要说明的是,RTU模式通过通信空闲时间来区分报文,这一时间长度为传输3.5B所需要的时间。而在报文传输期间,内部空闲间隔则不允许超过1.5B的静止时间,否则将导致报文错误。
在Modbus协议中,从站通过地址码来识别属于自己的查询报文,并通过功能码来确定应执行的动作。Modbus协议定义了20多个功能码,例如,功能码03定义为主站读取从站中的数据,当从站收到这一报文后,就要把主站所要求的寄存器内容发送给主站,如表1、表2所示。再比如功能码16,其定义为主站向从站写数据,当从站收到这一报文后,就要用主站发来的数据替换掉对应寄存器中原有的数据。具体是哪些寄存器进行响应、寄存器的数量、更新的数据等附加信息都在查询报文的数据域中予以说明。报文检错采用循环冗余校验码CRC-16。
2 硬件配置
2.1 记录读取设备设置
首先应设定通信口的数据传输格式。MSP430单片机中相关的寄存器包括UxCTL控制寄存器、UxTCTL发送控制寄存器、UxRCTL接收控制寄存器、UxBR0、UxBR1波特率选择寄存器、UxMCTL波特率调整控制寄存器、ME1通信使能寄存器。按照下述要求分别设置:异步通信模式;线路空闲多机协议;8个数据位、无奇偶校验、2个停止位;通信波特率为9 600bit/s;开通信口发送、接收功能;开接收中断、禁止发送中断。其他如时钟信号的选择等可根据具体硬件系统自行设定。
2.2 时钟的控制和运行
定时器用于空闲间隔定时,以便区分报文。根据使用的字符结构和波特率,可以很容易计算出传输3.5 B的时间长度。如果定时器的时钟源为1.843 2MHz,波特率为9 600bit/s,数据格式为8N2,那么空闲间隔Tidle=1843200 Hz÷9600bit/s×11×3.5B-1=7391s。
通过MSP430单片机内部集成的定时器Timer A可方便地实现定时任务。将定时器设定为连续计数模式,通过定时计数器TAR和比较器TACCR0来实现定时。
3 通信流程
RTU从站的通信流程按先后顺序分为4个过程:接收、收转发、发送、发转收。
3.1 国家报文接收
RTU从站不能主动发起通信,从站的通信流程必须从接收报文开始。在接收过程中,从站接收所有报文,直到收到查询自己的报文为止,然后转向下一个通信过程(收转发过程)。
接收包括字节接收和报文接收。两者都是以中断方式进行。
字节接收的处理过程如图2所示。每收到一个字节就重新启动空闲间隔定时,以确定该字节是否是报文的最后一个字节。定时方法:允许CCR0中断,把TAR的当前值加上Tidle赋给TACCR0。
报文接收过程如图3所示。当确定接收完一个报文后(接收完最后一个字节并经过了3.5B的延时)才启动该过程。该过程负责判断从站是否应该接收该报文。判断项目包括地址码、功能码、校验字节等。判断的目的是确定是否是查询自己的报文(并且报文正确)。如果是,则在该过程最后置标志位,提示CPU转向下一个通信过程;否则仍然保持接收状态,继续接收随后的报文。
3.2 主站对比文的解析和提取
在收转发过程中,从站需要完成的任务是按照协议对报文进行解包、打包。为了减少中断对CPU的占用,将收转发的切换过程编制为一个子程序,由“收转发”标志来决定是否调用。其处理过程如图4所示。
首先对接收到的主站查询报文进行解析,也就是从站需要确定自己应该执行哪些动作。主站查询报文的存放位置是由用户程序指定的,参照表1就可以知道每个字节的含义。这样用户程序便可以提取出功能码、主站要查询的寄存器序号和数量等动作信息,由此从站就能知道该把哪些寄存器的数据发送给主站,这就是解包的过程。
之后,从站按照动作要求提取主站需要的寄存器数据,按照表2的格式组织响应报文,也就是报文打
您可能关注的文档
- 1960-2011年陕西省汛期降水变化特征分析.docx
- 2005年6月东北暴雨中尺度对流系统特征分析.docx
- 800mw钢800mw级长丝级柱冷芯盒铸造工艺.docx
- e型轴箱体的设计.docx
- mram数字设备的潜在替代.docx
- plc的应用与发展.docx
- zl104铝合金涡轮叶片砂芯的制作.docx
- zz6型射芯机电气控制系统的plc控制.docx
- 一例奶牛瘤胃切开探查术的报告.docx
- 一种基于遗传算法的太阳辐射预测模型.docx
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
原创力文档

文档评论(0)