载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数据。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)