C#开发记录——C#开发的OPC客户端无法连接杰控软件的OPC服务器处理办法

news2024/11/6 7:35:34

1、某些OPC 客户端连接本地服务器失败

某些OPCDa 客户端,例如ABBDCS,.WinCC 等,本地连接服务器失败,需特殊设置;
C#开发的就遇到此情况,排查原因,停滞了好几天,终于解决

1.1、打开DCOM 配置,64 位系统需执行:

在这里插入图片描述

1.2、从组件服务->计算机->我的电脑->DCOM 配置下选择OPC 服务器:

在这里插入图片描述

1.3、执行右键菜单,打开属性对话框:

在这里插入图片描述
即使本地也要设置为交互式用户!

其他OPC连接问题处理办法:

2、连接OPCDA 服务器异常

2.1、现象

OPCDA 服务(FameView.RunDB)启动,但远程或本地客户端连接均失败,使用OPC 客户端测试工具也失败!
在这里插入图片描述

2.2、分析

情况1: OPC 客户端以短连接方式频繁连接OPC 服务器.连接次数很多时,导致资源不能及时释放,会出现此现象;
情况2: 远程客户端频繁异常断网,导致异常在线客户偏多,连接资源不能释放,会出现此现象;

2.3、解决

较新版本组态的OPC 服务器支持参数:
在这里插入图片描述
当检测到连接次数达到1024 或者在线客户数达到512 时,会自动重启OPC 服务器,使得强制释放资源;

3、当C#开发的OPCClient复制到其他电脑时报错

3.1、问题图

在这里插入图片描述
在这里插入图片描述

3.2、处理办法

3.2.1、情况一

将opcdaauto.dll拷贝到c:\windows\system32 和 c:\windows\syswow64 目录下,
以管理员启动 cmd
运行 regsvr32 opcdaauto.dll
————————————————

3.2.2、情况二

无论win7_32还是win7_64位都执行一样的CMD命令,即regsvr32 opcdaauto.dll 。

如果从网上下载的opcdaauto.dll 文件放到了Windows\system32中执行上面的命令后提示不兼容,那就放到systemwow64中,然后执行上述命令,尽可能用管理员权限运行CMD;如果你的系统已经更新到最新,64位系统的话在systemwow64中应该会有opcdaauto.dll文件,我的笔记本就是已经存在了。

————————————————

3.2.3、情况三

Win10安装OPCDAAuto.dll

经过近3天的爬坑,终于验证了。在Win7 x64下,安装kepserverex v6后会自动安装在c:\Windows\SysWOW64\下,vs可以加载到。在Win10 x64下,不会自动安装,需手动拷贝到SysWOW64目录下,然后以管理员身份进入该目录(一定要这样做),用regsvr32 OPCDAAuto.dll命令注册,否则是各样的报错,导致注册不成功[OPCDAAuto.dll版本v2.2.5.30验证通过]
————————————————
在这里插入图片描述

4、Windows XP下的DCOM配置方法(OPC)

4.1、在防火墙中例外必要的程序:

1、进入WINDOWS 控制面板,双击"WINDOWS 防火墙"图标,打开“WINDOWS 防火墙”设置对话框:
在这里插入图片描述
2、选中<例外>选项卡,把相应OPC Client 和Server 程序添加进例外列表,如fmOpcSrv.exe 或fmOpcServer.exe;
3、 同时添加Microsoft Management Console (mmc.exe 在Windows\System32 目录下)和OPC 应用程序OPCEnum (opcenum.exe 在组态系统根目录下)到例外列表中;
4、 确保<文件和打印机共享>也被选中在例外列表中;

4.2、例外TCP 135 端口:

1、 DCOM 通信需要用到TCP 135 端口;
2、 在WINDOWS 防火墙的<例外>选项卡中,点击<添加端口>按钮:
3、 在“添加端口”对话框中进行设置;
在这里插入图片描述

4.3、 WINDOWS XP SP2 下DCOM 的配置过程如下:

