Festo AX Controls / PLCnext (Professional)

ℹ️

此功能在 realvirtual 6.3.3 (Professional) 中添加 — Beta 版

概述

Festo AX Controls 接口将 realvirtual 直接连接到运行 PLCnext TechnologyFesto AX Controls 控制器 — PLCnext Technology 是由 Phoenix Contact 开发并被 Festo 采用于其 AX Controls 系列的开放 IEC 61131-3 运行时平台。

通信使用 Festo 的 RSC (Remote Service Call) 库,通过 TCP 端口 41100 进行,提供对 PLCnext 全局数据空间 (Global Data Space, GDS) 变量的直接访问。该接口支持两种数据交换模式:订阅模式 (subscription mode),控制器以可配置的采样率推送变量更新;轮询模式 (polling mode),realvirtual 每个周期读取所有输出变量。

支持布尔、整数、浮点和字符串变量类型。编辑器按钮可在设计时连接到控制器,自动导入变量并创建 realvirtual 信号对象。

Festo AX Controls (PLCnext) 接口 Inspector,显示连接、订阅和变量导入设置

前提条件

  1. realvirtual Professional — Festo 接口和 RSC DLL 包含在 Professional 包中。
  2. 网络连接 — 您的开发 PC 必须能够访问 Festo 控制器上的 TCP 端口 41100
  3. PLCnext 固件 — 控制器必须运行启用了 RSC 服务的 PLCnext 固件(所有 AX Controls 固件版本均默认支持)。

属性

连接设置

属性描述
HostFesto PLCnext 控制器的 IP 地址或主机名(默认:192.168.1.10
PortRSC 服务 TCP 端口(默认:41100
Use TLS为 RSC 连接启用 TLS 加密。建议在生产环境中使用
Validate Certificate验证服务器的 TLS 证书。在测试环境中使用自签名证书时请禁用此选项
UsernamePLCnext 认证用户名(默认:admin
PasswordPLCnext 认证密码(默认:plcnext
Connection Timeout Seconds连接和读/写操作的超时时间(秒)(默认:10

订阅设置

属性描述
Use Subscription对输出信号使用 PLCnext 实时订阅模式。禁用时改用轮询模式
Subscription Cycle Ms订阅模式的采样率(毫秒)。值越小更新频率越高。最小有效值为 10 ms(默认:100

变量导入

属性描述
Import Root Path信号导入时在 PLCnext 上浏览变量的根组件路径(默认:Arp.Plc.Eclr,对应 IEC 61131-3 运行时)。留空则浏览所有组件
Default Import Direction导入变量的默认信号方向(InputOutput

按钮:

  • Import Signals from PLC — 从 Unity Editor 连接到控制器,浏览 Import Root Path 下的变量,并在接口组件下创建或更新 realvirtual 信号对象。

快速入门

  1. 通过 Add Component > realvirtual > Interfaces > Festo AX Controls (PLCnext)Festo AX Controls (PLCnext) 组件添加到场景中的 GameObject 上
  2. Edit > Project Settings > Player > Scripting Define Symbols 中添加 REALVIRTUAL_FESTO 并重新编译
  3. Host 设置为您的 Festo 控制器的 IP 地址
  4. 输入您的 UsernamePassword
  5. 配置 Import Root Path 指向您的 PLC 程序(例如 Arp.Plc.Eclr
  6. 点击 Import Signals from PLC — 接口将连接、浏览变量并创建信号对象
  7. 检查导入的信号,并将 Unity 需要写入 PLC 的变量设置为 Input 方向
  8. 按 Play — 接口自动连接并开始信号交换

信号地址格式

每个信号将其 PLCnext 变量路径存储在 Address 元数据字段中。路径格式遵循 PLCnext GDS 约定:


ComponentName/ProgramName.VariableName

示例:

信号地址
布尔电机状态Arp.Plc.Eclr/MainInstance.Motor1_Running
整数计数器Arp.Plc.Eclr/MainInstance.PartCounter
数组元素Arp.Plc.Eclr/MainInstance.ConveyorSpeeds[0]
数组切片Arp.Plc.Eclr/MainInstance.ConveyorSpeeds[0:9]
结构体字段Arp.Plc.Eclr/MainInstance.DriveState.ActualPosition

标准 IEC 61131-3 (Eclr) 运行时的组件名称为 Arp.Plc.Eclr。您的程序实例名称是在 PLCnext Engineer 项目中分配给程序的名称。

通信模式

订阅模式(默认)

启用 Use Subscription 时,接口向 PLCnext 订阅服务注册所有输出信号。控制器以配置的 Subscription Cycle Ms 速率推送更新值。这是实时仿真的推荐模式,因为它可以最大限度地减少延迟并降低网络开销。

如果 PLCnext 固件不支持订阅服务,接口会自动回退到轮询模式并记录警告日志。

轮询模式

禁用 Use Subscription 时,接口在每个通信周期对所有输出信号地址执行批量读取。此模式兼容所有 PLCnext 固件版本,但延迟高于订阅模式。

输入信号(Unity 写入 PLC)无论选择哪种模式,都始终使用批量写操作。连接后的第一个周期,所有输入值会被发送以初始化 PLC 状态。

从 PLC 导入信号

Import Signals from PLC 编辑器按钮提供一键信号发现功能:

  1. 接口使用配置的凭据连接到控制器
  2. 通过 PLCnext 变量浏览服务从 Import Root Path 浏览变量
  3. 为每个发现的变量在接口组件下创建 realvirtual 信号对象
  4. Address 元数据字段设置为完整的 PLCnext 实例路径
  5. 所有导入的信号都会获得 Default Import Direction — 将 Unity 需要写回 PLC 的变量单独改为 Input

支持的 PLCnext 数据类型映射到 realvirtual 信号类型如下:

PLCnext 类型realvirtual 信号类型
BOOLBool
INT, UINT, SINT, DINT, UDINT, BYTE, WORD, DWORDInt
REAL, LREALFloat
STRING, WSTRINGText

不支持类型的变量将被跳过,并在 Unity 控制台中记录警告。

另请参见


© 2025 realvirtual GmbH https://realvirtual.io - 版权所有。未经出版商事先书面许可,不得以任何形式或任何方式(包括打印、保存、复印、录制或其他电子或机械方法)复制、分发或传播本出版物的任何部分。