OPC:客户端开发——应用WTclient.dll使用手册部分中文版

本文档介绍了WinTECH的WTclient.dll,它是一个用于简化OPC Server集成的快速客户端开发库。DLL处理了所有COM和OPC细节,使应用能轻松获取服务器数据。内容涵盖DCOM初始化、获取服务器列表、建立连接、读写标签值以及警报和事件的订阅和管理。开发者需参考OPC基金会的规范,并使用提供的API和回调函数进行交互。
摘要由CSDN通过智能技术生成

WinTECH软件快速客户端开发DLL(WTclient),提供了一种应用API方便地将定制应用和任何OPC Server相结合的方式。所有COM和OPC的细节均由DLL来处理,这使得一个应用可以轻松的从服务器获取数据点,而不用关心接口后的实际完成过程。 这些DLL可以方便和已有的或者新的应用相结合。其中提供了面向OPC1.0和OPC2.0数据访问标准所需的全部OPC接口,同时也提供了浏览接口和连 接到简单警报/事件服务器的支持。

这个用户指导应该被当作一本OPC数据访问和OPC警报/事件规范手册文档使用,其中的所有资料都可在OPC主网站http://www.opcfoundation.org上找到。

WTclient.lib内有DLL文件中API的出口定义,将这个文件包含到你的定制应用的工程文件中,同时将WTclientAPI.h包 含到会调用DLL的模块中。如果应用Visual Basic进行编程,需要将VBA范例中(随demo提供)的module1.bas包含到你的工程中。

在使用WTclient.dll的之前,需要在代码起始的时候调用一下函数Disable30MinTimer

函数 BOOL Disable30MinTimer (LPCSTR Authorization);
说明

DLL里面有个计时的函数,如果想正常使用dll的功能需要在开始传递一个字符串来调用一个禁用计时的函数,否则30分钟之后停止服务。该dll文件有的导出函数传递也是LPCSTR的,程序调用功能正常,也是采用传递byref 的 byte来进行的。

至于说这个字符串是什么,就要和Dll的厂家公司联系了

 

 

 

 

 

 

 

  1. DCOM初始化——WTclientCoInit、CoUninitialize

函数

WTclientCoInit()、CoUninitialize()

说明

从WTClient.DLL2.0版本开始,初始化DCOM是客户端应用的责任了。2.0版本之前,WTClient.dll在DLLMain 函数中执行DCOM和安全初始化的过程,并在dll下载时调用CoUninitialize函数。由于不同windows dll文件的加载顺序,这会带来一些问题。

这些初始化调用被移动到了一个新的输出函数WTclientCoInit()中,用户的应用可以在主要可执行线程启动的时候调用这个函数。WTclientCoInit()将DCOM初始化为多线程并使用默认安全设定。你的应用可以选择自行初始化DCOM替代 这个输出函数。任何情况下,你的应用都必须在终止时调用CoUninitialize()函数。

  2、获取OPC服务器列表

函数

int NumberOfOPCServers (BOOL UseOPCENUM, LPCSTR MachineName);

说明

OPCENUM是由OPC Foundation提供的一个组件,它允许预期的客户端应用获取本地以及远程可用服务器列表。可惜的是,在写这个组件的时候,OCENUM的操作并没有很好的跨平台一致性。

WTclient.dll允许应用尝试使用OPCENUM组件来获取服务器列表,或者越过OPCENUM组件通过扫描Windows 登记的本地拷贝来获取列表。如果使用了OPCENUM,你可以通过传递远程机器的名称来获取远程服务器列表。

一旦WTclietn.dll返回了服务器的数目,应用就可以通过调用如下所示的函数来对服务器名称列表进行枚举:  

函数

BOOL GetServerName (int index, LPSTR Buffer, int BufSize);

说明

一个由用户提供的字符缓冲区Buffer负责存放传递过来的index标识的服务器列表中某个服务器名字。BufSize标识用户提供的字符缓 冲区的长度,并可以防止dll载入过长的名字。如果Buffer中返回了一个有效的服务器名称,GetServerName函数返回TRUE。

 

还有一个补充函数集允许应用获取可用的警报/事件服务器列表。

函数

int NumberOfOPC_AEServers (LPCSTR MachineName);

BOOL GetOPC_AEServerName (int index, char *pBuf, int BufSize);

3、建立、断开OPC连接

函数

HANDLE ConnectOPC(LPCSTR MachineName, LPCSTR ServerName, BOOL EnableDLLBuffering);

HANDLE ConnectOPC1(LPCSTR MachineName, LPCSTR ServerName, BOOL EnableDLLBuffering);

HANDLE ConnectOPC_AE(LPCSTR MachineName, LPCSTR ServerName);

说明

如果一个由计算机名称和服务器名称定义的和OPC服务器之间的连接可以被建立,则此函数返回一个有效的HANDLE。可以建立和不同的服务器的多个同步连接,此时返回的HANDLE标识了可用于以后创建组和项目的连接。如果传递一个空字符串作为计算机名称参数,标识的是本地计算机。

WTclient会先尝试使用OPC2.0连接点接口进行连接,如果不可用,则会转而采用OPC1.0数据对象接口。

WTclient.dll的基本操作有两种模式。第一种模式用于支持'C-样式'回调函数的应用,在这种情况下,dll中没有缓冲区操作。由于可以从连接的OPC服务器接收到数据更改提示,回调可用于将新的信息传送给控制应用(此处涉及到下面会提及的EnableOPCNotification 函数)。

对于使用不支持回调函数的工具设计的那些应用(例如Visual Basic 5.0),WTclient会被配置为维护一个由应用创建的全部OPC项目(标签)列表的模式。当服务器数据改变时,dll中列表里相关的标签值会被更 新,控制应用可以随时读取标签的值(此处涉及到下面会提及的ReadOPCItem函数)。

ConnectOPC1会总是尝试使用OPC1.0连接。

ConnentOPC_AE会建立一个和OPC警报/事件服务器的连接,此连接由计算机名称和服务器名称指定。

  断开连接的函数:  

函数

void DisconnectOPC(HANDLE hConnect);

void DisconnectOPC_AE(HANDLE hConnect);

说明

当一个应用终止的时候,它会负责从依附的服务器断开连接。

DisconnectOPC(或Disconnect_OPCAE)函数会对hConnect定义的连接执行一个彻底的连接关闭操作。

4、获取服务器标签名列表

函数

int  NumberOfOPCItems(HANDLE hConnect);

BOOL  GetOPCItemName (HANDLE hConnect, int index, char *pBuf, int BufSize);

说明

这两个函数和获取服务器名称列表函数的调用方式类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值