OPCEnum作用OPC常见通讯问题

news2025/1/8 12:19:41

目录

1 OPCEnum作用

1.1 检索server列表

1.2 检索失败原因

1.3 是否可以没有OPCEnum

2 OPC通讯常见问题

2.1 不能浏览OPCServer列表

2.2不能连接远程OPC Server

2.3 数据显示Bad

2.4 OPC通讯错误码


1 OPCEnum作用

你知道OPCEnum有什么用吗?看完本文你就对OPCEnum有了全新的认识。OPC官方说明文档

1.1 检索server列表

我们在用OPCClient进行OPC通讯调试时,可以很方便地获取到本地或远程的OPC Server列表,这归功于OPCEnum的功劳。

http://api1.wangxinzhihui.com:88/upload/0862266f-1df8-11ee/67ad60e5ee2943f40bca.png

下面,我们把OPCEunm禁止掉。

http://api1.wangxinzhihui.com:88/upload/0862266f-1df8-11ee/39de1d6c5675aa77dfaa.png

再点击“Refresh List”,这时,就无法获取到OPCServer列表。

http://api1.wangxinzhihui.com:88/upload/0862266f-1df8-11ee/9a26979d82d3d12e9439.png

通过以上的操作,我们可以看到OPCENUM的作用就是枚举本地或远程服务器上OPC Server列表,最终的目的是获取OPC Server的ProgID,以创建OPCServer对象,实现OPC通讯。

1.2 检索失败原因

下面,我们对不能浏览OPCServer列表的原因进行总结。

1.未发现OPCEnum服务:如果Windows服务列表中未发现OPCEnum服务,可通过以下办法解决:

       1)检查OpcEnum.exe是否在System32目录下,在CMD中执行以下命令

                   C:\Windows\System32\OpcEnum.exe /regserver

       2)检查OpcEnum.exe是否在SysWOW64目录下,则在CMD中执行以下命令

                   C:\Windows\SysWOW64\OpcEnum.exe /regserver

       3)没有发现OpcEnum.exe,安装OPC Core Components Redistributable,可登录网信智汇(wangxinzhihui.com)下载。

       4)安装OPC Server仿真软件,软件包含了OPC DA组件包。如DSxPOpcSimulator、Matrikon OPC Server Simulation。

2.OPCEnum服务被禁止:设置OPCEnum服务为手动或自动状态。

3.匿名访问权限没有设置:需要在Windows COM安全设置中添加匿名访问权限。

http://api1.wangxinzhihui.com:88/upload/0862266f-1df8-11ee/e571eec95f463e8c2027.png

1.3 是否可以没有OPCEnum

  最后1个问题,没有OPCEnum,是否还能进行OPC通讯?答案是肯定的。

      1)通过远程注册表的方式,同样可以获取本地或远程的OPC服务器列表,只是处于安全考虑,Remote Registry服务通常被禁止。

      2)对于Linux系统,既没有OPCEnum,也没有Remote Registry,那么怎么创建OPC通讯?我们知道OPCEnum的目的是获取OPC Server的CLSID,然后转换成ProgID,创建OPCServer对象。所以,我们只要提供OPCServer的CLSID给Linux的OPCClient同样可以实现与OPCServer的通讯。OPCServer的CLSID可以在OPC服务器上注册表里查找。

2 OPC通讯常见问题

2.1 不能浏览OPCServer列表

可能的原因有:

1、未发现OPCEnum服务:如果Windows服务列表中未发现OPCEnum服务,可通过以下办法解决:

       a)检查OpcEnum.exe是否在System32目录下,在CMD中执行以下命令

               C:\Windows\System32\OpcEnum.exe /regserver

       b)检查OpcEnum.exe是否在SysWOW64目录下,则在CMD中执行以下命令

               C:\Windows\SysWOW64\OpcEnum.exe /regserver

       c)没有发现OpcEnum.exe,安装OPC Core Components Redistributable,可登录网信智汇(wangxinzhihui.com)下载。

       d)安装OPC Server仿真软件,软件包含了OPC DA组件包。如DSxPOpcSimulator、Matrikon OPC Server Simulation。

2.OPCEnum服务被禁止:设置OPCEnum服务为手动或自动状态。

3.匿名访问权限没有设置:需要在Windows COM安全设置中添加匿名访问权限。

http://api1.wangxinzhihui.com:88/upload/7a3c3628-1ecb-11ee/8a254e009c28793bdbd5.png

4.OPCClient采用搜索注册表的方式来枚举OPC服务器,则应该启用Remote Registry服务。

