【问题标题】:can two different OPC server share same port?两个不同的 OPC 服务器可以共享同一个端口吗?
【发布时间】:2021-02-17 01:33:04
【问题描述】:

我正在尝试通过 OPC UA 服务器将机器人控制器 CODESYS 程序与 OPC Expert 连接,并且正在侦听 4840 端口,而在 OPC Expert 上,我正在尝试 opc.tcp://hp-nb:4840/uadiscovery。我还在我的机器上安装了 freeopcua,它也在监听 4840 端口,在 OPC Expert 上它就像 opc.tcp//0.0.0.0:4840。在 OPC Expert 上,我需要连接 CODESYS 应用程序。我可以连接 CODESYS OPC 服务器,但无法从 CODESYS 控制器连接我的应用程序。是因为两台服务器正在侦听同一个端口吗?如果没有,那么我该如何解决我的问题?附上我的问题图片enter image description here

【问题讨论】:

    标签: opc opc-ua codesys


    【解决方案1】:

    在同一台计算机上运行的两个程序或进程无法侦听同一端口。

    只有当那台计算机有两个具有两个不同 IP 的网络接口卡并且您可以选择每个进程通过哪个接口连接时才有可能,这通常是不可能的

    更新

    CODESYS Soft PLC 仿真器,通常与 CODESYS 一起安装,还包括一个侦听端口 4840 的 OPC Server,如果您停止 Soft PLC,请右键单击 windows 通知区域上的图标,它可能会关闭侦听端口

    【讨论】:

    • 谢谢,但我需要连接 CODESYS OPC 服务器以进行 CODESYS 数据加密。我从我的机器上删除了另一个 freeOpc 服务器,但它仍然显示 2servers 像以前一样连接到端口 4840。我检查了我机器的资源监视器但是我发现只有 CODESYS 在网络活动、TCP 连接和侦听端口中侦听端口 4840。那么如何停止监听 4840 端口的 freeOPC 服务器?
    【解决方案2】:

    理论上,如果两个 OPC UA 服务器协同工作,它们可以共享同一个端口(在同一个网络接口上)。对于 opc.tcp,他们没有标准的方法来做到这一点。因此,以这种特殊方式编写的来自同一供应商的两台服务器理论上可以共享端口。然而实际上,使用“opc.tcp”的 OPC UA 服务器不能共享同一个端口,因为它们不知道如何协调访问和路由数据。

    对于其他协议,情况有所不同。例如。对于通过 HTTPS 的 OPC UA,让服务器在同一端口上侦听更容易 - 主要是因为操作系统已经包含一个可以“为他们”侦听端口的部分,并根据 URL 路由请求。

    但是,在您的情况下,不仅仅是两台服务器不能共享同一个端口。还有一个问题是其中一台服务器在连接点描述中返回“0.0.0.0”作为其IP地址,无论如何这都是无效的。

    【讨论】:

    • 关于 2servers 我已经从我的机器上删除了 freeOpcUa 服务器。但它仍然显示在 OPC Expert 上侦听 4840 的同一端口。就像我检查我机器的资源监视器一样,我可以看到只有 CODESYS 程序在网络活动、TCP 连接和侦听端口的端口 4840 上运行。但是,如果我检查 OPC Expert,我会在端口 4840 上获得 freeOpc 服务器。由于这个问题,我无法通过 OPC Expert 或 Ua Expert 中的 OPC 服务器连接我的目标应用程序。那么遇到这个问题我该如何停止在端口 4840 上监听 freeOpc 服务器?
    • “如果我检查 OPC Expert,我会在端口 4840 上获得 freeOpc Server”是什么意思。这不只是在您之前尝试过的端点历史中吗?请描述在 UA Expert 中使用的步骤,以及您在那里看到的服务器。
    猜你喜欢
    • 2012-06-23
    • 2011-06-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    相关资源
    最近更新 更多