基于西门子ISO协议的跨平台通讯
长期以来,基于跨平台的PLC之间的通讯由于彼此协议间的不同,大多数都是基于硬件如RTU通讯网关,和模块化的协议转换器来实现。但是这些依靠硬件的方法增加了工程的成本。本文着重从软件方面介绍如何实现西门子系统(基于ISO-MAC的以太网协议)的跨平台通讯,本文介绍与西门子通讯的另外一端选择了应用较为广泛的MODBUS TCP(和利时,施耐德系统)协议。
【关键词】西门子 ISO协议 跨平台 MODBUS TCP
1 西门子工业以太网的ISO协议介绍
1.1 西门子工业以太网ISO协议通讯规则
此协议通过把上位电脑组态成PLC的一个组态站,通过上位电脑网卡的MAC地址进行通讯。需要注意的是,只有西门子自己的CP系列的网卡才能支持做冗余通讯。我们一般用的普通的PCI网卡不支持冗余。本文就以普通网卡为例。
1.2 工业以太网与普通以太网的区别
很多朋友的在问工业以太网和以太网有什么区别,区别为:实时性(主要)和防干涉、防护等级等。
其很多地方都有自己的出入和偏差。甚至是西门子先入为主的偏差。直接认为西门子上的ISO=工业以太网 这个是有偏差的,甚至说前面这个等号也是大家经常就这么认为的也是一个偏差。并不是说不使用IP层(标准说法应该是网络层),仅使用数据链路层(MAC)就是工业以太网。也不能说使用了IP协议,可以路由的就不是工业以太网了。只表面现象看上去确实如此,因为大多自动化控制的工程人员都不甚了解OSI模型和TCP/IP模型,他们不知道即便是用了IP协议,在报文中也是有携带MAC的。因为他们很少接触到arp与rarp这两个协议(IP和MAC互相解析的两个协议)。
我所理解的工业以太网实际上是没有一个准确标准和协议的(虽然在06年07年北京有个国际性的关于工业以太网的标准化结果)工业以太网:要求是实时性高,而传统的以太网采用的是CSMA/CD(带冲突检测的载波侦听多路访问),当你的带宽越大,负载(信息点,即信息源)越少,实时性越高。这牵扯到冲突域等等一些列的概念。而现在西门子和德国的另外几家在交换机硬件上和软协议上所做的工作都是为了提高其实时性。工业以太网是一整套技术的综合,比如通信设备线路的防护等级,信号干扰的屏蔽。
2 Modbus-TCP协议介绍
2.1 Modbus-TCP通讯结构
ModbusTCP是运行在TCP/IP上的Modbus报文传输协议。通过此协议,控制器相互之间通过以太网和其他设备进行通讯。
其报文传输协议如图1。
2.2 Modbus-TCP性能
Modbus-TCP网络的性能很大程度上依赖于所使用以太网的设计以及相关设备中通讯接口的微处理器性能。Modbus-TCP协议本身的效率高达60%。这是因为协议允许一个TCP/IP帧传送多个寄存器,而TCP/IP协议本身只增加几个字节的协议头。在100M位/秒交换的以太网中,理论上每秒传输最大可达360万个16位寄存器。由于网络上的数据传输延时,实际的速率要低得多。现场设备通讯接口的协议处理时间并非无关紧要,而是限制了整体的性能。在一台Momentum PLC上进行的测试表明,每秒能够传送4000个远程I/O设备,每个有32个数字I/O和16个模拟I/O值。这大致相当Profibus系统工作在1.5M位/秒时的性能。
3 数据采集与发布实施过程
3.1 软件选择
系统上位平台为新版本的wincc7.0 SP2 支持modbusTCP协议和西门子系列的通讯协议。第三方通讯软件KEPServerEx V4.0。这里需要说明一下,wincc平台对modbusTCP协议的支持是只支持读取,转发需要第3方软件平台做为依托。
3.2 实现原理
3.3 实现过程
整个的数据采集和转发通过上位电脑来实现。首先把上位电脑需要2个独立的网卡,一个网卡需要组态成西门子PLC系统的工作站,进行MAC地址通讯。另外一个网卡做为MODBUS通讯,以及MODBUS转发的数据出口。
在WINCC7.0的平台下首先配置好Industrial Ethernet(II)中读取PLC数据的点。
配置好WINCC MODBUS TCPIP下的CPU类型、服务器地址、端口、从站地址。
此时,WINCC和KEPServerEx中的地址要一一对应。
最后,需要打开并配置WINCC平台,通过全局脚本或者画面直接写变量,把读取到的Industrial Ethernet(II)下标签的值,写入到MODBUS TCPIP下中与之相对应的标签。需要注意的是此时WINCC必须是和KEPServerEx已经连接上,而且配置的KEPServerEx的点必须是带读写权限的,不然KEPServerEx是无法读取被写入的值和从中进行转发的。一切都配置完成后可以选择一个与转发地址段同网段的PC安装ModScan32进行测试。
4 ISO以太网跨平台通讯的应用展望
就目前而言,西门子部分新CPU是支持MODBUS TCP通讯的,但是对于正在使用的老的CPU来说只能添加硬件CP343-1或者CP443-1来实现,而且目前这些CP卡价格较昂贵。所以,从软件方面做通讯是比较经济的。
就目前专门做数据采集与通讯的RTU厂家来说,包括TBox RTU、力控华康RTU等诸多品牌的RTU无法直接支持IOS-MAC的直接通讯。有一些厂家例如北辰等开发的(MPI/PPI)转换器模块也只是把Profibus映射成以太网,通过读取DB块中的数据完成通讯。但是,如果下位平台使用了PCS7下的CFC块,转换器模块通讯就比较困难了。
对于运行在PCS7平台ISO通讯方式冗余网络结构下的414H 400CPU来说,和别的PLC通讯也是比较困难的,而且可能会有部分系统当时建立的时候CP卡是走的串口线,通过ESM串口交换机组的网络。但如果通过组态工作站转发,实现起来就方便多了,同时也可以多组态几个工作站进行冗余通讯。
就通讯类型来看,通过wincc平台做转发的PC则更像一台被组态成远程站的RTU,应用前景广阔。
5 结语
通过上位系统平台进行通讯协议转发进行跨平台通讯具有广泛的应用前景和较低廉的实施成本。可能会有一些朋友认为纯粹的利用上位平台做转发和逻辑控制会不安全,的确上位电脑的平均无故障时间肯定没PLC高。所以逻辑信号多的项目最好多节点转发(包括冗余转发),而且各个节点直接要把系统的时间同步服务打开。
作者单位
安钢集团自动化有限责任公司 河南省安阳市 455000