5.OPC Server未注册或注册表信息丢失。

2.2不能连接远程OPC Server

   1.显示“RPC服务器不可用”:基本上是网络不通的问题,检查网络、防火墙。

http://api1.wangxinzhihui.com:88/upload/7a3c3628-1ecb-11ee/a14e731f073db17f9e1a.png

   2.显示“CoCreateInstance:系统找不到指定的文件”:检查OPC Server程序文件是否存在。

http://api1.wangxinzhihui.com:88/upload/7a3c3628-1ecb-11ee/95d7ea668981717a1281.png

   3.Windwos服务方式运行的OPC Server未启动,检查并启动。

   4. 用户身份认证的问题:显示错误码0x00000005,原因是在远程的计算机身份认证没有通过。 身份认证是 Windows系统比较用户名和密码,如果是不能识别的用户,就会立即拒绝访问。造成身份验证失败的原因有:

   a)用户账户在远程计算机上不存在: 如果试图从的一个域访问另一个域时,需要建立域间的信任关系,或者添加用户到所有的域。如果使用的是工作组,就需要添加用户到远程的计算机,如果使用单域系统就不存在这个问题。

   b)用户密码不对

   c)关闭简单文件共享Simple File Sharing):简单文件共享会去掉远程访问计算机的用户名和密码,导致用户不能被正确认证。

5.访问控制列表问题:错误码为0x80070005,DCOM配置问题。系统检查用户账户是否有启动或者访问OPC Server 的权限. 这是利用访问控制列表(ACL)来完成的。对于每个应用程序的ACL 包括了用户账户的信息,哪些用户被被允许或者拒绝对具有特定操作权限。检查DCOM配置。

6. DCOM默认模拟级别问题:错误码为0x80070005。DCOM默认模拟级别应为“标识”,不能为“匿名”。

7. OPC Server 身份识别的问题:错误码为0x80070005,DCOM配置问题。检查DCOM配置。

   a)交互式用户:是当前登录到运行 COM 服务器的计算机的用户。 如果标识设置为交互式用户,则如果服务器将其类工厂注册为多用途,则所有客户端都使用相同的服务器实例。这个账户是当前登陆此计算机且驻留在OPC Server的计算机上,也就是必须有账户登录,否则不能启动OPC Server,当此用户注销时,OPC Server就会关闭。如果服务器具有图形用户界面 (GUI) 客户端需要查看,则应使用交互式用户作为服务器的标识。

   b)启动用户:这是应用程序标识的默认设置。 OPC Server以访问的用户认证,操作系统会为每个访问的用户创建一个实例,这样会有三个问题出现:

           若OPC Server只允许一个用户访问时,当系统中已经有了一个实例,再有其它用户就无法访问。

           若是OPC Server允许多个用户访问时,那么带来的问题是随着不同用户的访问,就会打开多个实例,这样就会占用更多的计算机的资源。

           另外的一个问题是硬件的抢占,如串口,当一个使用了,其它的用户就无法再使用。

   此外,客户端不会看到服务器显示的任何 GUI。

   c)指定用户: OPC Server以指定的用户账户认证,这种情况需要在OPC Server的计算机上存在着要指定的账户,而且对于OPC Client必须知道此用户。否则无法访问。这种方式下,每个客户端都会与服务器的同一实例通信。 如果服务器具有 GUI,则不应选择此标识;如果这样做,用户将无法看到用户界面。

   d)系统账户(仅用于服务):OPC Server以操作系统账户认证,对于工作组还是域,系统账户都能被识别,也不需要有用户登陆。但OPC server必须以服务的方式启动。

2.3 数据显示Bad

1、数据源头为Bad

2、OPC Client与OPC Server时间差太大

2.4 OPC通讯错误码

错误代码

错误描述

0x80004005

未指明的错误

0x8000401A

由于配置的标识不正确,无法启动服务器进程。检查用户名和密码。

0x80010108

调用的对象与客户端断开连接。重新初始化OPC服务器连接。

0x8001FFFF

设备连接数量超过OPCserver支持的连接量,需要重启电脑即可

0x80040004

没有connection ID相应的连接

0x80040005

需要运行对象执行相应的操作

0x80040007

未初始化对象

0x80040154

未注册的OPC Server,或者OPC Server需要的组件没有注册

0x80040155

接口未注册,OPC服务器不支持正试图连接到的接口

0x80040200

DCOM安全问题,通常发生在客户端。此错误通常发生在尝试为异步I/O指定回调地址。

0x80040202

