你现在位置:首页>技术论文>软件知识>正文
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









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
深圳秦合源科技有限公司 
   深圳市秦合源科技有限公司是国内领先的规模较大品种齐全的称重传感器(Loadce......
广州汇巨自动化设备有限公司 
   广州汇巨自动化设备有限公司是一家专业工业自动化产品和自动化设备开发、维修改造、电......
深圳联脉电子有限公司 
   公司自1998年创立以来,一直致力于工业控制产品的研发、制造、销售,目前有机房监......
北京力天昭阳科技发展有限公司 
   北京力天昭阳科技发展有限公司(PekingPowerSkyScience&......
东莞市友诚自动化 
   本公司专业代理台湾永宏、台达PLC、HITECH人机、特价供应文本显示器MD20......
深圳市爱威轮实业有限公司 
   爱威轮实业对广大用户的技术支持与服务,贯穿于与客户接触的每一个环节中,渗透在每一......
·栏目热门排行
·站内热门排行
载入中。。
报告错误·关于我们· 用户帮助· 联系我们 · 友情链接· 本站服务 · 合作伙伴 · 版权声明· 招聘信息 · 投搞指南

迅闻自动化工程部声明如下:
旗下网站:PLC技术网(www.plcjs.com)-可编程控制器技术门户
网站备案号:粤ICP备17165530号
网站法律顾问:ITLAW-庄毅雄律师
法律保护:PLC技术网,迅闻电子,plcjs.com,plcjs.net,plcjs.cn等字样

Copyright 2010-2015. All rights reserved. 

51La