ModBus协议在工业控制系统中的应用

发布者:BlissfulHeart最新更新时间:2012-06-19 来源: 中国传动网关键字:现场总线  ModBus协议  工业控制系统 手机看文章 扫描二维码
随时随地手机看文章

一、ModBus协议简介

  当今世界,工业控制已从单机控制走向集中监控、集散控制。在进入网络时代的今天,工业控制器连网也为网络管理提供了方便。ModBus协议就是工业控制器的网络协议中的一种。ModBus协议是Modicon公司于1978年发明的一种用于电子控制器进行控制和通讯的通讯协议。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以进行通信。它的开放性、可扩充性和标准化使它成为一个通用工业标准。有了它,不同厂商生产的控制设备可以简单可靠地连成工业网络,进行系统的集中监控,从而使它成为最流行的协议之一。

  ModBus协议包括ASCII, RTU, PLUS, TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的ModBus 是使用RS-232C 兼容串行接口, RS-232C规定了连接器针脚、接线、信号电平、波特率、奇偶校验等信息,ModBus的ASCII, RTU协议则在此基础上规定了消息、数据的结构、命令和应答的方式。ModBus控制器的数据通信采用Master/Slave方式(主/从),即Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

  ModBus可以应用在支持ModBus协议的PLC和PLC之间、PLC和个人计算机之间、计算机和计算机之间、远程PLC和计算机之间以及远程计算机之间(通过Modem连接),可见ModBus的应用是相当广泛的。由于ModBus是一个事实上的工业标准,许多厂家的PLC, HMI、组态软件都支持ModBus,而且ModBus是一个开放标准,其协议内容可以免费获得,一些小型厂商甚至个人都可根据协议标准开发出支持ModBus的产品或软件,从而使其产品联入到ModBus的数据网络中。因此,ModBus有着广泛的应用基础。在实际应用中,可以使用RS232, RS 485 /422 , Modem加电话线、甚至TCP/IP来联网。所以,ModBus的传输介质种类较多,可以根据传输距离来选择。

二、ModBus协议的通讯格式

  ModBus可分为两种传输模式:ASCII模式和RTU模式。使用何种模式由用户自行选择,包括串口通信参数(波特率、校验方式等)。在配置每个控制器的时候,同一个ModBus网络上的所有设备都必须选择相同的传输模式和串口参数。

  2.1 ASCII模式

  当控制器设为在ModBus网络上以ASCII模式通信,在消息中的每个8Bit字节都作为两个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。

  表1 ASCII模式的消息帧


  如表1所示,使用ASCII模式,消息以冒号(:)字符(ASCII码3AH)作为起始位,以回车换行符(ASCII码0DH, 0AH)作为结束符。传输过程中,网络上的设备不断侦测“:”字符,当有一个冒号接收到时,每个设备就解码下个位的地址域,来判断是否发给自己的。与地址域一致的设备继续接受其它域,直至接受到回车换行符。除起始位和结束符外,其他域可以使用的传输字符是十六进制的0…9,A…F,当然也要用ASCII码表示字符。当选用ASCII模式时,消息帧使用LRC(纵向冗长检测)进行错误检测。

  2.2RTU模式

  当控制器设为RTU模式时,消息帧中的每个8Bit字节包含两个4Bit的十六进制字符。

  表2 RTU模式的消息帧


  该模式下消息发送至少要以3.5个字符时间的停顿间隔开始。传输过程中,网络设备不断侦测网络总线,包括停顿间隔时间内。当第一个域(地址域)接收到,相应的设备就对接下来的传输字符进行解码,一旦有至少3. 5个字符时间的停顿就表示该消息的结束。

  在RTU模式中整个消息帧必须作为一连续的流转输,如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3. 5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。如果在传输过程中有以上两种情况发生的话,必然会导致CRC校验产生一个错误消息,反馈给发送方设备。

  当控制器设为RTU(远程终端单元)模式通信时,消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种模式与ASCII模式相比在同样的波特率下,可比ASCII模式传送更多的数据。[page]

