APP下载

西门子PCS7的多PLC之间通信的实现探讨

2023-01-02秦琼

中国设备工程 2022年6期
关键词:工业生产西门子以太网

秦琼

(大庆油田自动化仪表有限公司,黑龙江 大庆 163000)

在工业生产运行中,PLC分散控制多应用于大型而复杂的生产控制系统,而多PLC之间程序通信相互协调与同步、数据以及参数之间共享成了工业生产控制中亟待解决的问题。在工业生产中,PLC之间都是通过工业以太网来进行数据传输,以S7协议来进行数据间的通信和传递,并通过工程师站和中控室的监控软件来对数据信息进行监控与操作。通过现场传感器、现场仪表等数据输入,由中控室操作人员结合数据信息发出指令进行阀门开关和变频器大小调节。本文主要以西门子PCS7软件和工业以太网来实现多PLC之间程序通信及相互协调与同步。

1 通信要求概述

在工业生产中通信模式指的是请求方向被请求方发出请求,被请求方对请求方发出的请求进行响应后按照请求方的指令运行,请求方再根据被请求方提供的数据和参数来进行自身参数的控制,在工业运行中,通过程序描述的方式以及步骤按照请求方的请求启动和停止自身程序,若是有多个程序同时发送请求则需要进行排队处理,整个操作依次进行,如果请求方的要求被响应,则在请求方的操作界面上弹出对话框,提示操作人员程序已经按时启动,如果请求方发出的请求没有被响应(例如由于程序正在运行过程中或是程序基于连锁的原因无法运行)也会在操作界面上提示用户正忙的信息,请求方可以选择等待或是稍后重新发出请求。由于同一时间可能有多个请求发出,控制站会在响应请求后在控制面板上提示哪个程序正在进行。

另外,请求方和被请求方双方的程序之间不但需要对一些重要的程序运行参数和运行状态进行相互传输,还需要相互间的协调以及同步。例如,某企业清罐车间清罐请求清洗的长程序,通过顺序控制程序中的编号来请求启动CIP工作站中罐体清洗程序,并判断该清洗程序运行中还是已经结束,然后进行启动或者停止该程序,其他各工作站也会有类似的请求数据过程。BBT、综合间等多个工作站都可能会请求CIP清洗程序,虽然请求方和被请求方的程序运行在不同的主机和PLC上,且各程序之间也是相互独立的,但是,程序运行开始可能会需要某些必要的手动操作,比如,需要对现场的某些手动阀门进行开启等,并做好相应的准备工作,再由PLC程序进行下步操作。本论文中以企业自动控制系统为例,其控制系统分为发酵、过滤和CIP也就是设备清洗四个主力车间,分别由西门子PCS系列的PLC进行控制,在车间之间通过工业以太网进行数据传输,通过S7协议进行数据通信,本文主要以各工作站请求CIP程序为例来介绍西门子PCS7的多PLC之间通信的具体操作过程。

2 通信网络概述

2.1 网络通信协议

在西门子PCS7的多PLC之间通信程序的实现大都采用标准TCP/IP协议,其在工业生产中广为应用,具有普遍认可性,与OSI的7层协议相比,其层次相对较少,具有底层网络较为透明以及对网络的具体物理实现并不涉及等优点,因而在工业生产中应用较为广泛。在网络IP层的协议主要负责传送和连接互联网中的数据参数,而数据参数在各IP协议中是相互独立存在的,其传输路径以及相关的控制信息和参数都在IP报头中得以表现。IP服务在传输控制层TCP中的主要作用就是为虚拟电路和面向数据流提供服务,同时,可以自主对各种网络BUG进行纠正。

2.2 基于工业以太网的S7通信

基于工业以太网的S7通信可以使用通信SFB/FB模块,该模块与已经组态成功的PCS7相互连接,通过编好的程序进行通信控制。每次作业指令发出后可以传输高达64KB的用户数据信息。而以太网作为“PCS7通信中继器”,可对PCS7进行传输。在工业以太网上,数据传输主要是通过ISO传输或是ISO-ON-TCP协议两种方式进行传输。但是,以用户的视角了来分析,标准总线和工业以太网在PSC7通信实现上几乎完全一致。

3 通信程序实现过程概述

3.1 通信双方的通信数据模块

在被请求方及CIP控制站PLC程序中首先确定了DB880和DB881两个数据模块,CIP运行参数通过BBT进行接收并保存于DB880模块上,而CIP运行参数则通过综合间进行接收并保存于DB881模块上。二者之间的数据结构模式和内部变量定义方式都与DB13模块相同。

