问题标签 [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.
permissions - 不同的 DCOM / COM 安全设置意味着什么?
我们的应用程序广泛使用 COM 和 DCOM,因此我们需要确保正确设置 COM 安全权限。我知道我可以在组件服务 MMC 管理单元下访问这些权限,并且我可以在计算机的属性页下设置默认值/限制
在 DCOM Config 节点下,我可以向下钻取并为各个应用程序设置安全权限
我也了解“默认值”(除非在每个应用程序基础上明确设置权限,否则 DCOM 应用程序将使用什么)和“限制”(即使每个应用程序设置超过这些设置也会强制执行哪些权限)之间的关系,但是我不了解(也找不到任何文档)我可以设置的不同设置之间的区别
- “访问”、“启动”、“激活”和“配置”权限有什么区别?
- 这些设置会影响 COM 应用程序,还是仅影响 DCOM 应用程序?
- 如果使用远程 DCOM,我需要在服务器和客户端上设置权限,还是只在客户端上设置权限?
- 是否有任何文件可以解释上述内容?
c# - OPC Da 在字中写入位
我正在使用 OPC DA 自动化包装器连接到 AllenBradley PLC。
我现在需要在一个单词中设置一个位,独立于任何其他位。
有什么方法可以严格实现这个功能吗?
我尝试过的两个选项是:
在 OPC 服务器 (Kepware) 中将单词设置为单独的位。所以换句话说,我有 16 个标签,每个标签都有一点,标签名称看起来像:
但是,这意味着我需要保留许多单独的 OPCItem 对象
另一种方法是读取整个字,使用 将其转换为位BitConverter
,更改我需要更改的位,然后将保留字写回 PLC。
然而,在测试过程中,我发现线程 1 可以读取这个词。然后线程 2 将写入字,更改位 2。然后线程 1 将更改位 4 并将整个字写回,而对位 2 的更改将被覆盖。
有谁知道我可以拥有一个 OPCItem 并写入特定位的方法?还是我坚持有很多与某个位相关的 OPCItems?
谢谢
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 侦听器来接收入站异步回调。最有可能的是,这会引发一些安全问题,并且这个潜在的安全漏洞会以某种方式被阻止。
你能分享一些想法吗?
com - 带有 STA 和 MTA 的 OPC 客户端示例
在哪里可以找到有关用于 OPC 客户端的 COM 线程模型的信息,作为 OPC 实验室认证过程的一部分,我必须验证 OPC 客户端可以使用不同的 COM 线程模型实现,例如单线程单元 (STA) 和多线程单元 ( MTA)应该能够连接到服务器并读取数据而不会失败。
在客户端下用于测试,但不确定客户端是用什么线程模型实现的。
- Kepware - OPC 快速客户端
- Softing-OPC 演示客户端
- Indusoft-Webstudio
- Matrikon OPC 浏览器
- OPC Foundation - 示例客户端
c# - 如何获取 OPC 服务器上的标签列表
我正在尝试从 OPC 服务器获取标签列表,我正在使用 QuickOPC 中的 EasyDaClient。我想做的是这个
我总是从 BrowseLeaves 方法中获得 0 个元素,而且我不知道我的 Channel_1.Device_1 是什么,因此我可以使用其他重载。我是新手,有人可以解释一下如何列出 OPC 标签吗?仅供参考:我可以使用以下方法从标签中读取值:
所以它不是连接问题
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
c# - 获取多个 OPC 值
这是从 OPC Server 获取多个值的代码。
正如您在代码中看到的,我试图获得 47 的值if (Convert.ToInt32(ClientHandles.GetValue(count)) == 47)
,ClientHandle
但每次我得到一些其他值而不是这个值。当我打印所有的值时,我看到,值47
是随机出现的。我不明白为什么它会随机出现?
位置 47 的值应仅出现在该位置。这是从 OPC 服务器获取多个值的好方法吗?
c# - 事件上的 C# 多线程
我正在创建一个调用事件的程序。这是代码
在这种语法MessageBox.Show(Thread.CurrentThread.Name,"Alert");
中,我期待显示,Child
因为它是从子线程调用的,但它正在显示Main
。为什么事件在主线程中运行而不在子线程中运行?
c# - OPC DataChangeEventHandler 未调用
下面是我用来读取 OPC 值的代码。
问题是每当 OPC 标签发生任何变化时都DIOPCGroupEvent_DataChangeEventHandler
应该调用该方法opcGroup_DataChange
,但它只调用该方法 3-4 次。之后它不会调用。即使发生更改,也不会调用该方法。
这段代码有什么问题?