基于Modbus协议的通讯集成技术研究 - 图文-_第1页
基于Modbus协议的通讯集成技术研究 - 图文-_第2页
基于Modbus协议的通讯集成技术研究 - 图文-_第3页
基于Modbus协议的通讯集成技术研究 - 图文-_第4页
基于Modbus协议的通讯集成技术研究 - 图文-_第5页
已阅读5页,还剩13页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、研究与应用 化工自动化及仪表,2010,37(4:6772Contro l and Instru m ents i n Che m ical Industry 基于M odbus协议的通讯集成技术研究史运涛a,b,孙德辉a,b,李志军a,b,刘大千a,b,凡 杰a,李晓硕a(北方工业大学a.北京市现场总线与自动化重点实验室;b.自动化系,北京100041摘要: 不同厂家生产的仪表与控制系统(异构系统之间的通讯互联是一个难点问题,各种通讯集成技术是解决工业仪表控制系统之间互联问题的关键技术,选择异构系统共同支持的主流工业通讯协议标准进行集成是异构系统之间通讯集成的一个核心技术手段。本文重点研究利

2、用M odbus协议实现工业仪表与控制系统之间通讯集成的主要步骤与方法,结合工程实例,给出利用M odbus协议实现异构系统通讯集成的完整解决方案。实际应用效果表明基于M odbus协议的异构系统通讯集成方案能够很好地解决工程中大量的第三方通讯问题。关键词: M odbus;通讯集成;串行通讯;集散控制系统中图分类号:T P391 文献标识码:A 文章编号:1000 3932(201004 0067 061 引 言在现代控制工程中,仪表与控制系统之间的通讯标准差别很大,在工厂中,不同的工艺设备的仪表与控制系统采用不同厂家的PLC与DCS,要实现全厂的综合监视与控制具有很大的困难。各种异构系统的

3、通讯集成技术是解决问题的关键技术。目前,解决通讯集成的方法也有多种,硬件方面主要是采用能够实现不同协议转换的网关技术,如西门子、ABB、德国的赫优讯、瑞典的HM S,以及国内的研华等公司都开发出各种总线协议的网关设备1;在软件方面也提出了软总线OPC技术等解决方案。所有的这些通讯集成技术都要追加硬软件投资,成本较高,选择不同异构系统共同支持的主流工业标准通讯协议进行集成是异构系统之间通讯集成的一个核心技术手段之一1,2,M odbus协议开放彻底,被广泛支持,只要掌握关键的通讯集成编程技术,利用自由口编程方法实现M odbus应用层通讯协议,可以极低成本实现通讯集成3,4。本文主要研究利用主流

4、工业通讯协议M odb us实现通讯集成的主要步骤与方法,并结合实际的工程应用问题给出了完整的编程解决方案。2 M odbus通讯协议关键技术M odbus协议是M odic on公司于1978年发明的一种用于电子控制器进行控制和通讯的通讯协议。通过M odbus协议,控制器之间、控制器经由网络(例如以太网和其它设备之间可以完成信息和数据的交换与传送,使各种不同公司和厂家的可编程顺序控制器(PLC、RTU、SCADA系统、DCS或与兼容M odbus协议的第三方设备之间可以连成工业网络,构建各种复杂的监控系统,并利于系统的维护和扩展,这个通讯协议已广泛被国内外工控行业作为系统集成的一种通用工业

5、标准协议5。M odbus协议在串行链路上的实现模型和IS O/ O SI参考模型对比如图1所示,M odbus协议的物理层可以采用RS232、RS485接口、RS422,以及以太网的物理层,数据链路层主要采用了M odbus串行主从协议,由于M odbus现场总线的实时性特点,所以M odbus通讯协议模型中的网络层、传输层、会话层、表示层均没有定义(现场总线协议的共性特点,在应用层中规定了M odbus应用层的协议模型包括消息帧格式,功能码、校验、通讯时序控制等内容6 。图1 M odbu s协议与OS I/ISO通讯模型图M odbus协议下的数据通信采用M aster/Slave(主/

6、从方式,即M aster端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到M aster端收稿日期:2009 12 29(修改稿基金项目:国家自然科学基金资助项目(60874052;北京市中青年骨干人才项目(P HR201008190以响应请求;M aster端也可以直接发消息修改Slave 端的数据,实现双向读写。M odbus协议建立了主设备查询的格式:设备(或广播地址、功能代码、所有要发送的数据、错误检测域。从设备回应消息也由M odbus协议构成,包括确认要行动的域、任何要返回的数据和错误检测域。如果在消息接收过程中发生错误或从设备不能执行其命令,从设备将建立错误消息并把

7、它作为回应发送出去。M odbus查询-回应周期表如图2所示。M odbus的两种通讯协议A SCII方式和RTU方式。M odbus的数据传输可分为两种模式:ASCII(美国信息交换码模式和RTU(远程终端设备模式。A SCII模式下和RTU模式下的消息帧如表1 所示。图2 M odbus查询-回应周期原理示意图表1 ASCII模式下和RTU模式下的消息帧起始位设备地址功能码数据LRC校验结束符1个字符2个字符2个字符n个字符2个字符2个字符>3.5个字符时间8位8位n个8位16位>3.5个字符时间注:第二列数据为ASCII模式,第三列为RTU模式在A SCII模式下,消息中的每

8、个8Bit字节都作为两个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1s而不产生错误。A SCII 方式的每个字节的格式为:十六进制,ASCII字符0 9、AF;消息中的每个A SCII字符都由十六进制字符组成。在ASCII模式下,消息以冒号(:字符(A SCII码3AH作为起始位,以回车换行符(A SCII 码0D H,0AH作为结束符。传输过程中,网络上的设备不断侦测:!字符,当有一个冒号接收到时,每个设备就解码下个位的地址域,来判断是否发给自己的。与地址域一致的设备继续接收其它域,直至接收到回车换行符。典型的RTU报文帧没有起始位,也没有停止位,而是以至少3.5个字符

9、时间的停顿间隔标志一帧的开始或结束,报文帧由地址域、功能域、数据域、CRC校验域构成。所有字符位由16进制09、A F组成。RTU模式下,一个报文中的每个八位的字节包含两个四位的十六进制字符。这种模式的优点是:在同样的波特率下,它的高字符密度允许比A SCII 方式传送更多的数据。在M odbus标准协议中,定义了很多功能码,每个功能码都有不同的功能。在本文中只用到了03和06两个功能码,即读取从站内部寄存器命令和写单个从站内部寄存器命令。03和06功能码的功能含义如表2所示。以上简要介绍了M odbus应用层协议的主要内容,主要包括传输模式、帧格式、地址码、错误码、错误检验等内容,详细的M

10、odbus应用层协议可见参考文献6,7。表2 03和06功能码的功能含义功能码名称功能数据类型作用03读取保持寄存器读整型、字符型、状态字、浮点型在一个或多个保持寄存器中取得当前二进制值06预置单寄存器写整型、字符型、状态字、浮点型把具体二进制值装入一个保持寄存器3 基于M odbus协议通讯集成的编程步骤如前所述,M odbus协议在物理层、数据链路层、以及应用层上规定了设备之间通过M odbus协议进行通讯的所有技术要素,要实现基于M odbus协议的不同仪表控制系统之间的串行端口的通讯,就必须按照M odbus协议的规定来组织并控制整个通讯的进程,主要工作应该包括以下几个步骤:step1

11、:M odbus主站(M aster与M odbus从站(Slave的初始化编程;主站的初始化主要指主站通讯端口初始化:通讯的波特率、初始位、停止位、校验的初始化,同时通讯的时序参数也需要初始化(比如空闲检测时间;同样,M odbus从站也需要与主站类似的初始化工作,其中从站地址指定是一个重要的初始化工作。step2:M odbus应用层协议内容实现:主站命令发送内容的数据组织,以及从站响应数据解析。一方面,M aster按照M odbus应用层协议(参考表1ASC II模式下的消息帧要求组织发送命令(读写从设备命令数据格式;另一方面,按照M odbus 应用层协议(参考表1A SC II模式

12、下的消息帧分析Slave设备的响应数据。Step3:通讯的动作与时序控制。由于M odb us应用层协议是M aster/Slave的主从请求/响应的通讯交互模式,M aster与Slave都有各自的状态演进约定(如图3所示,而且主从的请求/响应通讯模式有严格的时序约定(如图4所示,所68化工自动化及仪表 第37卷以,为了实现M odbus 的动态通讯,M aster 的通讯主程序就必须综合利用中断、查询等手段按照协议规定的请求/响应状态演化和时序实现通讯过 程控制。图3 M odbus 主站/ 从站状态演进示意图图4 M odbus 主站/从站通讯时序约定示意图一般说来,任何基于M odbu

13、s 协议的仪表与控制系统的通讯集成的编程工作都需要完成以上M odb us 主站、从站的初始化,M odbus 通讯协议的数据组织,M odbus 通讯的动作与时序控制三方面的内容。4 基于M odbus_AS CII 协议的S7 200PLC 与台达PLC 的通信设计4.1 通讯集成工程案例本节主要以某工业现场环境监控系统的通讯问题为例,介绍利用M odbus_ASCII 通讯协议实现通讯集成总体解决方案。如图5所示,某工业现场的环境供水系统由两个水泵组和两套控制系统,每个水泵组都有一套控制系统,每套控制系统分别由一台台达PLC(DVP _EH 型PLC和一台变频器、一台触摸屏组成。原来环境

14、子系统的两组生活水泵控制系统是孤立的,彼此不需要通讯。由于整个厂区实现信息系统与自动化的全面升级,要求实现工业现场的综合监控系统,需要把环境子系统(主要是两个孤立的生活泵组控制系统集成到综合的设备监控69 第4期 史运涛等.基于M odbus 协议的通讯集成技术研究系统之中,由于全场的综合监控系统采用了西门子T I A (全集成自动化方案,控制器都选用西门子PLC ,这样要把环境泵组控制系统(主要是台达PLC与综合监控系统的西门子控制系统实现通讯集成,就必须解决台达PLC (DVP_EH 型PLC 与西门子PLC (S7 200采集站通讯问题。选择不同异构系统共同支持的主流工业标准通讯协议进行

15、集成是异构系统之间通讯集成的一个核心技术手段之一,在此项目中我们利用M odbus 协议开放彻底、被广泛支持的特点,利用所掌握关键的M odbus 通讯集成编程技术,利用自由口编程方法实现应用层通讯协议, 可以极低成本实现通讯集成。图5 基于M odbus 协议的S7 200PLC 与台达PLC 的通信方案图4.2 基于M odbus_AS CII 的通讯集成解决方案 解决以上通讯集成问题的主要技术手段是采取基于M odbus_A SCII 通讯协议的通讯集成技术。通讯集成方案如图5所示,综合监控系统设置一台S7 200PLC 作为M odbus 主站实现两台环境水泵的状态数据采集和控制,两台

16、台达PLC 作为M odbus 从站挂接在M odbus 总线上。S7 200PLC 控制器上Port0端口(RS485串行通讯口与两台台达PLC 的扩展COM 3通讯端口连接(台达PLC 本身拥有两个通信口,COM 1连接触摸屏,COM 2连接变频器,为了与S7 200主站通讯扩展了CO M 3通讯端口,由于扩展的台达PLC 的COM 3通讯口只支持M odbus ASCII 格式通信,所以需要在S7 200端编写M odbus ASCII 格式的通信程序。S7 200M odbus 主站通过读取台达PLC 的寄存器从而读取变频器的相关数据,同时S7 200M odbus 主站通过写数据到台

17、达PLC 的寄存器从而达到控制变频器的启停和改变变频器工作频率的目的。 关键的M odbus 通讯集成编程任务包括:S7 200M odbus 主站编程工作、台达PLC M odbus 从站的编程工作。因为在M odbus M aster /Slave 的通讯模式 下,主站是整个通讯的发起者,通讯时序(进程管理者,所以主站程序是决定性的,它要完成主站通讯端口初始化,主站命令发送内容的数据组织,以及从站响应数据解析,而且还要完成通讯的动作与时序控制。而台达M odbus 从站的编程工作相对简单,只需完成M odbus 从站通讯端口初始化(包括从站地址初始化工作。以下重点介绍S7 200M odb

18、us 主站编程技术。4.3 S7 200主站程序编写M odbus 通讯中的M odbus 主站是通信的发起和过程管理者,M odbus 通讯中的主站程序的编写是整个通信编程的核心部分。在S7 200的主程序(OB1中主要完成: M aster 中通讯端口的初始化;#综合运用轮询与中断的方法实现通讯的时序与过程控制;在整个通讯过程(发送和接受中实现应用层协议,实现对从站 发送帧!的组织,并且实现对于从站 响应数据帧!的解析。 主站的程序原理示意图如图6所示。图6 S7 200M odbu s 主站程序构成原理示意图主站程序包括:初始化子程序M BU S _A SCII_CTRL ,通信子程序M

19、 BUS_A SCII_M SG ,发送完成中断子程序和接收完成子程序。M odbus_A SC II_CTRL 子程序主要完成了M odbus 主站通讯端口的初始化,包括通讯的波特率的初始化、初始位、停止位、校验等初始化内容,同时通讯的时序参数也需要初始化(比如空闲检测时间;通讯的时序与进程控制主要运用了定时发送和发送完中断两个手段进行控制;其中M odbus_ASCII_M SG 子程序主要功能是 应用层协议的实现!,包括主站发送命令(读写的M odb us 帧格式的组织,以及接受M odbus 从站返回的响应M odbus 数据帧的解析。4.3.1 Step1M aster 中通讯端口的

20、初始化%通信初始化子程序M BUS_ASC II_CTRLS7 200做M odbus 主站,采用自由口方式进行通信时,需要设置特定寄存器对通信端口进行70化工自动化及仪表 第37卷初始化,对于PORT 0是S M B30,对于PORT 1是SM B130。S M B30各位的含义如表3所示,在通信初始化子程序M BU S_ASC II_CTR L 中,主要是根据用户输入的波特率、奇偶校验、数据位长度来计算S M B30的值并给S M B30赋值,然后定义一些通信的常用设置。这里需要注意的是,通信初始化子程序的三个参数设置需要与从站设置保持一致。另外在S7 200的初始化编程中还需要对特殊寄存

21、器进行初始化设置:SM B87定义Port0口是否可以接受,SM B89定义P ort0口结束字符,S M B94定义Port0口最大接收字符数,SMW 90定义空闲线检测时间9,10。表3 S MB30各位的含义以及初始化子程序MBUS_ASCII_CTRL 用到的寄存器功能p p d b bbmm校验选择数据位自由口波特率(单位:波特协议选择00=不校验01=偶校验10=不校验11=奇校验0=8位1=7位000=38400;001=19200;010=9600011=4800;100=2400;101=1200110=115.2k ;111=57.6k00=PP I/从站模式;01=自由口

22、模式10=PPI /主站模式;11=保留(未用4.3.2 Step2通讯读写命令实现%通信子程序M BUS_A SCII_M SG通讯子程序M odbus_A SCLL _M SG 主要完成M odbus 应用层协议内容的实现:M odbus 主站发送内容的数据组织,M odbus 主站接受从站通讯数据解析:(1M aster 按照M odbus 应用层协议要求组织发送命令(读写从设备Slave数据格式。通信子程序中主要是进行发送数据的组织,进行LRC 校验,发送数据,数据发送使用的是X M T 指令,数据的接收使用的是RCV 指令。在此子程序中,用户需要输入从站号、功能码、操作地址(从站、数

23、据量、数据地址(主站完成标志位。按照M odbusA SCII 协议,03功能码为读取寄存器命令、06功能码为写单个寄存器命令。下面重点以读取从站寄存器命令03功能码为例,介绍按照M odbus 帧格式组织命令的消息帧的编程技术。03功能码的消息帧格式如表4所示。表4 03功能码消息帧格式起始符从站地址功能码起始地址数据量LRC 校验码结束符1个字节2个字节2个字节4个字节4个字节2个字节2个字节字节数=起始符+从站地址+功能码+起始地址+数据量+LRC 校验码+结束字符(16#0D,16#0A =17举例来说,我们要读取1号台达从站的M odbus 地址401557(对应台达内部通讯地址为0

24、614,对应台达的寄存器为T20-T27开始的八笔数据,定义S7 200的数据发送区为VB5000开始。数据的组织如表5所示。 这里LRC 校验的算法是,去除发送字节数, 符和结束字符,剩余的数据以字节为单位,进制整数形式逐个进行累加,最后把求和的结果取2补数就是LRC 校验值。2的补数的计算方法为:数据的每一位取反,然后再加一就是2的补数。 上例中,LRC 值的求法为:1+3+6+20(16#+8=38=2#00100110,取反后为2#11011001,1,为2#11011010=16#DA(2按照M odbus 应用层协议分析Slave 响应数据。我们在执行读寄存器命令的时候,确响应后会

25、返回一系列的数据,序中我们使用RCV 指令将其接收,据并进行整理存放到用户设置的存储区内,需要对数据进行分析整理,得到我们想要的数据,于返回的是ASC II 格式的数据,我们需要对其进行格式转换,本程序中使用ATH 指令,即ASC II 格式转换成HEX (16进制。表5 03功能码的数据组织71 第4期 史运涛等.基于M odbus 协议的通讯集成技术研究 72 化 工 自 动 化 及 仪 表 第 37卷 4. 3. 3 S tep 3 S7 200 主站实现 M odbus通讯的时序 控制 S7 200 的 M odbu s通讯主站主要运用定时轮询、 中断等手段实现协议规定的通讯 时序的控

26、制: 初 始化计数器 C0, 定时器 T 33, 50 m s计 数一次, 计数 到八次, C0 计 数 器定 时 清零; # 在 规 定 的八 个 50 m s内分别轮询执行 四个读 从站 命令 和四 个写 从站 命令程序。 50 m s是 在现场 反复调试 取得的 确认发 送与接收完成的通讯的时间; 另外 在 S7 200 的 主程序 中利 用中断 技术 实现 接收从站数据控 制, 中断 的手 段主要 是利用 S7 200 自由口通讯中 Port_0发 送完 对应 的系 统中 断 9, 编 写中断服务子程 序, 控 制 M odbu s通讯 时序, 主 站读 写指令发送完毕, 主站既转入接

27、受状态, 接受从站返 回的数据。 (中断 9 的服务程序如下 : Network1 / /发送完以后马上禁止发送 LD A l aysT rue S 0. 0 w : M S SM 87 7, 1 . Network2 / / 发送完了马上转入接受 LD A l aysT rue S 0. 0 w : M AB= VB5005, 16# 33 LPS AW = C0, 0 RCV VB300, 0 LRD AW = C0, 2 RCV VB350, 0 LRD AW = C0, 4 AB= VB5005, 16# 36 LPP AW = C0, 6 RCV VB450, 0 通讯集成的核心技术

28、步骤与要素, 并以一个实际的控 制工程 中 通 讯 集成 问 题 为 案 例, 详 细设 计 了 基 于 M odbu s现场总线网络 协议的集 成方案, 并具 体给出 了利用 M odbus ASCII协议实现西 门子 S7 200PLC通 过自由口通信方式与台达 PLC进行通信的编程方法。 此程序已成功应用到工业现场的综 合设备监控系统 的通讯集 成模 块中, 目前 通讯 运行 稳定, 效 果良 好。 实际工业应用案例表明本文讨论的基于 M odbu s现场 总线协议 的通讯 集成方 案具 有低成 本、 高效 率的优 点。 参考文献: 1 N EUMANN P. Commun icatio

29、n in Industrial A utom ation W hat Is G oing O n? J . Control Eng ineering Pract ice 2007 ( 15 : , , 1332 - 1347 . 2 3 宋文娟, 赵 强, 蔡 凌, 等. 基于 MO DBU S网络的液位测量 系统设计 J . 仪器仪表学报, 2005. 26( 8 增刊: 309 - 311 . 刘东晓, 赵 - 703. 4 5 梁 伟. 采用 C51 编写智能 设备的 M odbu s协议通 讯软件 J . 化工自动化及仪表, 2004 31( 1 : 44- 47 , . 李 娜. 基

30、于 M odbus 协议的智 能仪表 的设计 D . 北京: 北京邮电大学, 2003. 6 M odbu s I DA. M ODBU S over S erial L in e Specif icat ion and I m p lem entation Gu ide V 1. 02 K /OL ( 2006 12 20 2009 12 29 . http / /m odbus org/ docs /M odbus _over_serial_ l ine_V 1 _ : . 02 pd.f . 7 M odbu s I M O DBU S A PPL I TION PROTOCOL SPE

31、C IFI DA. CA CAT I V 1 1b K /OL ( 2006 12 28 2009 12 29 . http / / ON . : m odbus org/ docs /M odbu s_A pp lication_Protocol_V 1_1b pd. . . f 8 9 左鸿飞, 颉新春, 王志春. 基于 FPGA 实现 M odbus通讯协议 J . 化工自动化及仪表, 2007 34( 4 : 42- 44. , 贺光琳, 张光新, 包金明, 等. 基于 M odbus协议的过程监控仪表 的设计与实现 J. 化工自动化及仪表, 2007 34( 4: 72- 75 ,

32、. 10 11 阳宪惠. 工业数据通信与控制网络 M . 北京: 清华大学出 版社, 2003. 张 洪, 须文波, 沈锡柱, 等. 吹 灰器优化 控制系统 的数据 通讯 J . 化工自动化及仪表, 2006, 33( 5 : 78- 80 . 强, 汪晋 宽, 等. 基 于 M V I模 块嵌 入式系 统的 M odbus协议开发 J . 仪器仪表 学报, 2006. 27 ( 6 增刊: 701 由于 RS 485 采用半双工传输方式, 所 以在主从 节点之间有应答的 时候, 要 注意 发送和 接受之 间的 切换。开始发送前 禁止接 受, 而 发送结 束后要 先关 闭发送, 再开启接收, 以保证数据的正确传输。 5 结 论 本文重点研究了基于 M odbu s协议的工业仪表与 控制系统的通讯集成方法, 给 出了实现 M odbus协议 Study on Industry Comm unication In tegration Techno logy Based on M odbus Protoco l SH IY un tao , SUN D e hu i, L I Zh i jun , L IU D a q ian , FA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论