1、 点击<开始>中的<运行>,执行DCOMCnfg.exe,打开<组件服务>窗口:
在这里插入图片描述
2、双击<控制台根目录>下的<组件服务>展开<组件服务>文件夹,同样方式,展开<计算机>文件夹,
右键点击右侧窗口的<我的电脑>图标,点击<属性>,打开属性对话框:
在这里插入图片描述
3、设置<默认属性>:
在这里插入图片描述
4、选中<COM 安全>选项卡,有4 个按钮可供点击,分别进入配置:
在这里插入图片描述

5、 执行<访问权限>下的<编辑限制(L)…>,允许所有访问:
在这里插入图片描述

6、 执行<启动和激活权限>下的<编辑限制(I)…>,允许所有启动/激活:
在这里插入图片描述
7、 执行<访问权限>下的<编辑默认值(E)…>,允许所有访问:
在这里插入图片描述

8、 执行<启动和激活权限>下的<编辑默认值(I)…>,允许所有启动/激活:
在这里插入图片描述

4.4、返回到dcomcnfg 程序界面,展开DCOM 配置:

在这里插入图片描述

4.5、 选中FameView OPCServer,右键点击执行属性进行配置;

1、 <常规>页面中的<身份验证级别>设为<默认>:
在这里插入图片描述

2、 在<位置>页面中,选择<在此计算机上运行应用程序>:
在这里插入图片描述

3、 在<安全性>页面中,<启动权限>设置为<使用默认值>,<访问权限>设置为<使用默认值>:
在这里插入图片描述

4、 <配置权限>设置为<自定义>,并执行<编辑>按钮,添加,<完全控制>置为允许:
在这里插入图片描述

5、 在<标识>页中,选择<交互式用户>:
在这里插入图片描述

4.6、 返回dcomcnfg 程序主界面,再选中项,打开<属性>页面,进行配置(与服务器配置相同):

4.7、 完成以上设置后,重新启动计算机;

4.8、 在运行OPC 服务器的主机中添加OPC 客户端主机的登录帐户:

1、 如果OPC 客户端需要远程访问OPC 服务器,运行OPC 服务器的主机操作系统,需要将OPC 客户端的登录帐号添加到OPC 服务器的主机中;

2、 在OPC 服务器主机中执行<开始/设置/控制面板/管理工具/计算机管理/本地用户和组/用户>,在空白处点击右键:
在这里插入图片描述

3、 执行<新用户>,将客户端机器的登录帐号添加进去:
在这里插入图片描述

4、 如果有多台客户端访问该服务器,需要将这些客户端机器的登录帐号都添加进来;
5、 如果多台客户机的登录帐号相同(用户名和密码都相同),只需在OPC 服务器主机中添加一个就可以了;
6、 总之,OPC 客户端主机的登录帐号,在OPC 服务器主机的计算机管理的用户列表中必须找到;

4.9、 正确配置后客户端依然无法访问OPC 服务器,请尝试:

1、 进入“管理工具->本地安全策略->本地策略->安全选项”:
在这里插入图片描述

2、 选择“网络访问->本地帐户的共享和安全模式”,并置为“经典-本地用户以自己的身份验证”:
在这里插入图片描述

4.10、 如果在执行组件<属性>时,不能发现<属性>菜单,请进行以下操作:

1、 在“ 服务” 里找到三个服务: Distributed Transaction Coordinator(DTC) 、Remote
Procedure Call (RPC)、Security Accounts Manager,都启动起来;
2、 如果启动DTC 遇到问题, 直接运行msdtc –resetlog;
3、 如果DTC 仍然运行运行失败,继续尝试:
a) 在命令行下运行 msdtc –uninstall,删除 msdtc 服务;
b) 在“本地连接”的属性中删除了 NetBIOS 协议;
c) 重新启动机器后,在命令行下运行 msdtc –install,安装 msdtc 服务;
d) 在数据库服务器上,在“组件服务”mmc 中,依次打开“组件服务”、“计算机”,在“我的电脑”上点右键选择“属性”, 然后选择“msdtc”选项卡中的“安全配置”,确认选中“网络 DTC 访问”,并选择“不要求进行验证”;

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

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

相关文章

iOS UI自动化测试详解

