基于OPC通讯的自动仓储监控软件设计

2020-05-30 01:02荆海刚
机电工程技术 2020年4期
关键词:工控机堆垛站点

张 腾,荆海刚

(浙江交工金筑交通建设有限公司,浙江杭州 310051)

0 引言

传统的自动仓储系统通常采用自己的通信协议,而不同的现场设备监控平台难以实现数据共享,不能有效分析数据,以提供全面的决策支持。应用OPC通信技术可以解决异构网络之间的互联问题,为系统中不同类型数据信息提供可靠的共享支持[1]。

OPC(OLE for Office Control)是OLE行业的过程控制标准,由国际组织的OPC基金会管理。它定义了如何使用微软操作系统在计算机之间进行数据的实时交换,旨在开发一种基于微软COM、DCOM和ActiveX技术的互操作接口标准。它还提供了更广泛的自动化控制、系统现场设备和办公室的互操作能力。

本文以自动仓储仿真系统为例,开发了基于OPC通信技术的系统监控软件。为保证监控软件正常运行,需要建立监控软件与PLC[2]控制器程序、现场设备的通讯。监控软件和PLC控制器程序通过OPC通信技术实现互联,采用C#语言开发程序接口,实现监控软件控制功能[3]。

1 硬件系统配置

自动仓储系统的硬件设备包括工控机(IPC)、堆垛机、输送带、提升机、移栽机、货叉、PLC控制柜等设备[4]。工控机用于支持监控软件的安装,堆垛机用来存取货物,货物运输采用输送带和提升机,移栽机是用来切换货物运输线路选择[5]。PLC控制柜包括堆垛机PLC控制柜(从站)和现场设备PLC控制柜(主站)。堆垛机控制柜根据任务控制堆垛机的动作,主要涉及到横向激光测距技术和纵向条码扫描技术,现场设备控制柜用于控制输送带、提升机、货叉等电气设备的工作。控制系统硬件设备框架如图1所示。

图1 控制系统硬件设备架构

2 软件设计

监控软件作为自动仓储系统的核心控制部分,主要完成控制策略的调度、数据处理与计算、信息传输等任务。它包括3个部分:数据库、PLC控制、OPC通信程序接口。数据库作为中间支持部分,主要用于支持PLC控制部分和系统数据处理的软件运行,PLC控制用于调度现场设备的运行,实现数据采集、逻辑操作等任务,OPC通信程序接口包括OPC服务器通信配置和计算机OPC服务器程序接口开发。

根据自动存储系统的要求,将监控软件的设计概括为设备运行调度模块、PLC控制模块、程序接口模块和数据库信息处理4个主要支撑结构的设计。监控软件设计框架如图2所示。

图2 监控软件设计架构

3 OPC程序接口设计

因为程序接口的无缝连接,监控软件控制模块可以有序的执行任务。采用SIMATICNET和STEP7软件搭建OPC服务器平台[6],并使用C#开发OPC服务器接口程序,实现工控机与S7-300PLC的通讯[7],保证监控软件的设计和调试的顺利进行。进而监控软件可以调度现场设备执行任务,并对各执行设备的工作状态进行实时监控。

3.1 OPC通讯配置

为建立OPC服务器与PLC之间的通信,必须配置OPC服务器。本文采用无线以太网实现工控机与PLC之间的通信,详细介绍了OPC服务器配置及其OPC程序接口设计,所需软件为STEP7 PLC软件和SIMATICNET软件,主要硬件设备包括工控机、西门子S7-300PLC、无线AP,配置方法如下。

(1)打开simatic net软件—配置PC站点—添加OPC服务器—创建以太网(1)通信网络—将IP地址设置为192.168.1.105→编译并保存。

(2)打开Step7 PLC软件,新建PLC控制器项目—配置以太网(1)通信网络—设置IP地址192.168.1.102—下载到PLC控制器中。

(3)打开simatic net软件的“站点配置编辑器”—单击“导入站点”—在xdbs文件夹下找到xdb文件—导入,OPC服务器配置完成。

3.2 OPC接口程序

由于PLC是开放的,任何支持S7-300的设备都可以直接读取PLC内的数据。通过配置OPC服务器并使用C#开发OPC服务器程序接口,变量结构由3个级别组成,如图3所示。第一级是OPC服务器类型,服务器类型是opc.simaticNET;第二级是组,包含在服务器内部,将所有相同的变量放入一个组中;第三级是项(item),即一系列变量链接到OPC服务器,对应于PLC的I/Q等。

图3 结构变量

为实现监控软件与PLC的实时通讯与控制,需要开发OPC服务器接口程序。本文利用C#开发接口程序,主要步骤及程序代码如下。

(1)声明变量并列出主要变量

private OpcRcw.Da.IOPCServer ServerObj;

private Object GroupObj=null;

privateint pSvrGroupHandle=0;

private OpcRcw.Da.IOPCSyncIOIOPCSyncObj=null;

(2)创建一个opc服务器并建立到opc服务器的连接。opc服务器由函数public opc server()和函数public bool connect()创建,返回值用于显示连接结果“true”表示连接成功,“false”表示连接失败。

