求教2012的NI OPC Sever如何配置

求教2012的NI OPC Sever如何配置,第1张

.准备工作:

载opc基金OPC Proxy DLL按照说明进行安装些态库opc程序运行所必须

1. 列文件拷贝至要运行OPC服务器OPC客户端机器SYSTEM32目录

copy opcproxy.dll C:\WINDOWS\system32

copy opccomn_ps.dll C:\WINDOWS\system32

copy opc_aeps.dll C:\WINDOWS\system32

copy opchda_ps.dll C:\WINDOWS\system32

copy aprxdist.exe C:\WINDOWS\system32

copy opcenum.exe C:\WINDOWS\system32

2. 注册些 dll 文件

REGSVR32 opcproxy.dll

REGSVR32 opccomn_ps.dll

REGSVR32 opc_aeps.dll

REGSVR32 opchda_ps.dll

3. windows 系统(\WINDOWS \system32)目存actxprxy.dll运行aprxdist.exe

4. 安装 opcenum.exe

opcenum /regserver

二.opcserver发

1. 新建vc工程比建控制台工程工程包含文件

#include "opcda.h"

#include "opc_ae.h"

#include "WTOPCsvrAPI.h"

#include "WtOPCsvrEXTapi.h"

文件例程序都能找拷贝自工程

WTOPCsvrAPI.h发包态库提供导函数文件面每函数具体说明调用候看说明

2. .cpp定义GUIDguid用标识opcserver唯id通操作系统工具编格式

const GUID

CLSID_OPCSimSvr = {0x99b8f472, 0xc037, 0x11d2, {0x80, 0xb8, 0x0, 0x60, 0x97, 0x58, 0x58, 0xbe}}

3. 工程加入WtOPCSvr态库连接

WTOPCsvr态库关文件都前例包面能找

WTOPCsvr.lib WTOPCsvr.dll应libdll

4. 初始化

(1)调用UpdateRegistry()函数完注册面调用参考例代码

BOOL COPCSimSvrApp::InitInstance()