前言&#xff1a; 小目标 关于UI自动化的定义&#xff0c;我想要的是自动地按照流程去点击页面、输入数据&#xff0c;不需要人去参与&#xff0c;节省人工时间。比如登录&#xff0c;能够自己去填写用户名&密码&#xff0c;然后点击按钮跳转到下一个页面等。在能够保证业…

pandas表格并表(累加合并)

今天需求是用pandas的两张表格合并起来&#xff0c;其中重复的部分将数据进行相加。 用到的是combine&#xff08;&#xff09;这个函数。 函数详细的使用可以看这个大佬的文章&#xff1a; https://www.cnblogs.com/traditional/p/12727997.html &#xff08;这个文章使用的测…

vue之为什么data属性是一个函数而不是一个对象?

为什么data属性是一个函数而不是一个对象为什么data属性是一个函数而不是一个对象&#xff1f;一、实例和组件定义data的区别二、组件data定义函数与对象的区别三、原理分析四、结论为什么data属性是一个函数而不是一个对象&#xff1f; 一、实例和组件定义data的区别 vue实例…

嵌入式物联网【数据处理篇】特殊字符处理(Postman 400 Bad Request)

目录 一、Postman 400 Bad Request 二、C语言特殊字符处理 三、QUrl toPercentEncoding 处理url中含有特殊字符转码 16进制ASCII码对照表 一、Postman 400 Bad Request http请求链接中的特殊字符处理 解决包括Postman 中的post、get等链接请求中的特殊字符&#xff08;如…

谷歌关键词优化多少钱【2023年调研】

本文主要分享Google关键词排名优化的一些成本调研&#xff0c;方便大家参考。 本文由光算创作&#xff0c;有可能会被剽窃和修改&#xff0c;我们佛系对待这种行为吧。 今年2023年了&#xff0c;谷歌关键词优化到底要多少钱&#xff1f; 答案是&#xff1a;价格在2w~25w左右…

c++终极螺旋丸:₍˄·͈༝·͈˄*₎◞ ̑̑“类与对象的结束“是结束也是开始

文章目录 前言一.构造函数中的初始化列表 拷贝对象时的一些编译器优化二.static成员三.友元四.内部类总结前言 前两期我们将类和对象的重点讲的差不多了&#xff0c;这一篇文章主要进行收尾工作将类和对象其他的知识点拉出来梳理一遍&#xff0c;并且补充前两篇没有讲过的…

第3集丨Java中的异常、处理方式及自定义异常汇总

目录一、异常的分类1.1 常见的运行时异常1.2 常见的检查异常1.3 继承关系二、异常处理机制三、try…catch…finally四、声明抛出异常五、人工抛出异常六、自定义异常任何一种程序设计语言设计的程序在运行时都有可能出现错误&#xff0c;例如除数为0&#xff0c;数组下标越界&a…

别学英语了,真的

文 / 王不留&#xff08;微信公众号&#xff1a;王不留&#xff09; 这两年&#xff0c;很多朋友加我微信后&#xff0c;第一句常是&#xff0c;学英语有什么用啊&#xff1f; 我会统一给出真诚答复&#xff1a;没用&#xff0c;真的。 看新闻&#xff0c;中文海量信息已经严重…

建筑行业固定资产管理解决方案

建筑行业的固定资产种类和数量都较多&#xff0c;常用的固定资产有&#xff1a;办公设备、机械、设备、工具等。设备的调拨、购置、测试、验收、建帐立卡、分类编号、技术档案、供应分配、清查盘点、提取折旧、报废、设备维修、设备保养、备件管理、设备巡检和点检等工作&#…

S7-1200对于不同项目下的PLC之间进行开放式以太网通信的具体方法示例

S7-1200对于不同项目下的PLC之间进行开放式以太网通信的具体方法示例 如下图所示,打开TIA博途创建一个新项目,并通过“添加新设备”组态 S7-1200 客户端 ,选择 CPU1214C DC/DC/DC (client IP:192.168.0.102),建立新子网; 首先编写客户端程序:打开OB1编程界面,选择指令…

图片如何提取文字?