无法连接错误,通常发生在调用订阅。可能是OPCPROXY.DLL不同版本造成。

0x80070002

系统找不到指定的文件。重新安装您的软件。

0x80070005

拒绝访问,检查DCOM配置

0x8007000E

内存不足,无法完成请求的操作。每当服务器需要分配内存以完成请求的操作时,都可能发生这种情况。

0x80070057

参数不正确。OPC服务器拒绝了您的请求

0x8007041D

Windows服务未在允许的时间范围内启动。可能是初始化问题

0x800705B4

超时返回

0x800706BA

RPC服务器不可用

0x800706BF

远程过程调用失败且未执行

0x800706EA

RPC服务器上浮点下溢

0x80070725

RPC存根版本不兼容

0x80070776

无法创建与通知接收器的连接, 错误原因:解析计算机名称时出现问题。 解决方案:可以通过指定服务器的IP地址而不是指定计算机名来解决此问题

0x80080005

非常见消息,检查OPC的事件日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1009616.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web安全(文件上传的漏洞)

文件上传漏洞和危害 文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器上,当开发者没有对该文件进行合理的校验及处理的时候,很有可能让程序执行这个上传文件导致安全漏洞。大部分网站都会有文件上传的功能,例如头像、图片、视频等…

如何从Docker镜像中提取恶意文件

当发生容器安全事件时,需要从容器或镜像中提取恶意文件进行分析和处理。 本文主要介绍3种常见的方法: (1) 从运行的容器中复制文件 首先,需要从镜像运行启动一个容器,然后,使用docker cp命令从容器中提取文件到宿主机。…

Flutter——启动页白屏的优化

flutter启动页白屏的优化&#xff1a;使用图片替代白屏 结构图 核心的代码如上图&#xff0c;修改两个launch_background.xml里的代码为&#xff1a; <item><bitmapandroid:gravity"center"android:src"mipmap/ic_launcher" /></item>…

如何使用极狐GitLab 支持 ISO 27001 合规

目录 组织控制 技术控制 了解更多 本文来源&#xff1a;about.gitlab.com 作者&#xff1a;Joseph Longo 译者&#xff1a;武让 极狐GitLab 高级解决方案架构师 作为一体化平台&#xff0c;通过极狐GitLab 可以很容易实现 DevSecOps 全生命周期管理。极狐GitLab 使开发人员能…

numpy笔记:广播应用:实现一个对比学习的loss function

论文笔记&#xff1a;SUPERVISED CONTRASTIVE REGRESSION_UQI-LIUWJ的博客-CSDN博客的loss function 出于简单考虑&#xff0c;我们令vy&#xff0c;同时sim就是两个向量的内积&#xff0c;d是两个向量逐元素差的绝对值之和 1 数据 import numpy as npanp.array([[1,3,4],[2,…

点评项目核心内容

目录 拦截器设置 集群的session共享问题 基于redis实现共享session登录 创建bean对象技巧 什么是缓存 使用缓存来处理对象 使用String类型缓存来处理集合 缓存更新策略 主动更新策略 缓存穿透 空串""和null的区别 缓存null值解决穿透问题 缓存雪崩 缓存击穿…

二刷力扣--字符串

字符串 摘自Python文档-标准库&#xff1a; 在Python中&#xff0c; 字符串是由 Unicode 码位构成的不可变序列。 由于不存在单独的“字符”类型&#xff0c;对字符串做索引操作将产生一个长度为 1 的字符串。 也就是说&#xff0c;对于一个非空字符串 s, s[0] s[0:1]。 不存…

震惊!idea里斗地主还不算我还要玩大富翁!vscode也安排一个

1. 介绍 本来呢前段时间大约是三四月份吧&#xff0c;摸鱼的时候找到了这个插件 xechat-idea, 可以在idea里边摸鱼&#xff0c;斗地主&#xff0c;聊天等,项目地址为 https://github.com/anlingyi/xechat-idea , QQ群号754126966 然后我尝试着开发了两个游戏 一个是大富翁 一个…

Kubernetes(K8S)集群部署

目录 一、创建3台虚拟机 二、为每台虚拟机安装Docker 三、安装kubelet 3.1 安装要求 3.2 为每台服务器完成前置设置 3.3 为每台服务器安装kubelet、kubeadm、kubectl 四、使用kubeadm引导集群 4.1 master服务器 4.2 node1、node2服务器 4.3 初始化主节点 4.4 work节…

使用内网端口映射方案,轻松实现U8用友ERP的本地部署异地远程访问——“cpolar内网穿透”

