1.如何在C盘目录下注册OPCenum的执行文件,
1、如果C:\Program Files\Intel\MpI-RT\4.0.0.012\ia32\bin\wmpiregister是路径的话,请在后面增加"\可执行文件名";
2、文件名、路径中有空格时,需要用引号括起来。因为在命令行中,空格表示命令完成,后面跟的就是参数了。
所以,你应当输入”C:\Program Files\Intel\MpI-RT\4.0.0.012\ia32\bin\wmpiregister\XXXXX.exe“,才能正常执行。
2.windows server 2008 opc enum在哪
一.准备工作:下载opc基金会的OPC Proxy DLL然后按照说明进行安装。
这些动态库是opc程序运行所必须的。1. 将下列文件拷贝至要运行OPC服务器和OPC客户端的机器上的SYSTEM32目录下copy opcproxy.dll C:\WINDOWS\system32copy opccomn_ps.dll C:\WINDOWS\system32copy opc_aeps.dll C:\WINDOWS\system32copy opchda_ps.dll C:\WINDOWS\system32copy aprxdist.exe C:\WINDOWS\system32copy opcenum.exe C:\WINDOWS\system322. 注册这些 dll 文件REGSVR32 opcproxy.dllREGSVR32 opccomn_ps.dllREGSVR32 opc_aeps.dllREGSVR32 opchda_ps.dll3. 如果在windows 系统(\WINDOWS \system32)目下不存在actxprxy.dll,运行aprxdist.exe4. 安装 opcenum.exeopcenum /regserver二.opcserver开发1. 新建vc工程。
比如建一个控制台工程。在工程中包含如下头文件#include "opcda.h"#include "opc_ae.h"#include "WTOPCsvrAPI.h"#include "WtOPCsvrEXTapi.h"以上头文件在例子程序中都能找到,拷贝到自己的工程下。
WTOPCsvrAPI.h是开发包动态库提供的导出函数文件。里面有每个函数的具体说明,调用的时候看一下说明。
2. 在.cpp中定义一个GUID这个guid是用来标识opcserver的唯一id可以通过操作系统的工具生成,也可以编一个。格式如下。
const GUIDCLSID_OPCSimSvr = {0x99b8f472, 0xc037, 0x11d2, {0x80, 0xb8, 0x0, 0x60, 0x97, 0x58, 0x58, 0xbe}};3. 在工程中加入对WtOPCSvr动态库的连接。WTOPCsvr动态库的有关文件都在之前的例子包里面能找到。
WTOPCsvr.lib WTOPCsvr.dll是对应lib和dll4. 初始化(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是通过一个回调函数来响应的。
在服务器端必须调用()来指定写值的回调函数。回调函数的格式为:typedef VOID (CALLBACK* WRITENOTIFYPROC)(HANDLE, VARIANT*, DWORD*);然后在回调函数内部实现从HANDLE指定的tag写到具体的控制设备对应的变量中。
8. 其它常用函数RequestDisconnect()一般在opcserver在关闭时调用,用来通知客户端opcserver自己要关闭。()用来计算当前有多少个客户端连接到了()程序退出时清理SetVendorInfo()设置厂商信息三.opc客户端测试下面以本机opcquickclient.exe为例说明服务器和客户端之间的应用关系。
1. 运行opcquickclient.exe2. 点击edit->new server connection 菜单。弹出server properties对话框。
从中展开opc data access server version 2.0.会浏览到本机。
3.怎么更改DCOM配置里opcenum右键属性:安全启动和激活权限的自定
1.按WIN+R组合键,输入regedit,按回车键;
2、展开HKEY_CLASSES_ROOT\AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276} ,鼠标右键选择权限;
3、选择SYSTEM,勾选允许完全控制,点确定;
4、按WIN+X组合键——选择搜索;
5、在搜索栏里输入组件服务,点击组件服务;
6、展开组件服务——计算机——【我的电脑】——DCOM配置,选择RuntimeBroker,鼠标右键选择属性;
7、选择安全选项卡,此时可看到启动和激活权限就变成可编辑状态了,点编辑按钮;
8、选择SYSYTEM,勾选允许本地启动和本地激活,点确定。
4.opcenum 交互式 灰色
XP系统里opcenum的身份标识的交互式无法选择,其为灰色,是设置错误造成的,解决方法如下:
1、首先点击“开始”-“运行”,或者快捷键“win +R”,然后输入“gpedit.msc”,点确定按钮进入本地组策略编辑器。
2、进入编辑器,左侧导航点击用户配置下的“管理模板”,右侧点击“开始菜单和任务栏”。
3、然后找到“删除通知和操作中心”这项,双击该栏。
4、这里的配置,改成“未配置”这以项,选择好之后点击确定按钮即可。
5、然后返回设置窗口,点击“操作中心”按钮,就可以操作打开了。
5.如何配置OPC DCOM
OPC服务器端(XP SP2)设置
*******
secpol.msc
本地安全设置:
本地安全〉安全选项〉帐户:使用空白密码的本地帐户只允许进行控制台登录>;禁用
本地安全〉安全选项〉网络访问:本地帐户的共享和安全模式 属性>;经典-本地用户以自己的身份验证
*******
DCOMCNFG
组件服务设置:
我的电脑>;属性>;默认属性>;默认身份验证级别>;无
>COM安全>;访问权限>;编辑默认值>;添加 everyone(所有权限)
>;编辑限制>;添加 everyone(所有权限)
>;启动和激活权限>;编辑默认值>;添加 everyone(所有权限)
>;编辑限制>;添加 everyone(所有权限)
OpcEnum属性(同样设置OPC软属性)
常规>;身份验证级别>;无
安全>;启动和激活权限>;使用默认值
>;访问权限>;使用默认值
>;配置权限>;自定义>;编辑>;添加 everyoneo
标识>;交互式
*******
防火墙例外设置:
添加例外程序>OpcEnum(C:>WINDOWS>system32>OPCENUM.EXE)
>OPC软件
添加端口>DCOM>135
*******
各种加ANONYMOUS LOGON
6.如何配置OPC DCOM
本文档根据各种不同的情况,讲述如何进行OPC DCOM配置。
对于远程访问OPC服务器,需要在客户和服务器计算机上都进行DCOM设置,以前我们采用的方式是: 客户、服务器都建立一个名字、密码相同的具有管理员权限的帐号,并分别以次登录,在服务器端将OPC服务器的启动方式设为交互式用户。这种方法虽然方便,但安全性较差,不利于在实际应用中推广。
这里提供一些较合理的解决方案。(假定都是在工作组里) (1) 序言 在使用了OPC技术,并有网络数据访问的应用系统中,不可避免地要进行OPC DCOM权限配置。
DCOM配置与windows操作系统的安全体系结合在一起,而各版本的操作系统(9x、NT、2000、XP等)的安全体现又或多或少地有所区别;同时,OPC服务器运行的方式也不尽相同(进程内、进程外、系统服务、有无界面……);而且,不同的应用系统对安全的要求也不同。总之,要想根据具体情况尽量合理地完成OPC DCOM配置并不是一件很轻松的事。
本文档根据各种不同的情况,讲述如何进行OPC DCOM配置。 (2) 准备 要进行DCOM安全配置,操作者通常必须拥有客户和服务器计算机的管理员权限。
【注意】一般情况下,DCOM通信是基于TCP/UDP的,所使用的端口不固定,很可能被一些防火墙软件屏蔽。如果本文下述配置不成功的话,请尝试关闭客户和服务器计算机上的防火墙,或者以带网络连接的安全模式启动系统(这时防火墙软件一般不被自动运行)。
(3) 最简单的情况 如果用户对网络安全基本上没有要求,或者处于客户、服务器程序开发阶段,。
(4) 服务器计算机始终有用户登录的情况(NT/2000) 这也是实际应用中比较常见的情况,但对于以NT服务方式运行的OPC服务器不适合。设置方法如下: Ø 在服务器计算机上建立一个用户,如OPCUser,可以是管理员,也可以是一般用户,服务器计算机在运行OPC服务器时必须以这个用户登录。
Ø 在服务器计算机上建立一个用户组,如OPCClients。 (单一客户情况下可以不建立,建这个组的目的是管理方便) Ø 在各个OPC客户计算机中,分别建立OPCUser用户,口令也要与服务器上的一致,可以设为普通用户以保证安全。
Ø 客户计算机运行时不必以OPCUser登录,比如使用ClientA登录,就要在服务器上建立相同的用户ClientA及相同的密码。并在服务器计算机上将ClientA加入到OPCClients组中。
ClientA在客户和服务器计算机上都可以是普通用户。 Ø 服务器端DCOM配置 运行dcomcnfg,进行如下设置: 默认属性: 启用DCOM; 默认身份验证级别:连接 默认模拟级别:标识 默认安全机制: 默认访问权限: 至少要保证OPCClients组允许访问,也可放宽至Everyone; 默认启动权限:至少保证允许INTERACTIVE用户调用; 默认配置权限:一般情况下不需修改。
默认协议:保证面向连接的TCP/IP在最上,其它可以删除。 具体的服务器配置: 常规:身份验证级别为默认值; 位置:在这台计算机上运行; 安全性:使用默认的访问和启动权限,配置权限不要修改; 身份标识:交互式用户。
终结点:不修改。 OPCEnum程序配置: 在dcomcnfg程序的应用程序列表里找到opcenum.exe,对其按照上面具体服务器的配置进行设置。
Ø 客户计算机的配置: 为了保证OPC数据订阅等回调机制能正常运行,需要对客户计算机的DCOM权限进行配置。 默认属性、默认协议的配置和服务器端基本一致; 默认安全机制只需要修改默认访问权限。
保证允许OPCUser访问。也可放宽至Everyone。
【注意】 在服务器没有用户登录的情况下,远程将无法启动OPC服务器; 对于有用户界面,并需要界面交互的OPC服务器,建议(可能必须)采用这种方式。 (5) OPC服务器为后台程序的情况(NT/2000) 这种情况下,服务器计算机可以没有用户登录。
做为后台程序,OPC服务器有两种运行方式:系统服务(service)方式和普通用户程序。 这里只介绍普通程序方式,系统服务方式的配置说明以后添加。
OPC服务器做为普通方式运行的后台程序,一般没有用户界面。完全可以按照(1)中有界面的方式进行配置,即设置为交互式用户启动。
但是(1)的配置方式限定了服务器计算机必须有用户登录,而且登录用户必须在客户计算机上有DCOM访问权限。所以,无界面的后台OPC服务器可以用另一种更灵活的方式运行。
配置方法:(未明确说明的部分与(1)相同) 在服务器端按照(1)中所述建立一个OPCUser用户,专门用来运行OPC服务器。然后在OPC服务器属性配置中,将启动方式改为指定用户,注意要输入用户密码。
这样,OPC服务器计算机可以用任意用户登录,当客户计算机发出连接请求时,系统负责以OPCUser的身份运行OPC服务器,如果已经运行则使用已有的OPC服务器。 【注意】还有一种启动方式,是“启动”用户。
即系统以发连接请求的用户的身份启动OPC服务器,这可能造成服务器计算机上同时运行多个OPC服务器的实例,显然不妥。所以一般情况下不建议设置为“启动”用户,虽然它是缺省选项。
(6) Windows XP。
7.如何进行OPC客户端和服务器端的DCOM配置
单击开始,单击运行,然后键入 DCOMCNFG。选择要自动运行的应用程序。应用程序名称如下所示:
Microsoft Word 2000/2002/2003 - Microsoft Word 文档
单击属性打开此应用程序的属性对话框。
单击安全性选项卡。验证使用默认的访问权限和使用默认的启动权限已选中。
单击身份标识选项卡。选择指定用户,并键入 一个管理员权限(你的ID) 的用户名和密码。
单击确定,关闭属性对话框并返回主应用程序列表对话框。
在“DCOM 配置”对话框中,单击默认安全机制选项卡。
单击访问权限的编辑默认值。验证访问权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
YOUID---
IUSR_*
IWAM_*
* 这些帐户仅在计算机上安装有 Internet Information Server (IIS) 的情况下才存在。
确保允许每个用户访问,然后单击确定。
单击启动权限的编辑默认值。验证启动权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
YOUID---
IUSR_*
IWAM_*
* 这些帐户仅在计算机上安装有 IIS 的情况下才存在。
确保允许每个用户访问,然后单击确定。
单击确定关闭 DCOMCNFG。
启动 REGEDIT,然后验证对于要自动运行的 Office 应用程序,是否存在下列注册表项和字符串值:
Microsoft Word 97/2000/2002/2003:
注册表项:HKEY_CLASSES_ROOT\AppID\WINWORD.EXE
AppID:{00020906-0000-0000-C000-000000000046}
其实还有其他同类的错误:
Microsoft Access 2000/2002/2003:
是
AppID:{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
Microsoft Access 97:
AppID:{8CC49940-3146-11CF-97A1-00AA00424A9F}
Microsoft Excel 97/2000/2002/2003:
AppID:{00020812-0000-0000-C000-000000000046}
Microsoft Word 97/2000/2002/2003:
AppID:{00020906-0000-0000-C000-000000000046}
改的方法同上面word的。
2)*******************
系统日志中的大量DCOM错误
内容如下:
Access denied attempting to launch a DCOM Server. The server is:
{00020906-0000-0000-C000-000000000046}
The user is Unavailable/Unavailable, SID=Unavailable.
这种错误只有在拨号上网的时候才发生,如果是通过网关上网,则没有这个问题。初步判断应该是不断的遭到攻击造成这个问题。于是用netstat命令检查上网时来自公网的Socket连接,发现1025端口和135端口很可疑。在防火墙中屏蔽了这两个端口后,问题解决。(只屏蔽一个端口似乎不能完全起作用,还会有一部分DCOM错误记录下来,只是频率降低了。)
系统日志中的大量DCOM错误之补充
今天发现还需要屏蔽TCP的445端口才能完全杜绝系统日志中的DCOM错误。
日志文件里出现DCOM错误码是因为我的防火墙的路由器的DMZ指向我的机器。把DMZ一关日志文件马上就没有出现DCOM错误,断定是第二类错误。
转载请注明出处windows之家 » win10如何注册opcenum在哪里