如果在通信方的程序中调取数据库中的通信模块GET(从对方读取数据)以及PUT(向对方传送数据)都需要代表远程CPU中的数据块并定义在本地,并且其远程数据模块中与其同名的数据模块在数据结构和内部变量上必须完全一致。此外,还需要定义相应的本地数据模块与前面的数据模块相互对应,也必须保持内部结构以及变量定义完全一样。通过PUT、GET模块将本地程序实际读写的内容写入本地映像数据模块,再将其写入远程CPU数据模块中。在请求方PLC程序中需要定义相应的程序向CIP发出请求,但是,系统只能对其中一个请求进行响应,并只接受来自某个请求方传送出的数据。因此,每个请求方需要分别定义自身的数据模块,并且在本地CPU中编写相应的功能模块来解决模块间的冲突。

3.2 基于PCS7通信程序的数据模块

在请求方的程序中通过使用GET通信模块和PUT通信模块来使得本地读写远程模块与读写本地数据一致。GET的主要功能是将远程CPU数据模块中指定字节数的相关内容,从某个地址读写到本地数据模块中,而PUT的主要功能则与GET恰恰相反,其将某个地址中的本地数据模块中指定字节数的内容写入远程数据模块中。在被请求方的程序中,则不需要向请求方调用系统中的通信数据模块。

3.3 CIP数据通信模块设计

本文以某企业清罐车间举例说明,首先,需要在组织模块中调用PUT和GET模块来实现通信数据模块设计。调用PUT模块把BBT清洗程序写入CIP运行参数中(比如,系统是进行何种模式的清洗以及每次清洗时间),在将得到的参数传输给CIP工作站中的数据模块中。如果分别来自BBT和综合间的数据模块对罐体清洗程序的请求位同时为1时,则需要对排在梯形图中最前方的请求进行响应,把对应模块中的数据写入相应数据模块后,BBT中的清洗程序对其进行循环往复读取其中的变量来进行程序的运行,从而进行整个CIP程序运行状态的判断。

FBI一旦对某个请求进行响应后就需要保持其与请求方之间的数据连接,并不断将请求方传输而来的数据传送到本地数据模块中来进行CIP程序的运行控制。但是,任意一个请求方可以在所有时间和所有情况下通过读取CIP中的数据来对目前程序运行状态和某些重要参数进行判断,FBI等不能限制这些功能模块的数据请求。在BBT程序中,清洗长程序启动时,要启动CIP罐清洗程序,由操作人员在控制面板上选择并填写好清洗参数,通过对CIP罐清洗程序发出请求,这时CIP工作站的CPU上会率先处理排在梯形图最前面的请求,并进行响应,程序运行结束后BBT通过GET得到当前程序已经结束的信息从而做出响应。

3.4 西门子PCS7的多PLC之间程序协调实现的难点

西门子PCS7的多PLC之间程序协调实现的难点主要在于如何使设计同步进行,关键通信信号如何定义能使系统协调控制整个程序的运行;系统运行时发生的请求冲突等问题来如何解决,请求方和被请求方通信方式的选择,以及对整个通信过程中各个模块的动作和状态如何进行完善以保证系统正常运行。PLC相较C++语言对每个通信对象没有较为完善的建模工具和语言,因此,在工业生产中用PLC进行编写程序,对于较为复杂的工业生产流程还应当采取面向对象的分析方法,通过流程图、结构图、交互图等把参与交互的各个元素作为对象进行分析,将复杂、多对象交互通信问题描述清楚、逻辑自洽,以更好地表现设计人员的设计思路,帮助企业实现自动化发展,节约劳动力成本。

4 结语

本文主要介绍了西门子PCS7的多PLC之间程序协调运行以及数据通信等功能的实现,并给出了相应的程序实现方式,经过测试在生产运行中稳定性较高,并且较为完善的满足了工艺需求,取得了良好的生产运行效果,值得在工业生产中广泛推广。

猜你喜欢

工业生产西门子以太网
西门子(中国)有限公司
西门子(中国)有限公司
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代
谈实时以太网EtherCAT技术在变电站自动化中的应用
浅谈西门子LOGO在空调新风机控制系统中的应用
50MW级SGT-800型西门子燃气轮机的性能验证
基于ENC28J60的嵌入式以太网/CAN网关设计