问题标签 [opc]
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.
c++ - 如何实现协议适配器
我想实现一个适配器,它可以为客户端提供一个通用接口来使用socket、opc、消息队列等。换句话说,学习使用上述三个协议的api是一项不平凡的工作。
例如,客户端要与外部套接字服务器通信,他唯一应该做的就是使用我们简单的 api 而不是复杂的 bsd-socket 的。
我想知道现在有没有我可以学习的现有实现。谢谢!
c - 从 PLC(OPC 客户端服务器 Kepware)传输到 MS Access,C
我对使用 PLC 完全陌生,但我有一个项目需要从 OPC 客户端服务器获取数据,然后将其发送到 Access 数据库表。减去 OPCWriteGroupItems 的大部分代码来自其他人。我只是迷失了将从 OPCReadGroupItems 获取的数据传输到我的函数 OPCWriteGroupItems 中的正确变量。我只想获取读入变量的值。谢谢。仅供参考,我知道我的查询语句需要调整,以便正确读取变量,但这是我正在处理的另一个问题。这是更紧迫的问题。
以下是我谈到的两个功能:
mercurial - 在 Mercurial 中指定编辑器
一般来说,如果我有一个 W 类型的自定义文件并想使用自定义应用程序/编辑器 X 打开/查看它,当我想编辑/查看文件时如何设置 Hg 以调用应用程序 X?
具体示例:我正在使用 TortoiseHg 跟踪一组文件,这些文件由自定义应用程序创建,一个名为 Kepserver 的 OPC 服务器应用程序。Kepserver 创建 .OPF 文件,而 Hg 可以判断文件何时更改,我想使用 Kepserver 应用程序从 Hg Workbench 查看文件。
我看到一个允许我设置编辑器的设置。我指定了 Kepserver 应用程序的路径,但是当我单击工作台中的文件时,它会尝试使用 Kdiff3 进行二进制差异,如何为特定存储库指定编辑器?
visual-studio - DCom/OPC应用程序在visual studio中运行时不连接,但.exe连接完美
我正在编写一个连接到远程服务器并读取数据等的 OPC 客户端。我正在使用 advosol 的 BGServer 类。问题是,当我在 Visual Studio 中运行程序时,添加组时出现以下错误。
“HRESULT 异常:0x80040202”
我的问题类似于(http://stackoverflow.com/questions/5978721/opc-server-access-remotely-using-opcda-net-tools),但是,我知道 DCom 设置配置正确,因为当我运行通过双击我连接的.exe 相同的代码,可以毫无问题地添加一个组。
因此,我猜测 Visual Studio 在一些奇怪的用户/组下运行,并且搞砸了 dcom 权限(主要是回调)。
编辑:代码
c# - OPC XML DA 服务器的序列化问题:类型不能在这种情况下使用
我正在尝试使用 C# 构建演示性 OPC XML DA 服务器。开发正在进行中,但我被困在有关数组的序列化问题上。显然,当我尝试将 ItemProperty.Value(它是 Object 类型)设置为除 byte[] 之外的任何类型的数组时,我得到了这个异常:
System.InvalidOperationException:在此上下文中不能使用类型 <ArrayType>。
这是触发异常的示例 GetProperties() 方法的内容:
完整堆栈跟踪(意大利语)
我已经在我的项目中包含了由 wsdl.exe 生成的服务框架,并且对于非数组值绝对没有问题。我项目的目标框架是 .NET 4.0(但同样的问题也发生在 3.5 上)。
我的猜测是该方法不适用于服务框架中的 XmlIncludeAttribute() 装饰器。关于如何使它工作的任何线索?
感谢您的时间。
编辑:我尝试将 XmlIncludeAttribute(typeof(int[])) 装饰器添加到 GetProperties() 方法(我猜装饰器不可继承),但我没有收到异常。但是,客户端无法正确反序列化底层数据。反序列化后我从客户端(用 VB.NET 编写)得到的是 XmlNode 引用而不是 int[]。数据在那里,但没有正确反序列化。
这是预期的行为吗?可能是客户端问题?
opc - 如何实现数据历史记录?
一位朋友问我是否可以实现数据历史记录。我正忙于研究、四处搜索、阅读UPC 统一架构——但要完成的工作很多,所以我会问这里是否有人曾经走过这条路(同时仍在继续我的研究)。
一个 20 多年的开发人员(或两个)大约需要多少人月才能获得至少一个可演示的工作原型 - 以及完成多长时间?
哪种编程语言?C++ 好还是什么?
我可以使用哪些资源?(我以为我看到了一个 Open OPC 框架,但找不到了)。我可以基于任何 FOSS、库或免费代码?也许是 sourceForge 项目?
如何最好地测试?
还有其他提示吗?
oracle - 如何使程序等到满足某些条件才能继续执行代码?
我正在开发一个 OPC 客户端。该客户端调用一个过程,该过程又在一个“队列”表中插入几行。
该客户端还有另一个线程,它不时打开“队列”表并根据表中的项目更新 OPC 项目的值。更新每个值后,线程从“队列”表中清除该行。
我想要的是:我调用该过程,它将值插入队列中并等待直到另一个线程清除它插入的值,然后执行其他操作。
这有可能吗?在其他语言中,我会考虑使用带有 Sleep()s 的 while 循环,测试行是否被清除,直到它退出循环。
感谢您的任何见解
-编辑:
我会尽量澄清一点:
假设有 3 种不同的作业类型:“插入”、“更新”和“最终处理”。
我可以从“INSERT”类型中获得许多不同的作业,每个作业都以其唯一的 ID 插入队列:
只有一个“更新”作业,不断读取和清除队列。
我被困在“最终处理”部分,因为我也会有多个这种类型的工作,就像“插入”的工作一样。
我不知道如何触发正确的“FINAL PROCESSING”作业,该作业链接到“INSERT ID”,在“UPDATE”清除了所有具有该 INSERT ID 的行之后。
假设我的“更新”作业清除了所有“ID = 1”的行。当 ID=1 的最后一行被清除时,我需要触发一个名为 FinalProcessingID1 的过程。当 ID=2 全部清除时也是如此。
opc - OPC UA 是从许多 Scada 系统获取数据的最佳方式吗?
在我的公司,我们有许多分布式站点,每个站点都使用一个单一的 Scada 系统供应商(一个使用 Wincc,其他地方使用另一个......),并且该系统使用几乎相同类型的信息。
我们需要从这些系统中检索一些通用数据,所以我想知道 OPC UA 是否可以处理它。
是否可以购买或开发通过 Web 服务从 Scada 系统检索数据到客户端的 OPC UA 服务器?
java - 用于测试和调试的在线免费 OPC 服务器
我将探索使用 java 的过程控制协议的 OLE。我的问题是找到一个用于发送/检索测试数据的 OPC 服务器。作为 OS X 用户,我找不到可以在本地安装的 opc 服务器。因此我的想法是找到一个外部服务器来检索一些测试数据?有可能还是有人可以提出更好的主意?
vb6 - 西门子 OPC 客户端的示例 VB6 代码?
我正在尝试更新一个古老的 VB6 项目以启用与远程 OPC 服务器的通信。我已经安装了 Siemens 工具包,但我找不到任何关于如何将它与 VB6 一起使用的有用文档。(适用于 C#)
该应用程序非常简单。我只需要连接到远程服务器并写入/读取单个地址。
我发现我假设处理通信的 DatCon OCX 控件,但我尝试手动输入的所有 ServerName 值都不起作用。
任何人都可以帮忙吗?