你现在位置:首页>技术论文>软件知识>正文
OPC Client 动态连接库开发和应用
日期:2010-8-28 20:33:00 点击:
来源:本站整理
作者:
点击【】放大字体.
WWW_P※LCJS_COM-PLC-)技.术_网

一、引言
W1WW_P4LCJS_COM-PLC-技.术_网

现在有很多工业控制产品都支持OPC Server,如西门子SIMATIC NET、WINCC、WINAC、Protool/pro,亚控公司组态王等,这些产品本身在一些需要实现很复杂的数据模型功能上还显得不足,由于支持了OPC,我们就可以在VB或C 上通过OPC获取数据进而实现较复杂的功能(如强大的数据库管理或数据分析)。本文讨论了如何在VB中开发一个动态连接库,以方便开发者实现对OPC服务器的数据采集,将精力更多的放在界面开发和数据处理上。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

二、功能设计
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

类型设计为ActiveX Dll,名称:OPC_Dll.dll,可以在VB工程[引用]中加载,加载后通过创建类BCA_OPC的实例来实现OPC数据通讯,BCA_OPC的调用功能如下:
W1WW_P4LCJS_COM-PLC-技.术_网

1、配置初始化:Dll_Initial(strConfigFile As String) As Boolean
WW.W_PLC※JS_C,OM-PL,C-技.术_网

其中strConfigFile为连接OPC服务器对应的配置文件名称(*.ini),用户建立的配置文件应遵循一定的格式(在下面应用中说明),并且应放在系统目录下(如C:\WINNT下)。配置文件中包含了要连接的OPC服务器名称、log文件名称、变量组定义及对应组内的变量定义(本连接库最多支持1024个变量通讯,对变量组的数目没有限制)。配置成功返回TRUE。
WWW_PLCJS@_COM%-PLC-技.术_网

2、连接OPC服务器:ConnectServer(Optional IPAddress As String) As Boolean
WWW_PLCJS_COM-PLC-技.术_网

IPAddress为可选的远程OPC服务器所属PC的IP地址,如“192.168.0.1”,如果不提供IPAddress参数,则默认为本机OPC服务器。连接成功返回TRUE。
WWcW_PLCJS_COM-PLC-技.术_网

3、配置通讯变量(组态OPC客户机):SetConfiguration() As Boolean
WWcW_PLCJS_COM-PLC-技.术_网

根据提供的ini配置文件组态OPC客户机与服务器的变量通讯,组态成功返回TRUE。
WWW.PLCJS.COM——可编程控制器技术门户

4、读变量数据:GetData(ItemName As String)
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

ItemName为变量名称,必须与ini配置文件中的变量名称一致。本功能返回该变量的实际数据。
WWcW_PLCJS_COM-PLC-技.术_网

5、写变量数据:WriteData(ItemName As String, ItemWriteData As Variant)
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

ItemName为变量名称,ItemWriteData为变量数据。
plcjs.技.术_网

三、实现代码
WWW_PL※CJS_COM-PLC-技.术_网

1、在VB6.0中新建ActiveX Dll工程,如下图:
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

WWW_PL※CJS_COM-PLC-技.术_网

2、在工程菜单中添加引用,如下图:
plcjs.技.术_网

WWW.PLCJS.COM——可编程控制器技术门户

如果系统中没有OPC Automation,你需要安装注册OPC自动化。一般装了OPC支持的软件,系统都支持OPC自动化。
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

3、在工程中添加模块,如下图:
WWcW_PLCJS_COM-PLC-技.术_网

WWW_PL※CJS_COM-PLC-技.术_网

模块API_Function为软件所需的一些API函数。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

模块Global_constants为一些系统常量
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

类模块BCA_OPC为实现主类
WWW_P※LCJS_COM-PLC-)技.术_网

类模块ItemInfo和ItemsInfo实现变量信息的封装
P.L.C.技.术.网——可编程控制器技术门户

4、以下为各模块的程序代码:
WWcW_PLCJS_COM-PLC-技.术_网

API_Function:
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

Option Explicit
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

----------------------------------
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

获取一个与给定初始化文件指定域中的一个键相联系的整数值(1)
——可——编——程——控-制-器-技——术——门——户

Public Declare Function GetPrivateProfileInt Lib kernel32 Alias _
WW.W_PLCJS_COM-PLC-技.术_网

        GetPrivateProfileIntA (ByVal lpApplicationName As String, ByVal lpKeyName As String, _
W1WW_P4LCJS_COM-PLC-技.术_网

        ByVal nDefault As Long, ByVal lpFileName As String) As Long
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

从一个初始化文件中获取指定段的所有键和值(2)
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

Public Declare Function GetPrivateProfileSection Lib kernel32 Alias _
——可——编——程——控-制-器-技——术——门——户

        GetPrivateProfileSectionA (ByVal lpAppName As String, ByVal lpReturnedString As String, _
WWW_PLC※JS_COM-PmLC-技.术_网

        ByVal nSize As Long, ByVal lpFileName As String) As Long
WW.W_PLCJS_COM-PLC-技.术_网

获取初始化文件中的制定断下的一个字符串(3)
WWW_P※LCJS_CO※M-PLC-技-.术_网

Public Declare Function GetPrivateProfileString Lib kernel32 Alias _
plcjs.技.术_网

        GetPrivateProfileStringA (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
WWcW_PLCJS_COM-PLC-技.术_网

        ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, _
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

        ByVal lpFileName As String) As Long
WWW.PLCJS.COM——可编程控制器技术门户

Global_constants:
plcjs.技.术_网

Option Explicit
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

Option Base 1
W1WW_P4LCJS_COM-PLC-技.术_网

Global constrants
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

------------------------------
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

Global Const English = &H409
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

Global Const OPC_DS_CACHE = 1
WWW_PLCJS_COM-PLC-技.术_网

Global Const OPC_DS_DEVICE = 2
WWcW_PLCJS_COM-PLC-技.术_网

BCA_OPC:
WWW_PLC※JS_COM-PmLC-技.术_网

Option Explicit
W1WW_P4LCJS_COM-PLC-技.术_网

Option Base 1
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

Interface Objects 接口对象
WW.W_PLC※JS_C,OM-PL,C-技.术_网

----------------------------------------------------------------------------
WW.W_PLC※JS_C,OM-PL,C-技.术_网

必须使用WithEvents来申明对象OPCServer和OPCGroup,
WWW_P※LCJS_COM-PLC-)技.术_网

WithEvents指定申明的对象用于处理对象的事件
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

Dim WithEvents ServerObj As OPCServer       定义OPCServer
WWW_PLCJS_COM-PLC-技.术_网

Dim GroupObj As OPCGroup                    定义OPCGroup
WWW_PLCJS@_COM%-PLC-技.术_网

Dim WithEvents GroupCollection As OPCGroups 定义OPCGroups

本新闻共10页,当前在第11 2  3  4  5  6  7  8  9  10  
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

上一篇: GIS系统与组态软件的强强联合
下一: 没有了
评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行