技术频道

一种基于ModBus协议的工程师站通讯系统的建立

摘 要:本文研究并建立了遵照开放系统互联模型(OSI模型),并基于ModBus协议的工程师站通讯系统,通过此系统实现了工程师站在现场总线上对5条高速腈纶纺丝生产线同时进行在线实时监控的功能。
关键词:OSI模型;ModBus协议;工程师站
一、引言
ModBus通讯协议正被广泛应用于工业自动化控制领域的通讯系统当中,其中德国西门子的控制设备(如PLC)大多采用此协议进行与工程师站PC机之间的通信。大庆石化总公司腈纶厂腈纺生产线工程师站便是基于ModBus协议,采用PC机,通过现场总线完成对生产线上各工位速度监测,同时在线调节改变各工位速度的操作系统。用PC机实现过去中型机DCS的主要功能是一种新方案,同时它扩展了DCS不具备的在线速度给定功能,提高了生产效率,给腈纶厂带来直接的经济效益。
腈纶生产线控制系统采用由PC机、PLC控制器、现场总线组成的总线式网络设计方案。总线结构如图1。

工程师站在现场总线上通过ModBus协议与5条生产线上的PLC进行通信,并进行控制(包括数据读取和数据写入)来实现对5条生产线上各工位的在线控制,因此,工程师站与PLC之间基于ModBus协议的通信系统的建立就成了工程师站工程实现的关键。
二、工程师站通信系统的建立
工程师站通信系统采用了国际标准化组织(ISO)制定的开放系统互连模型(OSI)。OSI模型的目的是在不需要改变系统软硬件逻辑结构的条件下,使不同系统间的通信变得可能。OSI模型不是一套特定协议,而是用来理解和设计一个灵活和可互操作的网络体系结构的模型。该模型由七层组成,在此系统中采用其中的五层。
1、物理层的建立
物理层是最低的参考模型层,它与物理媒体(Physical media)直接接口。它定义了基本连接的机械和电气特性,包括把两个节点连接在网络上的电缆、连接口等等。物理层同时支持单工、半双工和全双工模式通信。工程师站通信系统采用了半双工模式通信。
通信系统的通信电缆选用德国西门子专用通信电缆6XVI830.
PC机输出端口为232信号,而232信号易受噪声干扰,不适合远距离传输,而工业上通常采用抗干扰能力较强的485信号,来适应较远距离传输及复杂的工业环境,因而工程师站用232/485信号转换器实现PC机与PLC之间的信号转换。
因为有5条生产线,系统采用1个PC机232端口通过总线与5条生产线通信。因为工艺要求采样精度一般为数百毫秒,因而可以通过巡回采样满足生产要求。如果有更多的生产线或要求更高的速度,可采用星形连接或更多的232端口。
2、数据链路层的建立
数据链路层负责将数据单元(比特组)从一个站点送达下一个相邻站点。同时数据链路层定义了检测纠正在物理媒体中进行数据传输时产生的差错的协议。数据链路层对异步通信进提供差错检测,在高层软件(或高层硬件)中纠正这些差错。
本通信系统采用串行异步通信,用奇偶校验码进行数据链路层的差错检测。
3、网络层的建立
网络层用于处理当数据从工程师站(PLC)传递到PLC(工程师站)时的路由选择功能。这一层提供必需的编址(Addressing)以通过互连不相邻开放系统间的中间节点或系统。
本系统采用ModBus协议中的RTU模式(ModBus协议中的一种模式)进行现场总线上的编址。通过各个PLC不同的地址来区分总线上信号的设备,已决定相应的路由。
4、表示层的建立
表示层保证了工程师站与PLC之间的互可操作性。负责控制双方发送数据的语法,以及对在这两个系统之间传送的数据进行交换,以保证数据交换对双方都是有意义的。也就是将数据由发送者使用的格式转化为可以被双方接受的传输格式,然后在传输终点将这种格式转化为接收者使用的格式。
本系统按西门子IP通信处理器544的数据语法发送544所支持的命令字(Function Code)来进行双方的数据交换。
5、应用层的建立
应用层是OSI通信模型的最高层。在本系统中实际起到了文件访问、传输和管理的功能,允许工程师站的使用者访问远程PLC(进行修改和读取数据);或将远程PLC的数据文件取到本地工程师站使用,以及在本地工程师站管理和控制远程PLC上的数据文件。
综上,工程师站通信系统互连层次如图2所示。

三、ModBus通信协议在此系统中的应用
工程师站需要在现场总线上与德国西门子PLC的544标准通信模块进行通信,因而必须遵照西门子PLC的通信协议,即ModBus协议。
主—从关系:工程师操作站开始传递数据时,发出一个请求信号,等待从站(PLC)应答,信号在从站之间不能应答。
信息格式: 主—从(从—主)传递的数据格式第一字节是从站地址,第二字节是功能码,第三字节是要传输的数据,数据域的结构取决于功能码,第四字节是CRC校验码。结构如下:

从站地址功能码数据CRC校验码
从站地址:从站地址范围是1—5,这些地址是为了定义总线上的5个从站(PLC)。??
功能码:功能码定义了信息和信息结构。??
工程师站与PLC通信过程中主要用到的功能码:??
Function Code 04:它的功能是让工程师站从DB(datab lock)块中读取数据。具体结构如下:

Function Code 06:它的功能是让工程师站在DB块中写入数据。具体结构如下:

CRC校验码:它含有2个字节,校验结果由下列多项式求和得。本系统采用16位校验码,CRC-16即x16+x15+x2+1。
信息传递结束:544通信模块的信息单位是报文(Message),每条报文必须用连续的流来传输。如果因环境干扰报文中间产生了一个1.5倍字符时间的间隔,接收端将会冲洗掉前面不完整的报文。同时,如果两条报文之间的距离小于3.5倍字符时间,接收端会认为是上条报文的继续,会导致校验码错误。
在实际工程中要保证报文正确的传输,需要注意两方面:
(1)两条报文之间要有适当的时间间隔。每条报文以至少3.5个字符的时间隔作为开始和结束。这里每字符的时间是按当前传输波特率的字符时间。按本系统的波特率9600bps,每字符时间约为0.1ms,保留0.6ms的余量。
(2)要注意纠错码的计算。这包含两层纠错机制:
①字符的奇偶校验。??
②每条报文之间的循环冗余校验(CRC)。
四、通信缓冲区
1、基本结构

通信缓冲区的基本结构是系统运行正确、方便的基石。m1Cureent[20]、m2Cureent[20]、m3Cureent[20]分别定义了各工位电机的中心速度、现实速度、微调速度三组数据。并通过union联合的方式和maCureent[60]绑在一起。这样既便于三组数据的整体访问,又便于三组数据的分别访问。mCureent[5]共定义了5个上述的结构分别代表5条生产线。
2、这样定义缓冲区基本结构的原因
(1)多组数据横向铺开
将中心速度、现实速度、微调速度三组数据横向铺开,便于一次性从一条生产线读回全部数据。
(2)多条生产线纵向铺开
将5条生产线纵向铺开,便于建立趋势图和历史数据库。
五、结论
基于ModBus协议的工程师站通信系统的建立使得工程师站成功地在现场总线上实现了过去大型DCS上完成的速度监控、实时数据采集等功能,同时又增加了对各生产线在线速度给定的功能,从而使得系统操作更加方便,结构更加网络化。同时此次改造也为将来异地远程工程师站通信系统的建立打下良好的理论与工程实践基础。

文章版权归西部工控xbgk所有,未经许可不得转载。