问题标签 [opc-da]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
18419 浏览

permissions - 不同的 DCOM / COM 安全设置意味着什么?

我们的应用程序广泛使用 COM 和 DCOM,因此我们需要确保正确设置 COM 安全权限。我知道我可以在组件服务 MMC 管理单元下访问这些权限,并且我可以在计算机的属性页下设置默认值/限制

我的电脑属性页面的屏幕截图

在 DCOM Config 节点下,我可以向下钻取并为各个应用程序设置安全权限

Logger 应用程序属性页面的屏幕截图

我也了解“默认值”(除非在每个应用程序基础上明确设置权限,否则 DCOM 应用程序将使用什么)和“限制”(即使每个应用程序设置超过这些设置也会强制执行哪些权限)之间的关系,但是我不了解(也找不到任何文档)我可以设置的不同设置之间的区别

  • “访问”、“启动”、“激活”和“配置”权限有什么区别?
  • 这些设置会影响 COM 应用程序,还是仅影响 DCOM 应用程序?
  • 如果使用远程 DCOM,我需要在服务器和客户端上设置权限,还是只在客户端上设置权限?
  • 是否有任何文件可以解释上述内容?
0 投票
1 回答
984 浏览

c# - OPC Da 在字中写入位

我正在使用 OPC DA 自动化包装器连接到 AllenBradley PLC。

我现在需要在一个单词中设置一个位,独立于任何其他位。

有什么方法可以严格实现这个功能吗?

我尝试过的两个选项是:

在 OPC 服务器 (Kepware) 中将单词设置为单独的位。所以换句话说,我有 16 个标签,每个标签都有一点,标签名称看起来像:

但是,这意味着我需要保留许多单独的 OPCItem 对象

另一种方法是读取整个字,使用 将其转换为位BitConverter,更改我需要更改的位,然后将保留字写回 PLC。

然而,在测试过程中,我发现线程 1 可以读取这个词。然后线程 2 将写入字,更改位 2。然后线程 1 将更改位 4 并将整个字写回,而对位 2 的更改将被覆盖。

有谁知道我可以拥有一个 OPCItem 并写入特定位的方法?还是我坚持有很多与某个位相关的 OPCItems?

谢谢

0 投票
0 回答
593 浏览

com - 无法通过 WinXP SP3 VM 之间的 DCOM 远程接收 OPC A&E 事件

我无法通过 DCOM 连接远程接收 A&E 事件。

我熟悉 DCOM 诡计并多次配置 OPC DA,但事实并非如此。

例如,我已经编写了概念验证配置,该配置由两个虚拟机组成,两个虚拟机安装了全新的 WinXP SP3,第一个虚拟主机上启用了 A&E 的 Matrikon OPC 模拟服务器,第二个虚拟主机上的 Matrikon OPC Explorer。我已经配置了 DCOM,所以我可以从“客户端”主机看到模拟服务器的 OPC DA 子集。但我没有从那里收到任何 A&E 事件。当且仅当我在“服务器”主机上本地连接到模拟服务器时,我才能收到它们。在客户端主机上,我收到了 COM 错误消息(见附件)。 错误信息

AFAIR IConnectionPoint错误跟踪中提到的接口与 COM 事件机制有关。

我想 OPC A&E 使用 COM 事件机制作为传输层。如果客户端驻留在远程机器上,我不确定这些事件应该如何传递到客户端。IMO,客户端机器应该有一个免费的 RPC 侦听器来接收入站异步回调。最有可能的是,这会引发一些安全问题,并且这个潜在的安全漏洞会以某种方式被阻止。

你能分享一些想法吗?

0 投票
1 回答
453 浏览

com - 带有 STA 和 MTA 的 OPC 客户端示例

在哪里可以找到有关用于 OPC 客户端的 COM 线程模型的信息,作为 OPC 实验室认证过程的一部分,我必须验证 OPC 客户端可以使用不同的 COM 线程模型实现,例如单线程单元 (STA) 和多线程单元 ( MTA)应该能够连接到服务器并读取数据而不会失败。

在客户端下用于测试,但不确定客户端是用什么线程模型实现的。

  • Kepware - OPC 快速客户端
  • Softing-OPC 演示客户端
  • Indusoft-Webstudio
  • Matrikon OPC 浏览器
  • OPC Foundation - 示例客户端
0 投票
1 回答
6172 浏览

c# - 如何获取 OPC 服务器上的标签列表

我正在尝试从 OPC 服务器获取标签列表,我正在使用 QuickOPC 中的 EasyDaClient。我想做的是这个

我总是从 BrowseLeaves 方法中获得 0 个元素,而且我不知道我的 Channel_1.Device_1 是什么,因此我可以使用其他重载。我是新手,有人可以解释一下如何列出 OPC 标签吗?仅供参考:我可以使用以下方法从标签中读取值:

所以它不是连接问题

0 投票
1 回答
7325 浏览

c# - How to connect to remote OPC server

I am trying to connect to OPC server which is present in a remote PC in LAN. Here is the code

192.168.1.5 is the IP of the remote PC. Now I want to know where could I put the username & the password of the remote PC to connect to, since the remote PC contains a username & a password.

Thanks

0 投票
1 回答
4053 浏览

c# - 如何从 OPC 读取值

我正在尝试使用Interop.OPCAutomation.dll从 OPC 服务器读取值

此代码未从 OPC 服务器返回值。它在这条线上给出错误

错误

0 投票
1 回答
1440 浏览

c# - 获取多个 OPC 值

这是从 OPC Server 获取多个值的代码。

正如您在代码中看到的,我试图获得 47 的值if (Convert.ToInt32(ClientHandles.GetValue(count)) == 47)ClientHandle但每次我得到一些其他值而不是这个值。当我打印所有的值时,我看到,值47是随机出现的。我不明白为什么它会随机出现?

位置 47 的值应仅出现在该位置。这是从 OPC 服务器获取多个值的好方法吗?

0 投票
0 回答
156 浏览

c# - 事件上的 C# 多线程

我正在创建一个调用事件的程序。这是代码

在这种语法MessageBox.Show(Thread.CurrentThread.Name,"Alert");中,我期待显示,Child因为它是从子线程调用的,但它正在显示Main。为什么事件在主线程中运行而不在子线程中运行?

0 投票
1 回答
501 浏览

c# - OPC DataChangeEventHandler 未调用

下面是我用来读取 OPC 值的代码。

问题是每当 OPC 标签发生任何变化时都DIOPCGroupEvent_DataChangeEventHandler应该调用该方法opcGroup_DataChange,但它只调用该方法 3-4 次。之后它不会调用。即使发生更改,也不会调用该方法。

这段代码有什么问题?