在当今信息爆炸的时代&#xff0c;图文并茂已经成为了一个广告宣传的常用方式。然而&#xff0c;图片中的文字信息往往难以获取&#xff0c;尤其对于那些需要快速获取信息的人们来说&#xff0c;阅读图片中的文字会是一项繁琐且费时的任务。现在&#xff0c;我们有一个好消息要…

如何熟练掌握Python在气象水文中的数据处理及绘图【免费教程】

pythonPython由荷兰数学和计算机科学研究学会的吉多范罗苏姆于1990年代初设计&#xff0c;作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构&#xff0c;还能简单有效地面向对象编程。Python语法和动态类型&#xff0c;以及解释型语言的本质&#xff0c;使它成为多…

[python课程设计1]学生成绩管理系统

引言本课程设计使用数据库&#xff0c;熟悉了Python语言操作数据库&#xff0c;对数据库的增删改查&#xff0c;实现Qt designer界面设计以及excel表格的读写&#xff0c;代码通俗易懂&#xff0c;方便对所学知识的掌握。需求分析用类对学生成绩、代码封装使得操作使用简单&…

java开启线程的四种方法

文章目录1、继承Thread类1.1 代码实现1.2 测试结果2、实现Runnable接口2.1 方式一&#xff1a;直接实现Runnable接口2.1.1 代码实现2.1.2 测试结果2.2 方式二&#xff1a;匿名内部类2.2.1 代码实现2.2.2 测试结果3、实现Callable接口3.1 代码实现3.2 测试结果4、创建线程池4.1 …

常见帧率计算方法实际效果对比及EasyCVR平台的帧率计算方法

什么是帧、帧数、帧率&#xff1f; 帧 &#xff08;Frame&#xff09; 帧可以理解为视频或者动画中的每一张画面&#xff0c;而视频和动画特效是由无数张画面组合而成&#xff0c;每一张画面都是一帧。 帧数&#xff08;Frames&#xff09; 帧数是帧生成的数量。如果一个动画…

Scala 变量和数据类型(第二章)

第二章、变量和数据类型2.1 注释2.2 变量和常量&#xff08;重点&#xff09;2.3 标识符的命名规范2.4 字符串输出2.5 键盘输入2.6 数据类型&#xff08;重点&#xff09;回顾&#xff1a;Java数据类型Scala数据类型2.7 整数类型&#xff08;Byte、Short、Int、Long&#xff09…

OpenAI CEO喊麦ChatGPT:你很酷,但却是个“糟糕的产品”

OpenAI 联合创始人兼CEO山姆阿尔特曼&#xff08;Sam Altman&#xff09;最近在一档播客节目中称ChatGPT 为“糟糕的产品”。 阿尔特曼说&#xff0c;“人们访问的是一个有时能用&#xff0c;有时不能用的网站。”他指的是ChatGPT频繁出现的错误消息。 他补充说道&#xff1a;…

【GO】K8s 管理系统项目[API部分--Workflow]

K8s 管理系统项目[API部分–Workflow] 年终于算过完了,身体也康复了,继续学习 1. DB设置 1.1 连接配置 service/config.go package configimport "time"const (ListenAddr "0.0.0.0:9091"KubeConfig "D:\\golang\\k8s-plantform\\config\\cka&…

有序表(中):Size Balanced Tree(SBT/SB树)

1、SB树简介 本质上是一棵二叉搜索树&#xff0c;SB树全称 Size Balanced Tree&#xff0c;顾名思义&#xff0c;这是一棵通过大小&#xff08;Size&#xff09;域来维持平衡的二叉搜索树。 它不仅支持简单的二叉搜索树操作&#xff0c;也支持 Select 和 Rank。 定义一下Siz…

每天一道大厂SQL题【Day10】电商分组TopK实战

每天一道大厂SQL题【Day10】电商分组TopK实战 大家好&#xff0c;我是Maynor。相信大家和我一样&#xff0c;都有一个大厂梦&#xff0c;作为一名资深大数据选手&#xff0c;深知SQL重要性&#xff0c;接下来我准备用100天时间&#xff0c;基于大数据岗面试中的经典SQL题&…