三、系统设计

  本文所设计的系统是一个基于modbus的工业控制网络,它主要由实现现场控制功能的智能控制仪表、实现对智能控制仪表在线配置与监控功能的主机两部分组成。作为从机的现场智能控制仪表主要任务有:实现现场温度采集、输出控制、显示、系统配置以及响应主机激励;主机的主要任务是在线配置从机、监控从机从而得到相应从机的状态、历史温度数据分析;两者之间的通讯是基于现场总线技术的。

  3.1 系统的硬件设计

  系统主要由通讯电路(输入)、数据采集、输出控制、LCD显示、通信及电源模块等组成。如图1所示,系统具有对外界温度信号进行采集的能力,采集的模拟信号经A/D模块转换为相应的数字量,送入微处理器进行处理。采集到的每一路温度都要与系统此路的温度设定值进行比较,然后根据结果调用合适的控制算法,并通过控制相应的继电器的占空比实现对温度的调节。

  考虑到系统实际应用,在硬件设计方面,微控制器选用了台湾Syncmos公司生产的8位微控制器SM5964, 它是80C52 微控制器家族的派生产品,其强大的片内资源,只需添加少量的外围器件即可实现系统的要求。温度测量利用Pt(100Ω)热敏电阻,测量的模拟信号经A/D模块转换后送入微处理进行处理。模数转换器选用凌特公司(Linear Technology)推出的20位无延迟模数转换器LTC2430,此模块可直接对测量的毫伏级信号进行处理,并能够满足精度要求。其它也选用了与通信和输出控制相关的器件。

  由于篇幅关系,只介绍本系统通信部分的电路原理。由于标准的ModBus物理层采用了RS-232串行通信标准,在PC机上模拟MODBUS通信通过使用RS-485插卡或者RS-232/ RS-485转换模块,实现多点通信,这里选用的是RS-232/RS-485转换模块。电路图如图2所示:

  SM5964的串行发送端口TXD和接收端口RXD经MAX232芯片进行电平转换后,分别与PC机的数据接收端口RXD和数据发送端口TXD相连接。SM5964串行通信的发送端TXD连接到的11引脚,发出的数据信号经过MAX232芯片转换后,由0~5V的TTL电平变为-12~+12V的RS232电平,从14引脚输出到PC机串行口的第二引脚。按RS232通信协议规定,PC机串行口的第二引脚为数据输入端,这样,发出的数据就可被PC机接收到。由PC机串行口的发送端TXD(PC机串行口的第三引脚)传输来的数据,作为RS232电平的信号输入到MAX232芯片的第13引脚,经过MAX232芯片进行电平转换后变为TTL电平,再由MAX232的12引脚输出到SM5964串行口的接收端口RXD。从而完成数据的双向传输。

  在设计中,使用了两个发光二极管D7和D8监视通信的工作状态。[page]

  3.2 系统的软件设计

  本系统的软件设计是基于软件开发平台μC/OS-II,它是由Labrosse先生编写的一个开放式内核,最主要的特点就是源码公开,清晰明了。在单片机系统中嵌入μC/OS-II将增强系统的可靠性,并使得调试程序变得简单起来。但由于它没有功能强大的软件包,基于具体应用需要自己编写驱动程序,对内核进行扩充。为使其能够正常工作,要根据具体的硬件平台完成相应的移植工作。μC/OS-II是一个占先式的内核,即已经准备就绪的高优先级任务可以剥夺正在运行的低优先级任务的CPU使用权。这个特点使得它的实时性比非占先式的内核要好。根据要实现的功能,我将系统划分为如下6个任务:按键处理、LCD显示、串行通信、输出任务、控制运算、信号采集处理。这里只介绍和ModBus总线协议相关的部分。

  当选用的是ModBus的RTU模式时,一帧报文中字节与字节之间的时间间隔比帧与帧之间的时间间隔小得多,因此主要的难点在于如何判断一帧报文接收结束与否,这可以利用单片机内置的定时器来进行判断。若实际实现时,我们选择了19200的传输速率,那么空闲间隔时间T≥1/19200*8*3.5=1.5ms。每当接收到一个新的字节,就启动定时器开始计时,定时器的时间设定为帧与帧之间的最小时间间隔(上面提到的例子中是1.5ms)。波特率不同,该时间的间隔也不同。若不到预定时间又接收到下一个字节,则说明一帧报文尚未结束,定时器重新开始计数;若定时器顺利计数到预定时间,就会触发相应的中断,在该定时中断服务程序中设定帧结束标志字节,表明一帧报文接收完毕。这样就可以防止报文接收不完整,导致该帧通讯任务无法结束而影响下一帧的接收。

  如图3所示,在一个帧开始接收时判断接收的第一个字节是否为本机地址,如果是则保存到接收缓冲区中,不是则继续等待下一帧报文的到来,这样节省了保存数据的时间,接收中断服务程序只是保存数据而不处理数据,只是在一帧新的报文接收结束后,通知系统(通过发出信号量来实现);ModBus协议还规定了从方接收报文不正确时发问的出错帧。考虑到装置内部通信的过程不是很复杂,在实际应用中如果从方收到的报文校验不正确,采取不作应答的方式。主方若在规定时间内未收到从方的应答报文时,将重发请求报文;若多次末收到从方应答报文,则报通讯故障。上面的措施大大缩短了中断服务程序的执行时间,防止了系统资源的无谓浪费。

  在数据处理方面设计了一个环形的缓冲区,用来存放接收到的数据,这个缓冲区是一个两维数组。假设一个帧不超过12个字节,可以定义了一个5*12的二维数组。数组的第一个元素是标志位,前四位用来表示数据是否已经处理,后四位存放接收的数据的个数;每接收一个帧的数据,数组下移一个。当接收的数据要覆盖未处理数据时系统报警,这种情况一般不会发生,因为数据处理程序在本系统中被设成优先级最高。

  在ModBus协议中另外一个问题就是CRC校验和的计算问题,一般情况下它是由硬件电路直接产生的,这样速度比较快,系统负载小;但是在本文中介绍的单片机中没有这种专用电路,而且一般的中低端的单片机一般也不具有这种专用电路。这里我们只有充分利用现有的资源,如果直接计算的话,单片机负载很大,而且浪费了大量的系统时间,影响系统的实时性,考虑到我所使用的MCU的Flash ROM比较大,可以存储大量的常量线性表数据,利用查表方式可以非常方便的计算出CRC校验码。

