ModBus协议在工业控制系统中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ModBus协议在工业控制系统中的应用 (1)
2008-08-11 10:07:19 来源:互联网
随着计算机网络、通讯、控制等技术的发展,信息交换沟通的领域正在迅速覆盖从工厂的现场设备层到控制、管理的各个层次。基于现场总线的智能仪表对现场总线技术在我国的推广应用具有非常重要的意义。本文在Modbus现场总线协议的基础上设计了一个工业温度控制系统。
关键字:现场总线[174篇] ModBus协议[5篇] 单片机控制[2篇]
一、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模式传送更多的数据。
三、系统设计
本文所设计的系统是一个基于modbus的工业控制网络,它主要由实现现场控制功能的智能控制仪表、实现对智能控制仪表在线配置与监控功能的主机两部分组成。作为从机的现场智能控制仪表主要任务有:实现现场温度采集、输出控制、显示、系统配置以及响应主机激励;主机的主要任务是在线配置从机、监控从机从而得到相应从机的状态、历史温度数据分析;两者之间的通讯是基于现场总线技术的。
ModBus协议在工业控制系统中的应用 (2)
2008-08-11 10:07:19 来源:互联网
随着计算机网络、通讯、控制等技术的发展,信息交换沟通的领域正在迅速覆盖从工厂的现场设备层到控制、管理的各个层次。基于现场总线的智能仪表对现场总线技术在我国的推广应用具有非常重要的意义。本文在Modbus现场总线协议的基础上设计了一个工业温度控制系统。
关键字:现场总线[174篇] ModBus协议[5篇] 单片机控制[2篇]
3.1 系统的硬件设计
系统主要由通讯电路(输入)、数据采集、输出控制、LCD显示、通信及电源模块等组成。如图1所示,系统具有对外界温度信号进行采集的能力,采集的模拟信号经A/D模块转换为相应的数字量,送入微处理器进行处理。采集到的每一路温度都要与系统此路的温度设定值进行比较,然后根据结果调用合适的控制算法,并通过控制相应的继电器的占空比实现对温度的调节。
考虑到系统实际应用,在硬件设计方面,微控制器选用了台湾Syncmos公司生产的8位微控制器SM5964, 它是80C52 微控制器家族的派生产品,其强大的片内资源,只需添加少量的外围器件即可实现系统的要求。温度测量利用Pt (100Ω)热敏电阻,测量的模拟信号经A/D模块转换后送入微处理进行处理。
模数转换器选用凌特公司(Linear Technology)推出的20位无延迟模数转换器LTC2430,此模块可直接对测量的毫伏级信号进行处理,并能够满足精度要求。
其它也选用了与通信和输出控制相关的器件。