工具

OPC UA 服务器

qianmoQqianmoQ· 更新于 2026-10-01· 阅读 6 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

OPC UA Server 将 PLC4X 变成一个工业级的 OPC UA 网关。

它会为任意数量的设备建立 PLC4X 连接,并把这些设备所配置的标签以 OPC UA 地址空间的形式发布出去,使任何 OPC UA 客户端都能对其进行读写——无论设备本身使用的是哪种协议。

该服务基于 Eclipse Milo OPC UA 协议栈构建。

它位于 plc4x-extras 代码仓库中。

请不要将其与 OPC UA 驱动 混淆,后者用于让 PLC4X 应用程序充当 OPC UA 客户端。

构建该服务

在模块目录下执行:

mvn package

这将生成可运行的 fat-jar target/plc4x-opcua-server-1.0.0-uber-jar.jar。

配置文件

config.yml 文件用于对服务器进行配置。以下是需要配置的根级设置。

  • version: 该版本仅作为内部检查,用于确认使用的是正确版本的配置文件。
  • dir: 这是安全目录的路径。所有配置信息(包括证书)都存储在此目录中。请务必为该目录设置正确的权限以确保其安全性。
  • name: 这是 OPC UA 服务器的名称。可以是任意名称,但不应包含空格。
  • disableInsecureEndpoint: 用于禁用远程非安全 OPC UA 端点。
  • tcpPort: 可用于更改 opc.tcp 端口。
  • httpPort: 可用于更改 http.tcp 端口。
  • devices: 这是服务器需要通信的 PLC 或设备列表。每个设备应包含 name:、connectionString: 以及一个标签列表 tags:。

对于 devices 中的每个设备,应配置以下设置。

  • name: 这是设备的名称。可以是任意名称,只要不包含空格即可。
  • connectionString: 可以是任何有效的 PLC4X 连接字符串。

对于 tags 中的每个标签,应配置以下设置:-

  • alias: 这是标签的名称,可以是任意名称,但不应包含空格。该名称将作为标签名显示在 OPC UA 服务器树中。请确保其在配置文件中唯一。
  • address: 这是与连接类型相匹配的任意有效 PLC4X 地址。

下面是一个配置文件示例。

---
version: "0.8"
dir: {path-to-security-dir}
name: "Plc4xOPCUAServer"
disableInsecureEndpoint: true
devices:
    - name: "ModbusDevice"
      connectionString: "modbus-tcp://127.0.0.1:502"
      tags:
        - alias: "TemporaryBOOLARRAY"
          address: "000001:BOOL[10]"
        - alias: "TemporaryWORD2"
          address: "400002:WORD"
        - alias: "TemporaryUINT3"
          address: "400003:UINT"
        - alias: "TemporaryINT4"
          address: "400004:INT"
        - alias: "TemporaryDINT5"
          address: "400005:DINT[4]"
        - alias: "TemporaryREAL6"
          address: "400006:REAL"
        - alias: "TemporaryREAL7"
          address: "400007:REAL"
        - alias: "TemporaryREAL8"
          address: "400008:REAL"
- name: "SimulationDevice"
    connectionString: "simulated://127.0.0.1"
    tags:
        - alias: "Temporary"
          address: "RANDOM/Temporary:Integer"
tcpPort: 12687
httpPort: 8445

运行

要运行 Java 可执行文件,请执行:-

java -jar plc4x-opcua-server-1.0.0-uber-jar.jar -c {path-to-config-file} -i

这将以交互模式(-i)启动 OPC UA 服务器,该开关会让服务器在启动时提示输入用户名和密码。不过,在正常运行时应省略 -i 开关。

如果 {path-to-security-dir}/security/plc4x-opcuaserver.pfx 处没有证书,则会创建一个自签名证书。该证书使用启动时提供的安全密码进行保护。

如果在此处放置其他证书,请确保该证书已设置密码保护,并再次运行服务器并使用 -s / --set-passwords 开关来设置该密码。

java -jar plc4x-opcua-server-1.0.0-uber-jar.jar -c {path-to-config-file} -i -s

OPC UA 服务器运行后,你就可以使用连接字符串从你喜爱的 OPC UA 客户端连接到它。

opc.tcp://{ip.address}:12687/plc4x

将 {ip.address} 替换为服务器的 IP 地址。

如果要使用加密连接,请务必将 {path-to-security-dir}/security/pki/rejected 中生成的客户端证书移动到受信任目录中。否则,客户端在尝试连接时会收到安全错误。

评论

登录后参与评论

正在加载评论…