首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OPC UA与socket编程

OPC UA与socket编程
EN

Stack Overflow用户
提问于 2022-04-20 03:55:58
回答 3查看 205关注 0票数 1

工厂有MES (制造执行系统),我有机器。工厂想用他们的MES来控制我的机器(开始/停止生产等)。并监控实时生产数据(如生产多少产品)。

简而言之,目标是:

代码语言:javascript
运行
复制
MES ---controls--> machine
MES <--reports data---  machine

需要注意的是,我的机器已经有了一个 WinForm应用程序(部署MVP模式),它包含了所有的业务逻辑,并且可以很容易地被脱机工作人员使用。为了满足工厂的需要,我必须对.NET代码进行一些升级/转换。

经过一番调查,我找到了两种可能的方法来实现这个目标:

  1. 让我的机器充当OPC UA服务器,让MES适应我的机器
  2. 使用套接字编程在MES和机器

之间进行通信。

我对上述两种方法都没有任何经验,所以你能告诉我每种方法的优缺点吗?还是有第三种更好的方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-04-21 14:57:16

从长远来看,OPC UA是首选的选择。它看起来似乎相当广泛,而且有一点学习曲线,但这是因为它附带了许多内置的特性(安全性、地址空间、读、写、方法调用、数据更改、事件、警报、历史读取等等)。你不会马上就需要所有这些资源,但你也不需要使用超过你所需要的。

对于.NET,您可以使用,它提供了大部分内容的实现。它是免费的(非成员的GPL),但缺乏文档,所以您可能想考虑商业选择。

特别是,如果您希望简单可靠地从MES建立连接,那么定义您自己的套接字协议是没有任何意义的。这将花费您大量的时间,容易出错,最终,您将是唯一一个谁可以调试它的问题。最后,您可能需要弄清楚您的MES如何在实践中使用您的协议。

坚持标准解决方案有明显的好处。

票数 2
EN

Stack Overflow用户

发布于 2022-04-20 08:02:56

如果您的机器有内置的OPC服务器,并且您的MES可以充当OPC客户端,那么点1是一个很好的解决方案。

另一方面,如果您必须在您的机器上编写OPC UA服务器,忘记它,这是一项非常困难的工作,因为OPC UA无疑是所有最常见的工业协议中最复杂的。

如果使用原始套接字编程,那么您必须定义自己的协议,这就像重新发明轮子一样。

也许您可以选择使用更简单的工业协议,例如Modbus TCP。

票数 2
EN

Stack Overflow用户

发布于 2022-05-20 15:57:54

我在OPC UA方面有一些经验,必须承认它有一个非常陡峭的学习曲线。朱尼·阿罗的回答是对的。但第三种选择是另一种现有协议,它可能具有较少的功能,但更易于使用,例如MQTT。几乎每种语言都可以使用大量的开源实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71933905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档