工业控制中的通信协议就是在工业场景中,各个设备之间进行数据交互的时候能够相互理解的交流语言,就像两个不同国家的人需要先对应好大家一起用英语交流还是用中文交流。下面就简单介绍一下在工业控制中到底存在多少种“语言”,以及各种语言的特点。
在众多公开或私有协议中可分为如下几类:
标准协议:国际标准或公认的标准协议,如Modbus、DNP3、IEC104等,就像国际通用的交流语言。
私有公开:只有厂商自己设备支持并提供官方协议文档,如Omron FINS协议、三菱Melsec协议等,就像中国南方或北大的地方话,只有当地的一个地区的人能相互理解。
私有不公开:只有厂商自己设备支持且官方不提供协议文档,如S7、西门子PPI协议、GE SRTP等。
下面我们找一些工业控制系统中比较常用的协议,详述一下各协议的特点。
1.Modbus 协议
Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。
由于modbus协议是完全公开透明的,所需的软硬件又非常简单,这就使它成为了一种通用的工业标准。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
modbus通讯协议是一种主从式异步半双工通信协议,采用主从式通讯结构,可以使一个主站对应多个从站进行双向通信。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。
Modbus协议包括ASCII、RTU等通讯方式,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用主-从方式,主站发出数据请求消息,从站接收到正确消息后就可以发送数据到主站以响应请求;主站也可以直接发消息修改从站的数据,实现双向读写。
当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。
Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某从站点断开后(如故障或关机),主端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。
Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。
2、PROFIBUS
一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术,可实现现场设备层到车间级监控的分散式数字控制和现场通信网络,PROFIBUS,是一种国际化.开放式.不依赖于设备生产商的现场总线标准。PROFIBUS传送速度可在 9.6kbaud~12Mbaud范围内选择且当总线系统启动时,所有连接到总线上的装置应该被设成相同的速度。广泛适用于制造业自动化、流程工业自动化和楼宇、交通电力等其他领域自动化。PROFIBUS是一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术??墒迪窒殖∩璞覆愕匠导浼都嗫氐姆稚⑹绞挚刂坪拖殖⊥ㄐ磐?,从而为实现工厂综合自动化和现场设备智能化提供了可行的解决方案。
PROFIBUS协议结构是根据ISO7498国际标准,以开放式系统互联网络(Open System Interconnection-OSI)作为参考模型的。该模型共有七层。 (1)PROFIBUS-DP:定义了第一.二层和用户接口。第三到七层未加描述。用户接口规定了用户及系统以及不同设备可调用的应用功能,并详细说明了各种不同PROFIBUS-DP设备的设备行为。 (2)PROFIBUS-FMS:定义了第一.二.七层,应用层包括现场总线信息规范(Fieldbus Message Specification - FMS)和低层接口(Lower Layer Interface - LLI)。FMS包括了应用协议并向用户提供了可广泛选用的强有力的通信服务。LLI协调不同的通信关系并提供不依赖设备的第二层访问接口。 (3) PROFIBUS-PA:PA的数据传输采用扩展的PROFIBUS-DP协议。另外,PA还描述了现场设备行为的PA行规。根据IEC1158-2标准,PA的传输技术可确保其本征安全性,而且可通过总线给现场设备供电。使用连接器可在DP上扩展PA网络。 注:第一层为物理层,第二层为数据链路层,第三-六层末使用,第七层为应用层。
3、OPC协议
为了便于自动化行业不同厂家的设备和应用程序能相互交换数据,定义了一个统一的接口函数,就是OPC协议规范。OPC服务器的功能就是与下位机进行数据的交换,其中包含了大量的通讯程序和数据存贮程序。有了OPC就可以使用统一的方式去访问不同设备厂商的产品数据。其他的软件商只需开发面对服务器的程序即可,不用对不同的硬件设备开发不同的硬件驱动程序。减小了工作量,也方便了使用。
OPC基金会前前后后规定了不同的接口定义,如下:
OPC DA (Data Access, exchange of real-time values)
OPC A&E (Alarms & Events, exchange of alarms and events)
OPC HDA (Historical Data Access, exchange of historical values)
OPC XML DA (XML-based exchange of real-time values)
以上所有的接口定义,我们现在都统称为OPC。OPC是基于WINDOWS COM/DCOM接口技术来规定的。
OPC UA
为了应对标准化和跨平台的趋势,为了更好的推广OPC,OPC基金会近些年在之前OPC成功应用的基础上推出了一个新的OPC标准-OPC UA。OPC UA接口协议包含了之前的 A&E, DA,OPC XML DA or HDA,只使用一个地址空间就能访问之前所有的对象,而且不受WINDOWS平台限制,因为它是从传输层Scoket以上来定义的,导致了灵活性和安全性比之前的OPC都提升了。
OPC UA的优势:
1.一个通用接口集成了之前所有OPC的特性和信息,A&E, DA,OPC XML DA or HDA
2.更加开放,平台无关性,WINDOWS,LINUX都能兼容
3.扩展了对象类型,支持更复杂的数据类型比如变量,方法和事件
4.在协议和应用层集成了安全功能,更加安全
5.易于配置和使用
核心的区别是因为OPC和OPC UA协议使用的TCP层不一样,如下:
OPC是基于DOM/COM上,应用层最顶层;OPC UA是基于TCP IP scoket 传输层.
其他一些区别:
OPC虽然通过配置COM/DOM来提供数据加密和签名功能,配置防火墙,用户权限来让数据访问变得更加安全,但是会增加额外的工作量,尤其是对非IT的工程师来说;对于OPC UA,数据加密和签名,防火墙等都是默认的功能。比如基于DOM的OPC使用的动态端口分配,端口不固定,让防火墙难以确定,而OPC UA的端口都是唯一的,比如840D是PORT 4840,SIMATIC S7是PORT 4845。DOM/COM也可以生成不同级别的事件日志,但日志内容不够详细,只会提供“谁连接上服务器”这种,而对于OPC UA来说都是默认的功能,生成的日志内容更全面。