文章目录 前言1. 服务器本机安装U8并调试设置2. 用友U8借助cpolar实现企业远程办公2.1 在被控端电脑上&#xff0c;点击开始菜单栏&#xff0c;打开设置——系统2.2 找到远程桌面2.3 启用远程桌面 3. 安装cpolar内网穿透3.1 注册cpolar账号3.2 下载cpolar客户端 4. 获取远程桌面…

元宇宙发展下的虚拟时尚

过去两年元宇宙概念大热&#xff0c;在元宇宙的发展过程中&#xff0c;时尚已逐渐成为其最受欢迎的应用领域之一。元宇宙中的时尚应用经历长期的发展&#xff0c;现已成为其最流行的用途之一。自2006年首届虚拟时装秀在Second Life举办以来&#xff0c;该行业的发展呈指数级增长…

【实训项目】滴滴电竞APP

1.设计摘要 2013年国家体育总局决定成立一支由17人组成的电子竞技国家队&#xff0c;第四届亚室会中国电竞代表队 出战第四届亚洲室内和武道运动会。 2014年1月13日CCTV5《体育人间》播放英雄联盟皇族战队的纪录片。 在2015到2019年间&#xff0c;我国电竞战队取得的无数值得…

气膜建筑凭借自身优势,提供多功能室内体育馆

气膜安装简单快捷&#xff0c;可作为临时性或季节性建筑&#xff0c;并且可以和其他常规结构建筑相连接。连接处均可进行气密性设计。功能分区明显&#xff0c;避免其他活动对运动的影响。方便运动与观光的有机结合。气膜建筑基础处理简单&#xff0c;迁移的损耗非常小&#xf…

在外远程访问禅道,点亮软件测试新技能「内网穿透」

文章目录 1.前言2.BUG管理软件设置2.1.禅道Bug管理软件下载安装2.2.cpolar下载安装 3.本地内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 作为一个软件技术人员&#xff0c;每天都无法避免的事&#xff0c;就是与各种Bug斗智斗勇。反观整个计算机…

机场、公交枢纽定位解决方案

系统简介 高精度综合定位系统围绕车辆、人员和资产三类定位目标&#xff0c;以及停机坪、行李分拣中心、GTC和新建航站楼等多个定位场景&#xff0c;建设一体化综合定位系统。系统通过卫星差分、蓝牙等多类技术的集成和融合&#xff0c;实现多场景、多目标的综合精准定位&#…

汉诺塔问题(包含了三台柱和四台柱)——C语言版本

目录 1. 什么是汉诺塔 2. 三座台柱的汉诺塔 2.1 思路 2.2 三座台柱的汉诺塔代码 3. 四座台柱的汉诺塔 3.1 思路 3.2 四座台柱的汉诺塔代码 1. 什么是汉诺塔 汉诺塔代码的功能&#xff1a;计算盘子的移动次数&#xff0c;由数学公式知&#xff0c;汉诺塔的盘子移动次数与…

【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.1 整体效果演示、技术点

事件&#xff0c;在 Qt 中是很重要的一块内容&#xff0c;在实际工作中用到的也很多。 这里用一章的篇幅来讲解它。 本节先看下本章的一个总览&#xff0c;演示下所有效果&#xff0c;以及涉及到的一些技术点。 1.1 常用的事件讲解 整体效果如下&#xff1a; 详细讲解以下…

【学习笔记】C#基础 - 由C/C++衍生出来的面向对象的编程语言

一、程序结构 1、基本语法 using System; // C#程序第一条语句都是 using System; // using 关键字&#xff08;可多个&#xff09;&#xff1a;在程序中包含命名空间namespace RectangleApplication // namespace 声明&#xff08;可多个&#xff09;&#xff1a;包含一系列…

被删除并且被回收站清空的文件如何找回

文件的意外删除和回收站清空是许多用户面临的普遍问题。这种情况下&#xff0c;很多人会感到无助和焦虑&#xff0c;担心自己的重要文件永远丢失。然而&#xff0c;幸运的是&#xff0c;依然存在一些有效的方法能够帮助我们找回被删除并且被回收站清空的文件。 ▌被删除文件在…

【deepspeed】【训练】【交互】【wandb】训练过程中的wandb交互如何去除

问题&#xff1a;gpt模型训练时&#xff0c;中间有询问输入账户&#xff0c;交互式的询问影响自动执行脚本&#xff0c;询问是这样的&#xff1a; 解决办法&#xff1a; 在脚本中设置环境变量&#xff0c;关闭wandb&#xff0c;如下图&#xff1a; 其他&#xff1a; log中没有…