四、结束语

  在本文中比较详细地介绍了ModBus总线协议,并最终设计了一个实现多点温度测量和控制的使用系统,希望本系统对类似的通讯应用有所帮助。

参考资料

  1. Modicon ModBus Protocol Reference Guide.PI一MBUS一300 Rev. J

  2. Mark Nelson著.串行通讯开发指南. 北京:中国水利水电出版社,2000

  3. 王田苗主编.嵌入式系统设计与实例开发. 北京:清华大学出版社,2002

关键字:现场总线  ModBus协议  工业控制系统 引用地址:ModBus协议在工业控制系统中的应用

上一篇:基于三相四线APF的模糊直接反馈控制
下一篇:数据质量控制在制丝生产线的应用

推荐阅读最新更新时间:2024-05-02 22:07

用单片机设计现场总线转换网桥
    摘要: 讨论工业控制系统设备连接转换网桥的基本概念和工业控制系统对网桥的基本要求。在此基础上,提出转换网桥和网络转换的概念,并给出工业控制系统和现场总线技术对网桥和网络转换的基本要求。通过讨论,提出用MC68HC05C8设计的三种总线系统连接类型,并针对这三种连接类型,提出网桥模块和网络转换的基本结构。     关键词: 现场总线 通信 工业控制 网桥 近年来随着现场总线技术的进步与发展,出现了工业控制系统连接网桥的概念以及相应的产品。应当说,网桥概念和产品的出现标志着解决“开放式”系统问题的开始,同时也是彻底实现信息化现场总线技术的开始。 目前,工业控制现场总线中的网桥设备所起的作用,是实现不同信
[应用]
工业以太网交换机应用于太阳能热电控制系统
背景介绍   太阳是一个十分巨大的能源,它送到地球的光功率就有12万TW。与此相比,现在人类社会的总能耗约13TW,全世界发电装机容量不到4TW,都比太阳送到地球的光功率小得多。地球上的所有石油资源相应的能量,只相当太阳在一天半时间内供应给地球的光能。   由于能源危机以及环境污染,一些发达国家早在上世纪七十年代,就开始投资于工业开发太阳能。 太阳能热电系统包括反射镜的形式和参数、镜面材料和结构、吸收体绝热技术、吸收体表面涂层、所用吸热液体材料、储热罐、装校调正检测技术等。   研华的无线工业以太网产品发挥了特殊的优势,克服了连接,工作环境方面的限制,在行业内得到了成功的应用。 系统需求   无线通
[嵌入式]
工业机器人控制系统所要达到的功能有哪些?
一般来说,工业机器人由三大部分六个子系统组成,三大部分是机械部分、传感部分和控制部分;六个子系统可分为机械结构系统、驱动系统、感知系统、机器人-环境交互系统、人机交互系统和控制系统。 相比于传统的工业设备,工业机器人有众多的优势,比如机器人具有易用性、智能化水平高、生产效率及安全性高、易于管理且经济效益显著等特点,使得它们可以在高危环境下进行作业。 那么工业机器人控制系统所要达到的功能有哪些? 机器人控制系统是机器人的重要组成部分,用于对操作机的控制,以完成特定的工作任务,其基本功能如下: 1、记忆功能:存储作业顺序、运动路径、运动方式、运动速度和与生产工艺有关的信息。 2、示教功能:离线编程,在线示教,间接示教。在线示教包括
[机器人]
现场总线技术的发展历程及基本概念
       现场总线是过程控制理论中的热门话题,也是相关领域的技术热点,受到了世界范围内的广泛关注。在讨论现场总线之前我们不妨先回忆一下过程控制领域的发展过程以及现场总线的产生背景。这或许会对我们理解现场总线的本质和发展有所帮助。         控制系统的发展以及现场总线的产生         随着科学技术的快速发展,过程控制领域在过去的两个世纪里发生了巨大的变革。150多年前出现的基于5-13psi的气动信号标准(PCS,Pneumatic Control System气动控制系统),标志着控制理论初步形成,但此时尚未有控制室的概念;20世纪50年代,随着基于0-10mA或4-20mA的电流模拟信号的模拟过程控制体系被提出
