我正在使用由Phoenix Contact创建的一个名为Think'n'Do的基于PC的自动化软件包.它实时处理,读取输入/控制逻辑/写入输出,所有这些都在最长50ms内完成.我们有一台OPC服务器,每隔10ms从PLC读取/写入标签.将标签写入PLC并读回写入的值有很长的延迟(Think'n'Do(50ms)> OPC服务器(10ms)> PLC(10ms)> OPC服务器(10ms)> Think'n'Do (50ms))这个过程需要6秒才能完成,因为我的数学应该只需要130ms.
任何关于在哪里寻找或为什么可能需要更长时间的想法都会有所帮助.
我正在开发的设备必须支持CANopen和Modbus(RTU和TCP)通信。是否有任何电子数据表格式(例如EDS或XDD)可用于定义两者?
我尝试使用几个工具(Vector CANeds和ODVA EZ-EDS)来生成一个与两者兼容的简单EDS文件,甚至依靠在文本编辑器中手动编辑文件,但是每个文件的输出看起来都差不多,但是彼此根本不相容。
理想情况下,我想使用CiA XDD格式,因为从我的桌面主应用程序中“反序列化”相对来说比较简单。但是,这似乎完全面向CANopen。
任何人都可以提供的任何信息,提示,技巧或指示,将不胜感激。
我们无法让PLC与KEPServerEX(OPC)可靠连接.
我想知道SOF的其他人是否有使用PLC和OPC的经验.如果是这样,他们有任何关于与我们的OPC服务器建立可靠连接的提示.我们目前使用KEPServerEX作为我们的OPC,但如果有人知道更好的程序使用,我们愿意接受建议.
我正在尝试通过 openscada 连接到 OPC 服务器。
我已经知道 MatrikonOPC 资源管理器提供的 OPC 服务器程序 ID,但连接不起作用可能是由于 DCOM 配置错误。在更进一步之前,我想尝试通过服务器 CLSID 进行连接。
如何找出 OPC 服务器的 CLSID?
我想知道OPC(开放平台通信)和DDS(数据分发服务)之间的区别.
我对这两个框架的理解是:通过机器上的通信中间件来简化复杂的网络编程.它们中的两个都用于通过消息传递在物理上分离的机器上进行程序通信.它们采用客户端 - 服务器模型作为TCP/IP套接字进行通信,但它们可以以多种多方式交换数据.此外,DDS通常用于飞机和军舰等关键系统.
如果有任何误解,或者您知道它们之间存在一些差异,请告诉我.
我似乎无法弄清楚这一点:
在写入标记之前,我需要知道它期望的数据类型(mywrite 函数接收的值始终是字符串)。
我意识到您必须从服务器读取数据类型,这是我的代码,但我不知道如何使用返回的信息:
var nodesToRead = BuildReadValueIdCollection(node.DisplayName, Attributes.DataType);
DataValueCollection readResults;
DiagnosticInfoCollection diag;
_session.Read(
requestHeader: null,
maxAge: 0,
timestampsToReturn: TimestampsToReturn.Neither,
nodesToRead: nodesToRead,
results: out readResults,
diagnosticInfos: out diag);
var val = readResults[0];
Run Code Online (Sandbox Code Playgroud)
我该怎么做val才能确定数据类型是什么?
我是否使用Val.Value或Val.WrappedValue或Val.WrappedValue.Value(无论有什么区别?)
我用来测试的标签又回来了 Val = "i=6".....
这是指什么?
什么数据类型是“6”和
我如何将 val 转换为我可以使用的东西。
任何帮助将不胜感激。
谢谢
一般情况下会发生什么:如果客户端已在OPC-UA节点上进行了订阅,并且这在一段时间内正在运行.OPC-UA服务器以标准行为向客户端发布数据.然后,OPC-UA服务器因任何原因重新启动,OPC-UA是否存储其订户并恢复连接并在启动后继续发布数据?或者客户端是否需要感知服务器已关闭并因此重新创建订阅?如果是这种情况,通常应该使用轮询来实现更高的稳定性吗?
我正在编写一个 OPC UA 客户端来连接到 Sofnet(来自西门子的 OPC 服务器)。连接的服务器方法是 SignAndEncrypt,所以我需要“der”格式的 x509 证书。
我使用 openssl 制作了自己的自签名证书,但有一个名为“Subject Alt Names”的字段,我必须在其中指定 URI 的应用程序。我已经看到这个字段可以用 openssl 填充配置文件,但是当我创建证书时,我看不到“主题替代名称”。
有人可以帮助我创建证书或为我提供验证我的 OPC 客户端的线索吗?
提前致谢。
从查看节点ids文件,您会注意到节点ID跳过951 - 1999范围,即没有OPC UA节点,该节点在该范围内.
该范围是否保留供应用程序使用?我的服务器实现在950 - 1999范围内使用nodeids是否安全?
如果您将分享有关nodeid范围的规范的一部分,我将不胜感激.
我注意到所有OPC标签ID都以开头ns=2;s=。
可能的NodeId值的一些示例如下:
ns=2;s=AcquisitionTimeRemaining ns=2;s=Statusns=2;s=Time我想知道这个前缀的意义是什么。
有人在论坛上问了这个问题。给出的答案是ns前缀指定NodeId所属的名称空间索引。回答者继续指出:
出于奇怪的历史原因,我们假设ns = 1(如果未明确显示)。Kepware的节点都在ns = 2中,因此必须指定。
我没有使用“ Kepware节点”,并且我的命名空间仍设置为2 ...它将始终为2吗?我找不到有关前缀s代表什么的任何信息。
opc ×10
opc-ua ×5
automation ×1
canopen ×1
certificate ×1
ipc ×1
kepserverex ×1
modbus ×1
openssl ×1
performance ×1
plc ×1
subscription ×1