APP下载

基于C#语言的工业计算机与S7-300的OPC通讯

2011-11-18黄希敏

重型机械 2011年5期
关键词:机架通讯客户端

黄希敏

(陕西教育学院,陕西 西安 710100)

1 前言

OPC(OLE for Process Control)是一种用于工业数据通讯的标准协议,使开发人员能够方便的按照OPC协议编程实现OPC客户端程序与OPC服务器之间的通讯。为了实现工业计算机与S7-300的实时数据通讯,本文以西门子公司的SIMATIC NET作为OPC服务器,使用C#语言编程实现OPC客户端程序与SIMATIC NET OPC服务器之间的数据通讯。

2 SIMATIC NET OPC服务器及连接配置

SIMATIC NET是西门子在工业控制系统提供的一个开放的、多元的通讯系统,可以实现工业现场的PLC、主机、工作站和个人电脑联网通讯。通讯的网络包括了工业以太网、PROFIBUS、PROFIBUS-PA等。SIMATIC NET OPC服务器不但提供了数据访问的接口,同时还提供了报警和事件的接口等多种功能。

为了能够让SIMATIC NET系统正常的工作,必须安装SIMATIC NET软件。网络通讯方式为工业以太网。按照OPC接口的规定,C或C++语言编写的客户机应用程序可以使用自定义接口和自动化接口。其他的编程语言(如VB,Delphi,C#等)编写的客户机应用程序只能使用自动化接口。

2.1 安装软件

工业计算机的操作系统为XP系统,SIMATIC NET软件的版本为SIMATIC.NET 2006,编程环境为Microsoft Visual Studio 2008。当SIMATIC NET软件安装成功后,在桌面上可以看到Station Configuration、SIMATIC Manager等的快捷图标。

2.2 OPC服务器与S7-300连接通讯

首先,打开 SIMATIC NET软件的 Station Configuration Editor窗口进行PC硬件机架的配置,在打开的窗口中依次在第一行和第三行插入OPC Server和IE General,同时还需要对工业计算机的网络进行配置,以保证PC站的IP地址与S7-300的IP地址属于同一IP段。以上操作完成后,点击“Station Name”按钮来给PC指定一个名称,例如:“ethernetOPC”。图1为PC硬件机架的配置界面截图。

图1 PC硬件机架的配置Fig.1 configuration of PC hardware chassis

其次,打开Configuration Console窗口对控制台进行配置。在打开的窗口中首先可以查看到以太网的模式已经从PG mode切换到Configuration mode,然后单击“Access Points”把S7ONLINE的指向选项选为“PC internal(local)”。

最后,打开 SIMATIC Manager窗口,通过“File→New”创建一个新项目,如:“S7300OPC”。通过“Insert→Station→Simatic PC Station”插入一个PC站,并且命名与上述命名的PC站名称相同,本文中即“ethernetOPC”。创建成功后,双击Configuration进入PC Station组态,从硬件目录串口选择与已安装的SIMATIC NET软件版本相符的硬件插入到与上述PC硬件机架对应的位置。双击“Configure Network”进行NetPro配置,选择OPC Server连接表的第一行,通过“Insert→New Connection”来建立一个新的连接,在弹出的连接属性画面中,选择“S7 connection”属性。然后在“S7 connection”属性窗口中按照提示输入S7-300与工业计算机的IP地址,双击“Address Details”设置符合S7-300的机架号0和插槽号2。上述操作完成后,编译无误后保存。

上述步骤完成后,就实现了S7-300与SIMATIC NET OPC服务器的数据通讯,可以通过OPC Scout来检查连接是否正常。图2为OPC Scout的运行界面截图。

图2 OPC Scout的运行界面截图Fig.2 Screenshot of running interface of OPC Scout

图2 中,Item Names项为S7 PLC站的变量地址。例如:S7:[S7 connection_1]DB400,INT44中,S7为协议ID,这是S7协议规定的;[S7 connection_1]为连接名,这是用户定义的OPC连接字符串标识名;DB400为数据块,INT44为变量的类型和地址。OPC Scout要能够正常的访问S7 PLC站的变量地址,必须严格按照上述的变量编址方式。

3 OPC客户端程序的软件实现

本文研究的OPC客户端与SIMATIC NET OPC服务器的数据通讯,实际是为了实现S7-300与工业计算机的数据通讯。在已经配置好的SIMA-TIC NET OPC服务器的基础上,确定了OPC Server名“OPC.SIMATICNET”和采用自动化接口,并且严格按照S7 PLC站的变量编址方式,可以编程实现基于C#编程语言的OPC客户端程序与SIMATIC NET OPC服务器通讯。图3为实现OPC客户端与OPC服务器连接通讯的程序流程图。

(1)添加引用。OpcRcw.DA和OpcRcw.Comn是西门子提供的关于OPC通讯的两个动态链接库文件。在C#编程环境中引用这两个文件,调用这两个动态连接库中的接口函数。

图3 OPC客户端与OPC服务器通讯程序流程图Fig.3 Flow chart of communication between OPC client and OPC server

using OpcRcw.Comn;

using OpcRcw.Da;

(2)定义OPC相关变量。在进行与OPC服务器的连接之前,首先要定义OPC相关的变量,其中包括:OPC的服务器名,OPC服务器的对象名等。

internal const string SERVER_ NAME =“OPC.SIMATICNET“;//OPC服务器名

private IOPCServer pIOPCServer;//定义OPCServer对象

(3)实现与OPC服务器的连接。public bool ConnectServer(string node_name,out string error),其中node_name为OPC服务器的计算机名称,连接过程中的错误信息捕捉给error输出。函数返回true和false,分别代表成功和失败。具体的步骤:创建服务器对象创建OPC组对象-向组对象中添加多项OPC客户端读写操作。

(4)创建服务器对象。pIOPCServer=(IOPCServer)System.Activator.CreateInstance(svr-Componenttyp)

(5)创建OPC组对象。public bool AddGroup(string groupName,int bActive,int updateRate,out string error),其中groupName为创建组对象的组名,bActive为组的激活状态,updateRate为组的刷新频率,创建组对象过程中的错误信息捕捉给error输出。函数返回true和false,分别代表成功和失败。

(6)向组对象中添加多项。public bool AddItems(string[]itemsName,int[]itemsID,out string error),其中itemsName为要添加的项的名称,是一个字符串数组,itemsID为与字符串数组相对应的序号数组。添加项对象过程中的错误信息捕捉给error输出。函数返回true和false,分别代表成功和失败。

(7)OPC客户端读写操作。OPC客户端进行读写操作之前,首先要根据通讯方式是同步还是异步,从而实例化指针IOPCSyncIO/IOPCAsyncIO接口。本文的OPC客户端通讯采用同步方式。

实际应用过程中,IOPCSyncIO接口分别提供了读、写的方法,即 IOPCSyncIO.READ和IOPCSyncIO.WRITE。

(8)断开与OPC服务器的连接。public bool Close(out string error),其中,断开连接过程中的错误信息捕捉给error输出。函数返回true和false,分别代表成功和失败。在程序断开与OPC服务器的连接之前,必须先删除已经创建的OPC对象并且释放内存。

上述利用C#编程语言实现OPC客户端程序与SIMATIC NET OPC服务器的数据通讯,在OPC通讯客户端系统界面上实时显示了数据的读写情况。图4为OPC通讯客户端运行界面截图。

图4 OPC通讯客户端程序运行界面Fig.4 program running interface for client of OPC communication

4 结束语

以SIMATIC NET OPC为服务器,S7-300与SIMATIC NET OPC服务器连接配置,采用C#计算机编程语言实现了OPC客户端程序与OPC服务器的数据读写操作。通过多次的应用测试证明,OPC客户端程序运行可靠,操作简单,符合现场对实时监控的要求。

[1] Christian Nagel Bill Evjen Jay Glynn著,李铭译.C#高级编程(6版)[M].北京:清华大学出版社,2008,11.

[2] 罗斌,罗顺文.Visual C#2005编程技巧大全[M].北京:中国水利水电出版,2007.

[3] 蒋秀凤,何凤英.Oracle 9i数据库管理教程[M].北京:清华大学出版社,2005.

[4] 滕永昌.Oracle 9i数据库管理员使用大全[M].北京:清华大学出版社,2004.

[5] 阳宪惠.工业数据通讯与控制网络[M].北京:清华大学出版社,2003.

猜你喜欢

机架通讯客户端
《茶叶通讯》简介
《茶叶通讯》简介
通讯报道
别忽略它的存在!“意大利新一代架皇”BAS Accordeon(雅歌顿)XL4 2.0发烧机架
如何看待传统媒体新闻客户端的“断舍离”?
冷轧轧机动态变规格控制及应用研究
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
最多支持36块显卡 德国水冷品牌AlphaCool推出矿机机架