棒材生产线二级系统与一级PLC之间通信的实现
2017-12-02张玉军
张玉军
摘 要 简要介绍客户机/服务器模式和Socket编程接口的基本原理。结合棒材的生产实践及工业生产的要求,通过TCP/IP协议,采用Socket通信方式,运用Client/Server模式进行一级与二级之间的通信连接。
关键词 棒材生产线;客户机/服务器;Socket;PLC
中图分类号:G712 文献标识码:B
文章编号:1671-489X(2017)10-0046-02
Implementation of Communication between Level two and Level
one PLC of Bar Line//ZHANG Yujun
Abstract Client/Server model and Socket programming interface are
introduced briefly. Combining with the production practice and the
requirement of industrial production of Bar Line, level two commu-nicates with level one by TCP/IP, Socket and Client/Server model.
Key words bar line; Client/Server; Socket; PLC
1 引言
以前,二级过程控制系统(L2)在国内现有的棒材生产线中少有应用,这使企业在生产过程控制和优化管理上有着很大的制约性。随着科学技术的蓬勃发展和市场强大的竞争需求,生产中缺少二级过程控制系统会对今后企业全面提升现代管理水平和综合竞争能力带来很多功能缺失。因此,为了高水平地组织生产过程和保证产品质量,现在新的棒材生产线都增加了二级过程控制系統。
某钢厂棒材生产二级过程控制系统与一级基础自动化通过TCP/IP协议,采用Socket通信方式,运用Client/Server模式进行通信连接。L2与L1通信的数据按照报文的格式交换数据,通过调用不同的进程实现系统功能。
2 客户机/服务器模式
在TCP/IP网络中,两个进程间相互作用的主机模式是客户机/服务器模式(Client/Server model),即客户机向服务器发出请求,服务器接收到请求后,提供相应服务。客户机/服务器模式在操作过程中采取的是主动请示方式,具体步骤如下。
首先,服务器方要先启动,并根据请示提供相应服务,具体过程如下所示:
1)打开一通信通道并告知本地主机,它愿意在某个公认地址上接收客户请求;
2)等待客户请求到达该端口;
3)接收到重复服务请求,处理该请求并发送应答信号;
4)返回2),等待另一个客户请求;
5)关闭服务器。
客户方的主要操作步骤如下所示:
1)打开一通信通道,并连接到服务器所在主机的特定端口;
2)向服务器发送服务请求报文,等待并接收应答,继续提出请求;
3)请求结束后关闭通信通道并终止。
某钢厂棒材生产线系统中,二级计算机为服务器,一级PLC为客户端。
3 Socket编程接口的实现原理
Socket也被称作“套接字”,是支持TCP/IP协议的网络通信的编程接口。由于TCP/IP协议的核心部分是传输层协议(TCP、UDP)、网络层协议(IP)和物理接口层,这三层在操作系统内核实现。网络应用编程需要通过核外的应用程序才能实现,这里使用Socket编程接口来实现。网络编程接口Socket是上层应用程序访问网络的界面,与设计员直接打交道的是编程接口,而不是TCP/IP的核心程序。Socket与TCP/IP协议的关系如图1所示。
应用程序通过Socket向网络发出请求或者应答网络请求。Socket规定,通信的响应方是服务器端,即服务器端的动作是监听以及被动接受客户端的连接请求;通信的请求方是客户端,即客户端主动地与服务器端建立连接。
Socket通信的工作过程中,必须首先启动服务器端来建立一个Socket对象,使该Socket对象和本地网络地址绑定到一起,然后使该Socket对象处于侦听状态。
Socket编程接口包含进行网络通信必需的五种信息:连接使用的协议、本地主机的IP地址、本地进程的协议端口、远端主机的IP地址、远端进程的协议端口。
4 一级PLC硬件配置及软件编程
某钢厂棒材线一级基础自动化控制系统采用西门子S7-400 PLC控制,整个生产区域分为炉区、粗中轧区、精轧区、冷床精整区四个区域,每套PLC控制一个生产区域。
PLC系统采用以太网模块CP443-1与L2进行通信,并且CP443-1支持Socket协议。一级PLC硬件配置如下:
1)PS 407 10A;
2)CPU 416-2DP;
3)CP 443-1;
4)DI模块;
5)DO模块。
一级PLC程序使用西门子的Step7 V5.4进行编程,当一级PLC的CPU与其他站通过以太网通信时,在网络配置中为CPU新建TCP connection,将本地和远程按指定的IP地址以及端口号填写。如果是一级PLC发送数据,那么需要在新建TCP connection时,选择激活连接(Active con-
nection establishment)。如果是一级PLC等待接收数据,则不需要选择激活连接,如图2所示。endprint
网络配置完成后,当采用Socket编程接口访问PLC时,使用功能块FC50(AG_LSEND)和FC60(AG_LRECV)分别对数据进行发送和接收。FC50功能块将对应的DB数据块中的数据发送给二级计算机,FC60功能块将接收到二级计算机的数据存至相应的DB数据块中。
5 二级与一级之间的数据通信
某钢厂棒材线L2与L1之间的数据通信通过以太网,采用TCP/IP协议和Socket接口进行数据交换,通信的数据采用报文形式。它们之间有两个线程,一个是从L1到L2的,另一个是从L2到L1的。L2接收L1数据时,通过指定的端口号,使用SocketServer接口与一级PLC建立通信连接。L2向L1发送数据时,SocketClient通过指定的端口向一级PLC发出连接请求。
L1发送数据给L2 L1给L2发送的报文分实时发送和事件发送两类报文。这里说的实时发送即不管L1数据信号有无变化,都按L1设定的扫描时间将实际数据发送出去,如现场采集的热检信号等实际值数据为实时发送。事件发送即只有信号与之前信号状态发生变化才会发送,如飞剪事故剪切信号、轧机状态信号等数据为按事件发送。要发送的报文依次排队且按事件报文触发优先原则,由FC50功能块经过指定的端口和IP地址发送给L2。这样,PLC每次只能发送一个报文给L2。
根据棒材二级系统的实际需求,L1传送给L2的报文包括:
1)实时发送报文:①实际值报文;②物料跟踪报文。
2)事件发送报文:①剪切报文;②轧机状态报文;③炉区报文。
当L2接收L1数据时,L2服务器使用SocketServer进程监听指定的端口,等待L1连接请求;L1连接后,会话产
生;在完成会话后,关闭连接。L2接收到L1的报文后,根据接收报文中的报文ID号,通过对应的进程对数据进行处理,将数据存储至数据库。
L2发送数据给L1 二级过程控制系统通过计算模型将工作辊辊径以及机架轧制速度的设定值算出。当L2發送预设定数据给L1时,L2使用SocketClient进程对一级PLC的指定端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。L2由操作工在L2画面手动触发向L1发送必要的预设定数据。L1接收到L2发送的报文后,给L2发送回馈报文,告知L2已收到预设定数据报文。
6 结束语
某钢厂棒材线二级系统与一级PLC之间采用Socket编程接口进行通信,相互之间数据通信的响应时间快、可靠性高,使得棒材生产线在实际生产中提高了生产效率,运用二级系统使产品质量大大提高。
参考文献
[1]钱能.C++程序设计教程[M].北京:清华大学出版社,
1999.
[2]曾宪权.Visual C++.NET程序设计实用教程[M].北京:清华大学出版社,2009.endprint