您的位置:控制工程论坛网论坛 » 教程与手册 » 工业控制系统通讯协议的描述方法

jshfq

jshfq   |   当前状态:在线

总积分:17995  2024年可用积分:0

注册时间: 2007-08-06

最后登录时间: 2013-11-04

空间 发短消息加为好友

工业控制系统通讯协议的描述方法

jshfq  发表于 2008/8/5 12:56:01      1122 查看 0 回复  [上一主题]  [下一主题]

手机阅读









工业控制系统通讯协议的描述方法

 
摘  要:针对工业控制系统实际问题,使用列表的方法总结了通讯协议所涉及的内容,讨论了由阻塞和干扰引起的异常情况以及处理办法,给出了工业控制系统通讯协议的基本规范和纵向描述表。 


关键词:工业控制,通信协议,描述表


0.引言


  通讯协议在工业控制系统中十分重要[1]。一般来说网络协议有7层。其中第1部分由硬件完成,称为物理层。第2部分由操作系统完成,包括链路层、网络层、传输层。第3部分包括会话层、表示层和应用层,一般在应用软件里实现[2]。所谓在工业控制系统中的通讯协议均指会话协议。


  合理的会话协议能够大幅度提高硬件的操作效率,准确的描述能提高程序员之间的协作效率。如何设计出高效的通讯协议并使用准确的语言描述,对每个系统分析者以及软件设计者来说必不可少。


  笔者通过总结多年的设计工业控制系统的经验,得到了关于工业控制系统通讯协议的一些描述方法。希望能够给广大设计工业控制系统的同行予以借鉴。


1.工业控制系统的基本模型



点击看大图
图1 工业控制系统的信号传送过程


  一般情况下,工业控制系统涉及上位机、控制柜、传感器与控制器四大部分。如图1所示上位机主要指的是计算机,控制系统在这里安装。控制柜是连接计算机、PLC(可编程控制器)、传感器与控制器的设备,PLC是其中的主要部件。其实PLC也是计算机,在测量时,它的作用是把传感器送来的电流或电压信号转化为数字信号,称为A/D转换,并将这些数字信号送给计算机。在控制时,它的作用是把计算机送来的数字信号转化为电流或电压信号,称为D/A转换,并将这些数字信号送给控制器。一般来说,PLC是计算机与传感器和控制器之间的桥梁。PLC的功能在不断完善,现代的PLC完全可以替代计算机。在绝大多数情况下,人们仍需要在计算机上运行控制系统,这时便需要在PLC和计算机之间进行通讯。我们所说的通讯协议主要是指计算机与PLC的通讯协议[3] [4]。


2.客户与服务器


  网络通讯总是以客户(Client)与服务器(Server)方式进行的。所谓服务器是指,它总是处于被动状态,等待客户的询问,负责应答。而客户总是处于主动地位,在启动时客户总是首先向服务器发出联络信号,然后等待服务器的回答。在设计程序时,到底谁作客户,谁作服务器要看具体的情况而定。一般来说,上位机是客户,PLC是服务器,为上位机提供各种测量数据并负责向控制器传送控制信号[5]。


  工业控制数据可分为目标值(Target)、设定值(Setpoint)、测量值(Measure)、操作状态(Status)、阀门位置(Valve value)等,这是按照纵向控制界面来划分的。如果要按照网络传输方式来划分,可分为:一般运行数据(Data)、参数(Parameter)、命令(Command)、出错信息(Error)、消息(Message),如表1。


  表1 工业控制数据通讯读写分类表

点击看大图