(3)将group添加到opc服务器中。opc服务器group对象由public bool addgroup()函数创建,并用返回值显示结果“false”表示添加的组失败,“true”表示添加的组成功。

(4)向group对象中添加项,即通过public bool add items()函数向服务器的group对象中添加多个项。

(5)数据同步读写程序由public bool syncwrite()和public bool syncread()变量值函数创建。

4 监控软件设计

监控软件作为实时监控客户端,可对自动仓储系统的工作状态进行监控,使操作人员能够以更高的效率对系统进行维护和控制。监控软件界面如图4所示。该软件具有与数据库、PLC、现场设备通讯切换功能、系统故障清除、系统工作模式切换、设备接口初始化等功能。其中初始化设备接口的功能是确保现场设备的准备工作,如输送机接口、堆垛机接口、传送带接口等,以保证监控软件在接到任务后正常执行,设备初始化接口程序代码如下。

privatevoid

tsbInitDevice_Click(objectsender,EventArgs e)

{

if(ds.Tables[0].Rows.Count>0)

{

AddListSystemEvent;

foreach(DataRowrow in ds.Tables[0].Rows)

{

Stacker stk=new Stacker(this, row);

stackers.Add(row.ItemArray[0].ToString(), stk);

frm.Text=string.Format(stackers[row.ItemArray[0].

图4 监控软件操作界面

ToString()].deviceId);this.Controls.Add(stackers

[row.ItemArray[0].ToString()].pic);

stackers[row.ItemArray[0].ToString()].pic.BringToFront();

stackers[row.ItemArray[0].ToString()].pic.DoubleClick=newSystem.EventHandler(this.pic_StackerDoubleClick);

}}

if(ds.Tables[0].Rows.Count>0)

{

AddListSystemEvent();

foreach(DataRowrow in ds.Tables[0].Rows)

{

cr=new Convyer(this, row);

convyers.Add(row.ItemArray[0].ToString(), cr);

图5 堆垛机控制流程

frm.Text=string.Format(convyers[row.ItemArray[0].

ToString()].deviceId);

this.Controls.Add(convyers[row.ItemArray[0].ToString()].

pic); convyers[row.ItemArray[0].ToString()].pic.BringTo-

Front(); convyers[row.ItemArray[0].ToString()].pic.Dou

bleClick +=newSystem.EventHandler(this.pic_ConvyerDouble-

Click);

}}}

监控软件工作时,首先需要连接到数据库和PLC,并初始化现场设备程序接口在线工作,其次需要使用堆垛机控制模块来执行下发的任务。利用监控软件对堆垛机控制模块进行控制,实现对堆垛机的任务下发。在任务执行过程中,可以从监控软件的图像显示区实时监控系统的运行状态,若某个控制模块出现故障,会出现红色提示,以便快速找到故障发生位置并进行清除。堆垛机控制流程如图5所示。

5 数据传输实时分析

基于OPC通信技术,使用C#语言开发了监控软件,为验证系统中数据的实时传输效率,对各通信站点之间的数据传输响应时间进行了测试与分析。

首先,必须正确配置通信站点的IP地址,其次,通过发送不同的数据包来进行数据传输响应时间的采集和分析。选择监控计算机作为数据包发送站点,分别向管理计算机站点、主站点PLC、从站点堆垛机PLC发送不同类型的数据包。如表1所示,从监控计算机到堆垛机PLC的数据传输平均响应时间分别为5 ms和2 ms。结果表明,该系统可以实现站间数据传输。从采集到的响应时间数据来看,自动存储系统在无线网络通信方式下,数据传输响应时间保持在不同通信站点之间15 ms以内,能够满足系统通信要求。

表1 无线网络模式下数据传输实时监测

为进行比较分析,对有线以太网通信模式下的数据传输进行了测试,数据传输响应时间均小于1ms,如表2所示。虽然无线网络通信的响应时间明显大于有线通信,但它仍然能够满足系统通信的要求,大大提高了系统的灵活性和可扩展性。

表2 有限网络模式下数据传输实时监测

需要注意的是,在自动仓储系统传输距离越来越长的情况下,为保证无线网络通信和实时传输的稳定性,可以采用增加无线中继的方式,或者将无线AP安装到更高的位置,同时尽量减少金属货架对无线信号的干扰。

6 结束语

本文研究了工控机与PLC控制器之间的通信方式,并开发了接口程序,阐述了监控软件的功能。OPC通信技术有效地解决了系统内部异构网络之间的互联问题。并使用C#开发了系统监控软件,该软件已成功应用于自动仓储仿真系统。实验表明,异构网络之间的连接是稳定的,监控软件实现了对系统工作状态的实时监控,并能快速定位故障源,提高系统维护效率,为物流仓储系统发展提供借鉴。

猜你喜欢
工控机堆垛站点
定制工控机在老旧线路计算机联锁设备中的应用
Flexsim堆垛机模块优化研究
基于Web站点的SQL注入分析与防范
中压电子束焊工控机Windows NT系统文件丢失故障的修复方法
自动化立体仓库用堆垛机的几种换轨方式及应用案例
积极开展远程教育示范站点评比活动
首届欧洲自行车共享站点协商会召开
怕被人认出
堆垛机能耗的采集和分析
中国工控机市场新Style