UDP (Professional)

ℹ️

此接口目前处于 Beta 阶段

UDP 接口概述

UDP 接口提供高性能的信号通信,具有最小的周期时间,可实现应用程序与 realvirtual.io 之间的快速连接。它支持通过 CSV 符号表导入进行自动信号配置,使与 PLC 和外部系统的集成快速高效。

接口属性

UDP 接口使用独立的发送和监听端口进行操作。为发送和监听目的分配不同的端口至关重要。所有 PLCInput 信号都发送给远程伙伴,所有 PLCOutput 信号都从远程伙伴接收。

UDP 接口属性

基本属性

  • Remote Listen Port - 远程机器上发送消息的 UDP 端口号(默认:11000)
  • Local Listen Port - 本地机器上接收传入消息的 UDP 端口号(默认:11001)
  • Remote IP Address - 发送 UDP 消息的远程机器 IP 地址(如 127.0.0.1 用于本机)
  • Debug Mode - 启用发送和接收 UDP 消息的详细日志记录以便故障排除

CSV 符号表属性

  • Symbol Table - 包含信号定义的 CSV 符号表文件路径
  • Split Char - 用于分隔 CSV 文件中列的分隔符(通常为分号或逗号)

使用 UDP 接口时,所有信号都以字节数组的形式发送和接收,以确保最高效的数据包大小。每个信号必须在其 Name 属性中定义一个值,以指示其在字节数组中的位置。由于只有一条发送消息和一条接收消息,输入和输出的位置可能会重叠。信号数据大小必须遵循以下准则:

  • Boolean: 始终占用一个完整字节中的第一位(共 1 字节)
  • Integer: 占用 4 字节
  • Float (REAL): 占用 4 字节

CSV 符号表导入

UDP 接口支持通过 CSV 符号表导入进行自动信号配置。此功能允许您通过导入从 PLC 或 SCADA 系统导出的 CSV 文件来快速配置所有信号。

CSV 文件格式

CSV 文件必须包含三列和一个标题行:


Name;Type;Direction
SpeedSetpoint;REAL;PLC_IN
CurrentSpeed;REAL;PLC_OUT
StartButton;BOOL;PLC_IN
RunningStatus;BOOL;PLC_OUT
ErrorCode;INT;PLC_OUT
TargetPosition;INT;PLC_IN

列定义:

  1. Name - 信号名称(在 realvirtual 中用作 SymbolName)
  2. Type - 信号的数据类型
    • BOOL - 布尔值(1 字节)
    • INT - 整数值(4 字节)
    • REAL - 浮点值(4 字节)
    • TEXT, STRING, WSTRING - 文本值(支持有限)
    • Direction - 信号方向
    • PLC_IN - 输入信号 (Unity → 外部应用程序)
    • PLC_OUT - 输出信号 (外部应用程序 → Unity)

使用 CSV 导入

  1. 导出符号表 - 从您的 PLC/SCADA 系统以 CSV 格式导出
  2. 选择符号表 - 在 Inspector 中点击"Select symbol table"按钮选择您的 CSV 文件
  3. 导入 - 点击"Import symbol table"按钮自动创建所有信号

导入过程将:

  • 为 CSV 中的每一行自动创建信号
  • 分别为 INPUT 和 OUTPUT 信号按顺序计算字节位置
  • 显示导入的信号总数和每个方向的字节大小

控制台输出示例:


Successfully imported 6 signals from C:\symbols.csv
Total byte sizes - Inputs (UnityPLC): 12 bytes, Outputs (PLCUnity): 13 bytes

信号字节定位

导入过程自动计算字节位置:

  • INPUT 信号 (PLC_IN) - 字节位置从 0 开始,根据数据类型大小递增
  • OUTPUT 信号 (PLC_OUT) - 字节位置从 0 开始,独立于输入信号递增

示例:

信号名称类型方向字节位置大小
StartButtonBOOLPLC_IN01 byte
TargetPositionINTPLC_IN14 bytes
SpeedSetpointREALPLC_IN54 bytes
RunningStatusBOOLPLC_OUT01 byte
CurrentSpeedREALPLC_OUT14 bytes
ErrorCodeINTPLC_OUT54 bytes

消息总大小:

  • INPUT 消息 (Unity → PLC): 9 字节
  • OUTPUT 消息 (PLC → Unity): 9 字节

常见用例

  • PLC 集成 - 通过 UDP 与 Siemens、Beckhoff 或其他 PLC 系统交换数据
  • SCADA 通信 - 连接到 SCADA 系统进行实时数据交换
  • SEW 驱动集成 - 从 SEW Eurodrive 系统导入信号表
  • 自定义工具 - 与自定义 Python、C# 或其他应用程序通信
  • 高速数据交换 - 最小开销以实现快速周期时间

另请参见