点上面蓝字,关注我们
1 引言
在饮料啤酒生产线中各个单机设备之间需要进行数据与信号交接。以往传统的方式为线号线连接,这样各设备间需要根据现场实际需要的信号数量与类型来确定信号电缆的型号与数量。如果设备间需要大量的数据交换,则需要通过通讯方式来解决。
目前在饮料啤酒包装生产线上的设备控制系统基本上采用西门子S7系列PLC控制(基于西门子TIA博图软件平台)。以往设备使用西门子S7-300系统时,一般采用PUT/GET通讯协议指令,1200/1500PLC控制系统同样可以采用该协议。该协议指令为单边编程方式进行,一个PLC作为服务器,另一个PLC为客户端,客户端可以对服务器进行读写操作,在服务器PLC侧不需要编写通讯程序[1]。在客户端PLC中将服务器PLC的DB地址写入通讯指令中;如果主站中发送指令中含有地址编写错误的话,将对从站造成故障风险,甚至损坏设备,存在安全隐患。在部分用户设备中明确禁止使用该通讯方式。
博图平台PLC CPU 组态中提供了一种简易通讯方式:智能I/0。在同一个项目中不同PLC中只需要进行网络组态以及CPU组态即可完成通讯;在不同项目的PLC之间,一端通过组态导出GSD文件,另一端通过安装该GSD文件,在网络中添加该I/O设备,原通讯PLC模块相当于各个I/O设备,组态好IP地址即可完成通讯。由于该通讯传输的地址均为IB/QB物理地址,复杂的通讯数据不容易处理。其可用于一些较为简单通讯,在较多设备间相互通讯,地址容易出现混乱错,无法进行数据的标准化处理。
西门子TAI博图软件平台提供的开放式用户通信(Open User communication,OUC),通过该通讯S7-1200/1500和S7-300/400CPU可以使用集成的 PN/IE 接口进行数据交换。OUC的主要特点是在所传送的数据结构方面具有高度的灵活性。这就允许CPU与任何通信设备进行开放式数据交换,通信伙伴可以是两个SIMATIC PLC,也可以是SIMATIC
PLC 和相应 的第三方设备,前提是这些设备支持该集成接口可用的连接类型[2]。由于此通信仅由用户程序中的指令进行控制,因此可以在程序中建立和终止事件驱动型连接。在运行期间,也可以通过用户程序修改连接。对于具有集成 PN/IE 接口的 CPU,可使用TCP、UDP和ISO-on-TCP连接类型进行开放式用户通信。在结合实际项目使用中认为最为简单高效的为ISO-ON-TCP通讯协议。ISO-on-TCP连接用于西门子S7站之间的数据交换以及与PC 站,S5站和第三方系统之间的通信。 站与站间通信是基于接口IP 地址的,最大通讯字节数64KB,数据可以通过路由器(有路由功能的协议)传递,可使用“SEND/RECEIVE”指令实现数据传输。本文将以某国际知名啤酒集团在非洲工厂的1.8万B/H
PET无醇啤酒生产线为实例,详细介绍通许组态及标准化处理。
2 西门子ISO-ON-TCP协议通讯硬件组成
在目前项目中使用西门子的S7-1200/1500CPU中均至少含有1个以太网通讯接口。简单的设备中一般包含一个PLC、一个触摸屏共2个PN接口模块;复杂点的设备还可能包含变频器、阀岛、编码器等其他以太网通讯接口模块。在不增加额外PLC以太网通讯接口的条件下,需要对整个项目通讯接口进行统计,制定个设备的IP地址段表格。各设备电气工程师需要严格安表格地址分配,如图1。每个设备除去自身模块的IP地址外,还需要额外分配2个IP地址,供调试PC使用。此方式只需额外配置交换机及网线即可,可节约PLC以太网通讯接口模块,需要整线项目经理进行IP地址管理。

在1.8万B/H PET无醇啤酒生产线项目中,客户为保证通讯安全可靠以及IP地址数量等方面考虑,采用外加以太网通讯接口模块进行通讯数据采集,组成独立的外网通讯网络,交换机安装与UPS控制柜中。各单机设备将通讯网线放入到网络控制柜中,通过西门子交换机连接组网。内网与外网相互独立,内网为各设备内部通讯网络,由各自工程师自由分配。各设备PLC型号,通讯接口,IP地址分配如图2所示。其中吹瓶机、灌装机、膜包机PLC含有2个及以上通讯接口,无需配置额外接口模块。

3 西门子ISO-ON-TCP通讯协议程序设计及标准化
以生产线中灌装机设备PLC控制程序为主要实例,详细介绍ISO-ON-TCP通讯程序设计标准化处理。
3.1 打开设备程序在TIA软件选择“设备与网络”-“网路视图。,选择需要通讯模块的端口,在以太网选项中添加新子网,子网名称修改为“PN/IE_10”。各单机设备通讯外网的子网名称均修改为“PN/IE_10”;IP地址按表格内容修改,PN设备名称修改为该设备的英文名称,如图3。

3.2 在程序中选择新增组,命名为“ISOTCP”;在组里面添加FC程序块,通讯程序数据处理块,接收数据块,发送数据块。DB206数据块可选择“优化块的访问”;发送、接收DB201、DB202数据块不能选择“优化块的访问”。如图4所示。

3.3建立接收发送数据块。打开“SEND”发送数据块,新建一个结构体变量,在该结构体变量中新建16个BOOL,4个INT,5个REAL数据类型,数据注释可在双方沟通确定具体通讯数据后添加;数据不够的条件下,可自行增加。该设备PLC需要与几个设备通讯,则添加几个该结构体变量,并将结构体变量名称命名为对方通讯设备的英文名称。如图5所示。

灌装机与吹瓶机、杀菌机、输瓶线进行通讯处理;CIP与BBT由于客户设备制造时间早,使瓶机、杀菌机、输瓶线进行通讯处理;CIP与BBT由于客户设备制造时间早,使用DP网关与灌装机通讯。以同样方式建立“REC”接收通讯数据块内容。
3.4 在以往项目通讯中通讯故障信号采用程序指令背景数据块中的数据来处理,但在实际应用时该信号不能准确反映该通讯是否正常。为解决此问题,自行增加一个看门狗功能程序。

首先在“commun”程序块中编写一个1-100的递增循环数据,1S递增一次;将该数值写入SEND.dog中,这样在通讯正常时REC.dog中就可以读到一个实时更新的数值。在处理生成一个占空比50%的5S脉冲信号;将前5S读到的数据与最后一次读取到的数据进行比较,如果数据相同则说明通讯故障。如图6所示。为配合程序实现,commin数据块按图7生成。

3.5打开“commun”功能开,在指令工具栏中选择通讯--开放式用户--“TSEND_C”程指令,拖入程序中,选择新建背景数据块名称及编号,如图8所示。

点击指令中的开始组态图标,弹出配置连接属性。在连接参数窗口中选择通讯伙伴,选择未指定(若2个设备PLC程序在同一个项目中并组网,可直接选择到对方PLC名称);在选择本地需要进行通讯的接口;连接数据中选择新建或已经存在的数据块;配置伙伴IP地址;组态模式选择“使用程序块”;连接类型选择“ISO-on-TCP”;选择本地或伙伴建立主动连接;配置连接ID以及本地、伙伴TSAP名称。如图9所示。在整线项目中在确定设备IP时,可同时确定连接个设备ID与TSAP名称,确定表格如图10所示。


完成上述操作后选择块参数。配置“REQ”、“CONT”信号、填写通讯发送数据区的起始地址,数据长度。
启动请求信号REQ:用于出发数据发送,每一个上升沿发送一次。本文选择0.5HZ频率的脉冲信号(CUP属性中定义的时钟存储位)。
连接状态CONT:0为断开通讯,1为建立通讯,默认为1。
连接指针“CONNCET”由系统连接参数自动建立,用于存储连接信息。
数据发送区域DATA其实地址:发送数据区的收个地址。长度为需要发送的数据区长度,实例中传输数据为DB201.DBB0-DB201.DBB29总共30个字节。配置完成后如图11所示,完成配置后指令如图12所示。在实际调试中后期客户需要增加通讯字节的,新增DB块中结构体变量的数据后造成后续通讯数据起始地址变动,需要修改后续程序指令中的起始地址。
3.6在指令工具栏中选择通讯--开放式用户--“TRCV_C”程指令,拖入程序中,选择新建背景数据块名称及编号。操作与“TSEND_C”相同,只需更改接收的数据区域地址。配置完成后如图13所示。
3.7完成配置后首先不用进行数据传输指令编写,直接监控发送和接收数据中的SEND.dog和REC.dog数据判断通讯是否正常运行。通讯不正常情况可监控指令背景数据块中的Output.STATUS状态字,对照进行软件帮助信息系统中的状态字表格判断故障原因。通讯正常后,编写数据传输程序,完成2个设备间的数据通讯[3],如图14。图15为灌装机与吹瓶机的通讯测试数据。
4 结论
按照上述方法将灌装机其他控制程序删除,只保留ISOTCP程序组,发送接收数据块、程序中值保留与一台设备通讯程序,如图16所示;并编写简单组态步骤说明。将该程序和说明发送生产线其他设备电气工程师。只需简单程序复制、配置模块IP地址、连接ID、通讯数据地址等先关参数就可以完成数据通讯。无相关通讯编程经验的工程师也可以完成。通过该方式解决生产线各设备间的必要的数据信号交接外,还可提供其他信号,完善优化整线控制。BBT将剩余物料体积发送给灌装机,灌装机可根据BBT剩余预料及管路残留物料(可通过几次生产,得出管路物料体积)计算出还可生产多少瓶;将灌装机到吹瓶机或洗瓶机之间输瓶线上的瓶子和其设备内部的瓶子,当剩余瓶小于吹瓶机或洗瓶机设备内瓶量时向其发送停止进胚/瓶指令。在通过数次生产,验证修改指令发出时的剩余量。将杀菌机、洗瓶机等设备的水耗、蒸汽消耗等能耗数据传送给灌装机,工厂统计员只需在灌装机HMI上进行数据统计即可。该方式灵活多变,后期还可根据现场客户需求,增加通讯数据。
(完整内容见本刊135期杂志)