{

TCHAR szTokens[] = _T("-/ ")

CString HelpPath

CString SvrName, SvrDescrip

int i

HelpPath = AfxGetApp()->m_pszHelpFilePath

i = HelpPath.ReverseFind('\\')

HelpPath = HelpPath.Left(i+1)

HelpPath += "OPCSIMSVR.EXE"

//

// Self-Registration code

// (look for cmdline options to register &unregister server)

//

SvrName = "WinTECH.OPCServer"

SvrDescrip = "WinTECH Software OPC Server Simulator"

CString tempCmdLine(m_lpCmdLine)

LPTSTR lpszToken = _tcstok(tempCmdLine.GetBuffer(1), szTokens)

while (lpszToken != NULL)

{

if (_tcsicmp(lpszToken, _T("UnregServer"))==0)

{

UnregisterServer ((BYTE *)&CLSID_OPCSimSvr, SvrName)

return (FALSE)

}

else if (_tcsicmp(lpszToken, _T("RegServer"))==0)

{

UpdateRegistry ((BYTE *)&CLSID_OPCSimSvr,

SvrName,

SvrDescrip,

HelpPath)

return (FALSE)

}

lpszToken = _tcstok(NULL, szTokens)

}

(2)调用InitWTOPCsvr完发包dll初始化

两步骤颠倒

5. 创建item

item服务器所item些item通opc库户端能浏览创建item函数CreateTag().

Opc两种址空间形式:扁平层结构

比调用创建点item1、item2、item3.类结构扁平各点类似与文件系统文件

比调用创建点test.item1、test.item2、test.item3种点名发包自形层点结构Test类似与文件系统文件夹item类似与文件系统文件夹文件扁平式层结构客户端浏览点名体现

层结构点名间默认用.隔简单我opcserver设计扁平结构

创建点返handle用标识点我程序需要自建立handle数据库保存设备实值应关系部参考例代码

6. 建立定器采集设备数据

定数据库取各handle应item值比较各item值否读取值变化变化调用UpdateTagToList放入应队列发包自变化值送客户端

致流程

(1) 数据库采集遍所点实值

(2) 调用StartUpdateTags()

(3) 循环读取每item数据库数据读取进行比较变化调用UpdateTagToList()

(4) 用调用EndUpdateTags()完所item更新

7. 客户端控制

客户端写tag值候opcserver通调函数响应

服务器端必须调用EnableWriteNotification()指定写值调函数调函数格式:

typedef VOID (CALLBACK* WRITENOTIFYPROC)(HANDLE, VARIANT*, DWORD*)

调函数内部实现HANDLE指定tag写具体控制设备应变量

8. 其用函数

RequestDisconnect()般opcserver关闭调用用通知客户端opcserver自要关闭

NumbrClientConnections()用计算前少客户端连接opcserver

UninitWTOPCsvr()程序退清理

SetVendorInfo()设置厂商信息

三.opc客户端测试

面本机opcquickclient.exe例说明服务器客户端间应用关系

1. 运行opcquickclient.exe

2. 点击edit->new server connection 菜单弹server properties框展opc data access server version 2.0.浏览本机安装所opcserver选我自发opcserver点击确定完与服务器连接

3. 点击edit->new group 用默认值添加组

4. 点击edit->new item 弹框(图层结构址空间例单层更简单)选左侧某父节点右侧显示各tag选要向opcserver查询tag点击add leaves点击ok

5. 客户端主界面能看刚才要查询tag自跟随opcserver端数据变化变换

6. 右键要控制tag菜单选择同步写或者异步写(般建议用异步避免阻塞客户端运行)键入要写入值查看设备否作检验opcserver否编写确

使用NI OPC服务器查看现有的PLC标签

1. 选择开始》程序》National Instruments》NI OPCServers》NI OPCServers,启动NI OPC服务器。使用NI OPC服务器,您可以创建、配置、查看与PLC关联的标签。

2. NI OPC服务器需要与已经载入的PLC仿真工程一起启动。这个工程仿真在NI OPC服务器中已经建立配置的PLC。

说明:如果没有载入仿真工程,在NI OPC服务器中选择文件》打开,浏览C:\Program Files\National Instruments\Shared\NI OPC Servers\Projects\simdemo.opf。工程如图1所示。

图1:显示仿真PLC的NI OPC服务器

展开Channel_0_User_Defined,选择Sine,查看正弦标签。标签在最右边的窗口中显示。这些标签被绑定到PLC的寄存器上,由LabVIEW读取。

通过PLC OPC标签查看数据。

1. 在NI OPC服务器中,选择Tools»Launch OPC Quick Client。这样可以启动OPC快速客户端,您可以用来查看OPC标签数据。

2. 展开National Instruments.NIOPCServers文件夹,选择Channel_0_User_Defined.Sine。这样可以选定需要监视的设备。

3. 请注意所有的正弦标签都列出在右边的窗口中,且如图2所示正在更新显示仿真正弦数据。

图2:NI OPC快速客户端显示仿真正弦OPC标签

说明:要获取NI OPC支持的设备/驱动程序列表,请访问ni.com/opc。

通过创建I/O服务器将LabVIEW连接到OPC标签

在本小节中,将创建OPC标签的LabVIEW接口,称为I/O服务器。I/O服务器以您指定的速率,用当前标签数值更新LabVIEW。

1. 在LabVIEW的使用入门窗口中,点击文件》新建项目。这将打开新建LabVIEW项目。

2. 如果即时帮助窗口不可见,按Ctrl+H键显示窗口。保持窗口打开,可以得到鼠标指针所指向对象的帮助信息。

3. 在LabVIEW项目浏览器窗口中,右键点击我的电脑,选择新建》I/O服务器,如图3所示。

图3:通过LabVIEW项目新建I/O服务器

4. 在新建I/O服务器窗口中选择OPC客户端,点击继续。

5. 仍已注册OPC服务器框中选择National Instruments.NIOPCServers,设置更新速率(ms)为100。这将创建LabVIEW与OPC标签的连接,每隔100 ms更新。

Figure 4. Configuring the OPC Client I/O Server

6. 选择确定。在您的项目浏览器窗口中自动创建了库,用于管理I/O服务器。

7. 仍项目浏览器窗口中选择文件》保存所有,将项目保存为OPCDemoProject,将库保存为OPCDemoLibrary。

创建通过I/O服务器连接到OPC标签的共享变量

在本小节中,将创建绑定到OPC标签上的共享变量,仍而可以在LabVIEW中本地访问PLC数据。使用共享变量,您可以在一台计算机或是网络中,在多个LabVIEW应用程序间共享数据。

创建绑定到PLC OPC标签上的新共享变量。

在LabVIEW项目窗口中,右击我的电脑,选择新建》库。这样可以为共享变量建立一个新库,用于连接到PLC的OPC标签。

右击新建的库,选择创建绑定变量……

在创建绑定变量窗口中,选择OPC标签,通过浏览来自OPC服务器的仿真正弦数据,选择共享变量所需绑定的OPC标签,如图5所示。

图5:选择需要绑定到共享变量的OPC标签

4. 选择所有正弦项目,点击添加确定。这样就创建了绑定到PLC OPC标签上的共享变量,将它们载入到多变量编辑器中。

5. 在多变量编辑器中,选择完成。这将把新的共享变量添加到前所建立的库中。

说明:LabVIEW DSC模块通过为数据库直接添加记录数据、报警和事件的功能,在无需编写LabVIEW应用程序的情冴下,增强了共享变量。

通过右击库,选择另存为,将新库以OPCItem.lvlib为文件名保存在项目浏览器窗口中。

通过右击OPCItems库,选择部署,对共享变量部署。这样就可以収布共享变量,使它们可以在网络上通过其他计算机、OPC客户端和LabVIEW实时自动化控制器(PAC)使用。

您现在可以通过共享变量在LabVIEW中本地访问PLC数据。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/358835.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存