[嵌入式]
现场总线让调度实现自动化
1系统构成  基于现场总线的调度自动化系统主要由厂站端系统、调度端系统和通信系统构成。 (1)厂站端系统 厂站端(发电厂、变电站端)的监测与控制系统由前端智能单元、工控机、网络通信管理适配卡、专用调制解调器Modem和相应软件组成。 1)前端智能单元。前端智能单元一方面完成对各线路电流(A相、B相和C相)、电压(A相、B相和C相电压;AB相间电压;BC相间电压;CA相间电压)、三相/单相有功功率、三相/单相无功功率、三相/单相正有功电能、三相/单相负有功电能、三相/单相正无功电能、三相/单相负无功电能、三相/单相功率因数以及周波等电参量的测量;另一方面还要完成对各开关状态的检测和控制。前端智能单元一般采用16位微处理机系统,主要包
[嵌入式]
AVR单片机在工业采暖控制系统中的应用解析
1. 引言 单片机在工业控制领域应用时不同于民用、商用领域中的应用,工业控制所处的环境相对比较恶劣,干扰源多,其常见干扰源来自现场工业电气在投入、运行、切断等工况下产生的静电感应、尖峰电压、浪涌电流等干扰。实践表明,在工作室中按用户要求设计的小型工业采暖控制系统,尽管各项逻辑功能及技术指标的测试都正常,但该系统拿到现场上却不能使用,检测失灵,操作失控,显示花屏等现象接踵而来。经分析,其干扰是从现场不同路径传入单片机控制系统的。切断干扰源,提高单片机抗干扰能力是解决控制系统正常工作的前提。 2 抗干扰措施 2.1 测温信号的抗干扰 测温电路采用的是单总线芯片DS18B20,该芯片具有测温精度高,连接线路简单等优点,其测温范围为-
[单片机]
AVR单片机在<font color='red'>工业</font>采暖<font color='red'>控制系统</font>中的应用解析
基于现场总线的智能仪表温度控制系统的设计
        0 引 言         随着现场总线技术的发展,传统的模拟仪表逐步让步于智能化数字仪表,并具备数字化通信功能。         依据现场总线智能仪表技术的发展,设计了基于现场总线的氧化锆智能氧量分析仪,其温度控制系统采用了专家PID控制原理,提高了加热速度与准确性。         1 总线智能氧量分析仪结构         基于CAN总线的智能氧量分析仪以单片机C8051F040为中央控制器,系统扩展的外围电路及接口电路数量少,系统的可靠性及稳定性较高,系统功能扩展及软硬件升级比较方便。系统的硬件结构见图1。外围硬件电路主要包括六部分:系统校正、数据采集、温度控制、日历时钟、带触摸屏的液晶显示、CAN总线接口。
[嵌入式]
现场总线和以太网结合方案实现工业自动化系统的数字化
前言: 以计算机在工业控制和管理中的应用为主要标志的工业自动化技术在过去二十年间有了长足的进步。进人90年代以来,作为工业控制数字化、智能化与网络化典型代表的现场总线(Field Bus—FB)技术发展迅速、影响巨大,引起了工程技术界的普遍兴趣与重视,被誉为工业自动化领域具有革命性的新技术。 1、 现场总线的概念: 所谓现场总线,是指将现场设备(如数字传感器、变送器、仪表与执行机构等)与工业过程控制单元、现场操作站等互连而成的计算机网络,具有全数字化、分散、双向传输和多分支的特点,是工业控制网络向现场级发展的产物。它不仅是一个基层网络,而且还是一种开放式、新型全分布控制系统。这项以智能传感、控制、计算机、数字通讯等技术为主要内
[嵌入式]
<font color='red'>现场总线</font>和以太网结合方案实现<font color='red'>工业</font>自动化系统的数字化
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved