1、啤酒饮料生产线中西门子 ISO-ON-TCP通讯协议应用及其标准化Application and Standardization of Siemens ISO-ON-TCP Communication in Beer and Beverage Production Line 许智辉汪哲立汪军摘要:在饮料啤酒生产线中为满足各个单机设备间越来越多的数据交换,各个单机设备的 PLC 控制系统中需要一种安全可靠的通讯方式。本文详细介绍了一种基于西门子 TIA 平台的 ISO-ON-TCP 通讯协议,及其通讯程序和数据的标准化应用。该协议可在多台 PLC 设备间安全的进行数据交换。通过本文方式进行处理,
2、可进行数据块的标准化、程序的可重复性以及易操作。关键词:西门子 TIA 平台;饮料啤酒生产线;ISO-ON-TCP 协议;数据通讯;标准化Abstract:A safe and reliable communication method is required in the PLC control system of each equipment to meet the increasing data exchange between each equipment in beverage and beer bottling line.This paper presents the detail
3、s of an ISO-ON-TCP communication protocol based on Simens TIA platform and its standardized application of communication program and data.This protocol can be security used for data exchange between multiple PLC devices.In this way,the project can standardize data blocks,program repeatability and ea
4、sy operation.Key words:Siemens TIA platform,beverage and beer bottling line,ISO-ON-TCP protocol,data communication,standardization.1 引言在饮料啤酒生产线中各个单机设备之间需要进行数据与信号交接。以往传统的方式为线号线连接,这样各设备间需要根据现场实际需要的信号数量与类型来确定信号电缆的型号与数量。如果设备间需要大量的数据交换,则需要通过通讯方式来解决。目前在饮料啤酒包装生产线上的设备控制系统基本上采用西门子 S7 系列 PLC 控制(基于西门子 TIA 博图软件
5、平台)。以往设备使用西门子 S7-300 系统时,一般采用 PUT/GET 通讯协议指令,1200/1500PLC 控制系统同样可以采用该协议。该协议指令为单边编程方式进行,一个 PLC 作为服务器,另一个 PLC 为客户端,客户端可以对服务器进行读写操作,在服务器 PLC 侧不需要编写通讯程序1。在客户端 PLC 中将服务器 PLC 的 DB 地址写入通讯指令中;如果主站中发送指令中含有地址编写错误的话,将对从站造成故障风险,甚至损坏设备,存在安全隐患。在部分用户设备中明确禁止使用该通讯方式。博图平台 PLC CPU 组态中提供了一种简易通讯方式:智能 I/0。在同一个项目中不同 PLC 中
6、只需要进行网络组态以及 CPU 组态即可完成通讯;在不同项目的 PLC 之间,一端通过组态导出 GSD 文件,另一端通过安装该 GSD 文件,在网络中添加该 I/O 设备,原通讯 PLC 模块相当于各个 I/O 设备,组态好 IP 地址即可完成通讯。由于该通讯传输的地址均为 IB/QB 物理地址,复杂的通讯数据不容易处理。其可用于一些较为简单通讯,在较多设备间58研究相互通讯,地址容易出现混乱错,无法进行数据的标准化处理。西门子 TAI 博图软件平台提供的开放式用户通信(Open User communication,OUC),通 过 该 通 讯 S7-1200/1500 和 S7-300/4
7、00CPU 可以使用集成的 PN/IE 接口进行数据交换。OUC 的主要特点是在所传送的数据结构方面具有高度的灵活性。这就允许 CPU 与任何通信设备进行开放式数据交换,通信伙伴可以是两个 SIMATIC PLC,也可以是 SIMATIC PLC 和相应 的第三方设备,前提是这些设备支持该集成接口可用的连接类型2。由于此通信仅由用户程序中的指令进行控制,因此可以在程序中建立和终止事件驱动型连接。在运行期间,也可以通过用户程序修改连接。对于具有集成 PN/IE 接口的 CPU,可使用 TCP、UDP 和 ISO-on-TCP 连接类型进行开放式用户通信。在结合实际项目使用中认为最为简单高效的为
8、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、一
9、个触摸屏共 2 个 PN 接口模块;复杂点的设备还可能包含变频器、阀岛、编码器等其他以太网通讯接口模块。在不增加额外 PLC 以太网通讯接口的条件下,需要对整个项目通讯接口进行统计,制定个设备的 IP 地址段表格。各设备电气工程师需要严格安表格地址分配,如图 1。每个设备除去自身模块的 IP 地址外,还需要额外分配 2 个 IP 地址,供调试 PC 使用。此方式只需额外配置交换机及网线即可,可节约 PLC 以太网通讯接口模块,需要整线项目经理进行 IP 地址管理。在 1.8 万 B/H PET 无醇啤酒生产线项目中,客户为保证通讯安全可靠以及 IP 地址数量等方面考虑,采用外加以太网通讯接口模
10、块进行通讯数据采集,组成独立的外网通讯网络,交换机安装与 UPS 控制柜中。各单机设备将通讯网线放入到网络控制柜中,通过西门子交换机连接组网。内网与外网相互独立,内网为各设备内部通讯网络,由各自工程师自由分配。各设备 PLC 型号,通讯接口,IP 地址分配如图 2 所示。其中吹瓶机、灌装机、膜包机 PLC 含有 2 个及以上通讯接口,无需配置额外接口模块。3 西门子 ISO-ON-TCP 通讯协议程序设计及标准化以生产线中灌装机设备 PLC 控制程序为主要实例,详细介绍 ISO-ON-TCP 通讯程序设计标准化处理。3.1 打开设备程序在 TIA 软件选择“设备与网络”-“网路视图。,选择需要
11、通讯模块的端口,在以太网选项中添加新子网,子网名称修改为“PN/IE_10”。各单机设备通讯外网的子网名称均修改为“PN/IE_10”;IP 地址按表格内容修改,PN 设备名称修改为该设备的英文名称,如图 3。3.2 在程序中选择新增组,命名为“ISOTCP”;在组图 1图 259RESEARCH里面添加 FC 程序块,通讯程序数据处理块,接收数据块,发送数据块。DB206 数据块可选择“优化块的访问”;发送、接收 DB201、DB202 数据块不能选择“优化块的访问”。如图 4 所示。3.3 建立接收发送数据块。打开“SEND”发送数据块,新建一个结构体变量,在该结构体变量中新建 16 个B
12、OOL,4 个 INT,5 个 REAL 数据类型,数据注释可在双方沟通确定具体通讯数据后添加;数据不够的条件下,可自行增加。该设备 PLC 需要与几个设备通讯,则添加几个该结构体变量,并将结构体变量名称命名为对方通讯设备的英文名称。如图 5 所示。灌装机与吹瓶机、杀菌机、输瓶线进行通讯处理;CIP 与 BBT 由于客户设备制造时间早,使瓶机、杀菌机、输瓶线进行通讯处理;CIP 与 BBT 由于客户设备制造时间早,使用 DP 网关与灌装机通讯。以同样方式建立“REC”接收通讯数据块内容。3.4 在以往项目通讯中通讯故障信号采用程序指令背景数据块中的数据来处理,但在实际应用时该信号不能准确反映该
13、通讯是否正常。为解决此问题,自行增加一个看门狗功能程序。首先在“commun”程序块中编写一个 1-100 的递增循环数据,1S 递增一次;将该数值写入 SEND.dog 中,这样在通讯正常时 REC.dog 中就可以读到一个实时更新的数值。在处理生成一个占空比 50%的 5S 脉冲信号;图 3图 5图 4图 660研究将前 5S 读到的数据与最后一次读取到的数据进行比较,如果数据相同则说明通讯故障。如图 6 所示。为配合程序实现,commin 数据块按图 7 生成。3.5 打开“commun”功能开,在指令工具栏中选择通讯-开放式用户-“TSEND_C”程指令,拖入程序中,选择新建背景数据块
14、名称及编号,如图 8 所示。点击指令中的开始组态图标,弹出配置连接属性。在连接参数窗口中选择通讯伙伴,选择未指定(若 2 个设备 PLC 程序在同一个项目中并组网,可直接选择到对方PLC 名称);在选择本地需要进行通讯的接口;连接数据中选择新建或已经存在的数据块;配置伙伴 IP 地址;组态模式选择“使用程序块”;连接类型选择“ISO-on-TCP”;选择本地或伙伴建立主动连接;配置连接 ID 以及本地、伙伴 TSAP 名称。如图 9 所示。在整线项目中在确定设备IP 时,可同时确定连接个设备 ID 与 TSAP 名称,确定表格如图 10 所示。完成上述操作后选择块参数。配置“REQ”、“CON
15、T”信号、填写通讯发送数据区的起始地址,数据长度。启动请求信号 REQ:用于出发数据发送,每一个上升沿发送一次。本文选择 0.5HZ 频率的脉冲信号(CUP 属性中定义的时钟存储位)。连接状态CONT:0为断开通讯,1为建立通讯,默认为1。连接指针“CONNCET”由系统连接参数自动建立,用于存储连接信息。数据发送区域 DATA 其实地址:发送数据区的收个地址。长度为需要发送的数据区长度,实例中传输数据为DB201.DBB0-DB201.DBB29 总共 30 个字节。配置完成后如图 11 所示,完成配置后指令如图 12 所示。在实际调试中后期客户需要增加通讯字节的,新增 DB 块中结构体变量
16、的数据后造成后续通讯数据起始地址变动,需要修改后续程序指令中的起始地址。3.6 在指令工具栏中选择通讯-开放式用户-“TRCV_C”程指令,拖入程序中,选择新建背景数据块名称及编号。操作与“TSEND_C”相同,只需更改接收的数据区域地址。图 7图 9图 10图 861RESEARCH配置完成后如图 13 所示。3.7 完成配置后首先不用进行数据传输指令编写,直接监控发送和接收数据中的 SEND.dog 和 REC.dog 数据判断通讯是否正常运行。通讯不正常情况可监控指令背景数据块中的 Output.STATUS 状态字,对照进行软件帮助信息系统中的状态字表格判断故障原因。通讯正常后,编写数
17、据传输程序,完成 2 个设备间的数据通讯3,如图 14。图 15 为灌装机与吹瓶机的通讯测试数据。4 结论按照上述方法将灌装机其他控制程序删除,只保留ISOTCP 程序组,发送接收数据块、程序中值保留与一台设备通讯程序,如图 16所示;并编写简单组态步骤说明。将该程序和说明发送生产线其他设备电气工程师。只需简单程序复制、配置模块 IP 地址、连接 ID、通讯数据地址等先关参数就可以完成数据通讯。无相关通讯编程经验的工程师也可以完成。通过该方式解决生产线各设备间的必要的数据信号交接外,还可提供其他信号,完善优化整线控制。BBT 将剩余物料体积发送给灌装机,灌装机可根据 BBT 剩余预料及管路残留
18、物料(可通过几次生产,得出管路物料体积)计算出还可生产多少瓶;将灌装机到吹瓶机或洗瓶机之间输瓶线上的瓶子和其设备内部的瓶子,当剩余瓶小于吹瓶机或洗瓶机设备内瓶量时向其发送停止进胚/瓶指令。在通过数次生产,验证修改指令发出时的剩余量。将杀菌机、洗瓶机等设备的水耗、蒸汽消耗等能耗数据传送给灌装机,工厂统计员只需在灌装机 HMI 上进行数据统计即可。该方式灵活多变,后期还可根据现场客户需求,增加通讯数据。作者单位/合肥中辰轻工机械有限公司 图 11图 15图 12图 13图 14图 16参考文献1 崔坚 SIMATIC S7-1500与TIA软件使用指南【M】.北京:机械工业出版社,2016.32 S7-1500与S7-300/400基于ISO-on-TCP的开放式 用户通讯【EB】西门子官网 2014.113 齐荣 肖维荣 可编程序控制器技术【M】.北京:电子工业出版社,2009.1162研究