3.网络通讯的数据


  一般来说,网络通讯协议主要描述客户如何与服务器进行对话,所以下面的描述总是以客户身份表现的。对于客户来说有:①请求运行数据、②请求参数、③写参数、④写命令,服务器应答后便相应的有:⑤读数据、⑥读参数、⑦读错误信息、⑧读消息。这些操作之间的对应关系与它们的具体含义请看表2。


  数据传送过程必须由发送方和接收方共同完成。发送方收集数据并打包然后发送,接收方则在收到数据后按照协议(protocol)进行解包后分发到各个位置上。


  所谓的协议就是一种描述规范,首先必须使得接收方明确:哪一路的数据,读还是写,具体内容是什么。如果要让接收方准确无误的接收,还必须考虑到工业控制的具体情况,如阻塞和干扰。


  表2 工业控制数据通讯读写关系说明表

点击看大图


4.阻塞与干扰


  传送数据的方式一般有两种格式,即2进制模式或文本字符模式。对于这两种截然不同的格式来说,编写协议的方法也大不相同。2进制模式下整数和浮点数所占用的空间与数值的大小没有关系,文本字符模式下则大不相同,必须充分考虑数值的取值范围与小数点的位置。一般来说,2进制模式传送数据的效率要高的多,而文本字符模式下的纠错能力更强,而且所得到的数据可以直接显示。在工业控制条件下,由于考虑到纠错方法的容易实现,采用文本字符模式的居多。


  在不考虑阻塞(block)的情况下,接收方所得到的数据块与发送方所发送的数据块完全一样,这时不必考虑起始符与结束符。但是在工业控制环境下,连续不断地、大批量地传送数据阻塞是不可避免的,于是像图2所示的情况常常会发生。接收方某次所读到的并不是发送方某一次所送来的,而是发送方第n-1块数据的后半部分与发送方第n块数据的前半部分,这样如果简单的以顺序解读就必然会造成误会。如表3中的起始符与结束符就是为了克服受阻塞条件下的接收数据的起始位值的偏移。应该说明的是,起始符中使用过的字符不应该在其它地方再使用。



点击看大图
图2 受阻塞条件下的数据接收情况


  另外,在工业现场,许多金属设备及电动机的高速运转,强烈电磁干扰也是不可避免。本来在实验室里能正常传送的网络数据,到了工业现场却不能正常运行。本来的正常的数据会变得不可思议。排除那些因受现场干扰(interfere)而变得不可使用的数据是非常有必要的。对付这些异常数据的办法就是丢弃它们。这时,如何辨别它们是错误的就变得非常重要。


  校验码(verify code)的作用就是让接收方知道自己所接收到的数据是否受过干扰。所谓校验码就是在数据块的固定位置放置若干字符,如表3。这些字符可以是固定字符、求和(sum)或异或(Xor)求和。固定字符容易实现,但是难以知道其它位置的数据是否受到干扰。求和或异或求和是常用的校验方法,这种方法通常把求和结果转换成两位16进制的文本字符码,这两位16进值符号就能表示出一个字节的数据。


5. 协议描述方法


  表3是笔者在设计网络会话通讯协议时常用的描述方法,称为纵向描述方法。这种方法的优点是能够将所要传送的每个字段进行详细的描述。在这里将每个所要描述的字段分为:起始位置、名称、字节数、数据类型、数据内容等5项说明。


  表3 工业控制数据通讯协议的格式

点击看大图


  显然这是一种适用于文本字符描述的协议,2进制协议也可以参照这种方法。由于2进制协议的任意位置可以取任何值,所以在2进制协议中无法起始符与结束符。


6.结束语


  上述的表3中描述的主要是针对串口通讯,在以太网环境下当然也是可以的。一般来说,纠错功能在传输层进行,但是由于在以太网环境下,传输层协议是由操作系统完成的,如TCP协议[3],纠错功能自然包含在内,所以表3中的校验码可以不予考虑。


  在串口通讯模式下,操作系统(Windows)仅仅为串口通讯建立了缓冲区,大部分传输层功能需要由编程者来完成,所以表3中的校验码是绝对不可以缺少的。


  以上的通讯协议设计方法笔者已在许多地方,如山东临清、广西荔浦、内蒙河套等的抄纸过程控制系统中广泛使用,效果良好。

1楼 0 0 回复