请解释OPC UA和OPC DA之间的区别是什么?
在哪种情况下应该使用哪一种,如果可以为OPC UA和OPC DA提供任何示例,那将会很有帮助
有谁知道C#OPC客户端示例应用程序?我正在寻找一个好的开源来学习协议.如果它使用OPC基础.net核心apis,我更喜欢它.
作为访问由各种PLC组成的系统的过程数据的解决方案,OPC-UA是否还有其他可行的替代方案?什么是平台独立的,可以与不同品牌的产品"说话"?
我听说过MQTT,但它似乎更像是传输协议,只有那样.它没有像信息建模等所有更高级别的东西.
谢谢你的帮助!
我正在开发一个C#自定义OPC客户端,我开始在控制台应用程序中快速写入,一切都按照我的要求完美运行.
然后我决定制作一个Windows窗体应用程序以获得视觉体验.
Windows窗体应用程序只是停止工作,大约一分钟后停止从OPC服务器读取数据.控制台应用程序在哪里继续阅读和阅读.
在调试模式中我也找不到任何明显的东西.
我绝对抓着稻草在这里,希望有人可以解决一些问题.
每个应用程序都使用OPCFoundation提供的.dll文件.
这是控制台应用程序
static void Main(string[] args)
{
Opc.URL url = new Opc.URL("opcda://localhost/RSLinx OPC Server");
Opc.Da.Server server = null;
OpcCom.Factory fact = new OpcCom.Factory();
server = new Opc.Da.Server(fact, null);
server.Connect(url, new Opc.ConnectData(new System.Net.NetworkCredential()));
// Create a group
Opc.Da.Subscription group;
Opc.Da.SubscriptionState groupState = new Opc.Da.SubscriptionState();
groupState.Name = "Group";
groupState.Active = true;
group = (Opc.Da.Subscription)server.CreateSubscription(groupState);
// add items to the group.
Opc.Da.Item[] items = new Opc.Da.Item[6];
items[0] = new Opc.Da.Item();
items[0].ItemName = "[UX1]F20:9";
items[1] = new Opc.Da.Item();
items[1].ItemName …
Run Code Online (Sandbox Code Playgroud) 我们目前正在使用KEP Server的免费跟踪版本,以便我们的OPC与我们的PLC进行通信.我们想知道是否有人知道任何好的开源OPC软件.
我们的应用程序广泛使用COM和DCOM,因此我们需要确保正确设置COM安全权限.我知道我可以在组件服务MMC管理单元下访问这些权限,我也可以设置下的属性页计算机的默认值/极限
在DCOM Config节点下,我可以向下钻取并为各个应用程序设置安全权限
我也理解"默认值"(除非根据每个应用程序明确设置权限,DCOM应用程序将使用的内容),"限制"(即使每个应用程序设置超出这些设置也将强制执行哪些权限)之间的关系,但是我我不能理解(并且找不到任何文档)我可以设置的不同设置之间的区别
我正在使用OPC UA Foundation SDK开发一个小客户端.什么是最小的C#代码:
我得到服务器端点(没有发现),安全性无.
代码不应该使用配置文件,也不需要STA.
对此的任何帮助都不仅仅是值得赞赏的.
我正在尝试与 OPC DA 服务器进行通信,并且需要写入数组格式的标签。我们可以连接模拟服务器,读取标签(int、real、array)和写入标签(int、real、str)。当我们需要写入数组标签时,问题就出现了。OpenOPC 库的开发人员 (Barry Barnreiter) 建议使用 VARIANT 变量,因为 OPC“希望在写入复杂对象(例如数组)时看到 Windows VARIANT 结构”。
这是代码:
from win32com.client import VARIANT
import pythoncom
import OpenOPC
opc_local = OpenOPC.open_client()
opc_local.connect('Matrikon.OPC.Simulation','localhost')
values = VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, [1.0, 2.0, 3.0, 4.0, 5.0, 6.0])
w = opc_local.write(('Bucket Brigade.ArrayOfReal8', values))
print(w)
Run Code Online (Sandbox Code Playgroud)
这是执行 opc_local.write 行时出现的错误:
AttributeError: 'module' object has no attribute 'VARIANT'
Run Code Online (Sandbox Code Playgroud)
这是整个回溯:
runfile('C:/Users/nadmin/Downloads/sanstitre0.py', wdir='C:/Users/nadmin/Downloads')
Traceback (most recent call last):
File "<ipython-input-5-6799f41ab928>", line 1, in <module>
runfile('C:/Users/nadmin/Downloads/sanstitre0.py', wdir='C:/Users/nadmin/Downloads')
File "C:\Users\nadmin\AppData\Local\Continuum\anaconda2\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line …
Run Code Online (Sandbox Code Playgroud)