教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 行业范文 >

Modbus RTU串行通讯协议在工业现场的应用

来源:网络收集 时间:2026-09-04
导读: ModbusRTU串行通讯协议在工业现场的应用 李喜东,刘波涛,刘 刚 (黑龙江省科学院自动化研究所,黑龙江 哈尔滨 150090) 摘要:本文介绍ModbusRTU通讯协议在自动化智能仪表之间,和控制器之间的通讯的应用,重点说明了数据的传输过程和CRC冗余循环码校验。 关键词:Mo

ModbusRTU串行通讯协议在工业现场的应用

李喜东,刘波涛,刘 刚

(黑龙江省科学院自动化研究所,黑龙江 哈尔滨 150090)

摘要:本文介绍ModbusRTU通讯协议在自动化智能仪表之间,和控制器之间的通讯的应用,重点说明了数据的传输过程和CRC冗余循环码校验。

关键词:Modbus;RTU模式;串行通讯

中图分类号:TP393.03 文献标识码:B 文章编号:1003-7241(2005)07-0037-04

ApplicationoftheModbusRTUSeries

CommunicationProtocolinIndustry

LIXi-dong,LiuBo-tao,Liu-gang

(AutomationInstituteofHeilongjiangAcademy,Harbin150090,China)

Abstract:ThisnoteintroducestheapplicationofModbusRTUcommunicationprotocolusedinintelligentinstrumentswithemphasisonthedatatrans-missionandcyclicredundancychecks.

Keywords:Modbus;RTUmode;Serialcommunication

1 引言

Modbus是一种串行的、非同步的通讯协议,此协议不要特别的接口,典型的物理接口是RS485。Modbus协议最早是为ModiconPLC和其它自动控制设备的集成而设计的,具有PLC的结构特点。

Modbus协议的通讯格式主要分ASCII、RTU、TCP等,其中RTU格式由于传输效率高被大多数厂商采用[2]。此协议支持传统的RS-232、RS-422、RS-485和Ethernet设备。当在网络上通信时,控制器设备数据通信使用主 从技术,在同一通信网络上每个设备都有唯一的设备地址,并且只能有一个主设备,可以有多个从设备。要完成通讯任务各设备须要知道它们自己的设备地址,主设备发出数据请求消息从设备根据主设备发出数据请求消息作出相应反应。主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应[2]。

2 系统概述

本系统是由放在不同气体分析室内的5台在线气体分析控制柜、1台放在中央控制室内的自控柜和1台计算机组成。计算机负责从5台在线气体分析控制柜和1台中央控制柜上读取信息管理各种数据,提供报表打印等功能。其中5台在线气体分析控制柜分别对氢气、氧气、氮气、氩气和氦气进行在线检测,检测各种气体里的杂质含量如氢气中含氮量、氢气中含水量和氮气中含氧量等等,还有各种分析仪表的状态信息等,1台分析气柜里大约提供70多个信号,如果都用导线传送信息除了会增加成本外也会产生大量不必要的工作量,同时数据远距离传输也会带进大量干扰信号,使系统的可靠性大大降低。因此在供应商提供设备时我们要求他们给我们提供了ModbusRTU标准接口,这为我们的接入提供了一个硬件平台。

2.1 系统网络拓补如图1:

在这里每个在线气体分析控制柜内各种在线分析仪表采集到的信号或者通过计算机采集分析的结果通过内部的通讯分别

收稿日期:2005-01-13送到一个KOYO的处理器,他给我们提供了一个RS-485的硬

ution& 37

功能码01020304

名称读取线圈状态读取输入状态读取保持寄存器读取输入寄存器

作用

取得一组逻辑线圈的当前状态(ON OFF)取得一组开关输入的当前状态(ON OFF)在一个或多个保持寄存器中取得当前的二进制值在一个或多个输入寄存器中取得当前的二进制值

件接口,同时信息在这里被转换成了标准的ModbusRTU通讯格式;在服务器上我们在PCI插槽上插入了一块IndustioCP-114型多串口卡,通过它和下面的控制器之间建立起RS-485通讯。在这里里我们把服务器作为主站,气体分析柜和中控柜作为从站,服务器发出数据请求信息,从站根据主站的请求来应答[3]

  现以读取线圈状态加以说明:首先主站发送命令:[设备地址][命令号01][起始寄存器地址高8位][低8位][读取的寄存器数高8位][低8位][CRC校验的低8位][CRC校验的高8位]

从站响应:[设备地址][命令号01][返回的字节个数][数据1][数据2]...[数据n][CRC校验的低8位][CRC校验的高

图1 系统网络拓补图

8位]

2.2 ModbusRTU通讯数据传送模式:

当控制器设备设为在Modbus网络上以RTU模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。

地址位1位

数据位8位

奇偶校验位1位或无校验

停止位1位

错误校检CRC

3.3 数据区

数据区是根据不同的功能码而不同。数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。

  编码采用8位二进制,十六进制数0...9,A...F;消息中的每个8位域都是一个两个十六进制字符组成

3.4 错误校验码

主机或从机可用校验码进行判别接收信息是否出错。错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测

3 ModbusRTU信息帧结构

地址码8位

功能代码8位

数据区N×8位

错误校验码

16位

域的内容是通过对消息内容进行循环冗长检测方法得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节。故CRC的高位字节是发送消息的最后一个字节。错误校验采用CRC-16校验方法。

3.1 地址码

地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,只有符合地址码的从机才能响应回送,响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。地址0是用作广播地址,以使所有的从设备都能认识。

4 通讯软件的编制

下面现场用VC编写的ModBusRTU通讯的部分程序

4.1 通讯口设置

DCBdcb;

hCom=CreateFile(”COM1”,

GENERICWRITE, GENERICREAD  0, NULL,

 OPENEXISTING, 0, NULL);

if(hCom==INVALIDHANDLEVALUE){

 MessageBox(”createfileerror,error”);}

BOOLerror=SetupComm(hCom,1024,1024);

3.2 功能代码

功能代码为通讯传送的第二个字节。ModBus通讯规约定义可能的代码范围是十进制的1...255。当然,有些代码是适用于所有控制器,有此是应用于某种控制器,还有些保留以备后用。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1,则表明从机没有响应操作或发送出错,主设备应用程序得到异议的回应后,典型的处理过程是重发消息。下表是常用Modbus支持的部分功能码:

38

if(!error)

 MessageBox(”setupcommerror”);error=GetCommState(hCom,&dcb);if(!error)

 MessageBox(”getcommstate,error”);dcb.BaudRate=4800;dcb.ByteSize=8;

dcb.Parity=EVENPARITY; NOPARITY;dcb.StopBits=ONESTOPBIT;error=SetCommState(hCom,&dcb);

calccrc(writebuf2[0]);calccrc(writebuf2[1]);calccrc(writebuf2[2]);calccrc(writebuf2[3]);calccrc(writebuf2[4]);calccrc(writebuf2[5]);

writebuf2[6]=crc&0xff; 加入校验writebuf2[7]=crc 0x100;

WriteFile(hCom,writebuf2, …… 此处隐藏:4998字,全部文档内容请下载后查看。喜欢就下载吧 ……

Modbus RTU串行通讯协议在工业现场的应用.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/2142245.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)