Beckhoff TwinCAT

简介

本场景是一个虚拟调试设置,用于测试和验证使用 TwinCAT 编程的真实或虚拟 Beckhoff PLC。PLC 控制过程流程,包括启动机器人,而机器人控制器则完全由仿真模拟。这使得自动化逻辑的安全灵活测试成为可能,无需真实的硬件设备。有关前置条件和设置说明,请访问 https://doc.realvirtual.io/modellzoo

本文档列出了 realvirtual (Unity) 与 Beckhoff TwinCAT PLC 之间用于控制 TwinCAT 演示的所有信号,遵循以下约定:IO.Input = PLC 输入(来自 realvirtual),IO.Output = PLC 输出(来自 PLC)。下表将每个信号映射到其在 modelzoo 仿真中的用途。

前置条件

要使用 Beckhoff ModelZoo 场景,您需要安装 Beckhoff TwinCAT 3(推荐版本:3.1.x 或更高)。您可以连接真实的 PLC,也可以在 PC 上使用本地 TwinCAT PLC 运行时 (PLCSim)

对于与 PLC 的通信,TwinCAT 3 ADS(通常是完整 TwinCAT3 安装的一部分)必须安装在运行 realvirtual.io ModelZoo 的同一台 PC 上。确保 TwinCAT 处于运行模式,并且在仿真设置中配置了正确的 AMS NetID端口

我们为这个场景提供了一个完整的 TwinCAT 项目,可以直接在 TwinCAT 环境中导入和编译。

即用型 Beckhoff 项目

对于这个 ModelZoo 场景,我们提供了一个完整的 Beckhoff TwinCAT 项目

您可以在 TwinCAT 环境中直接导入、编译和运行该项目,以无缝控制仿真。

接口配置

在连接到 Beckhoff PLC 之前,您需要配置用于通信的 NetID端口

操作步骤:

  1. 点击工具栏中的设置图标 (⚙️)。
  2. 输入您的 TwinCATInterface.NetIdTwinCATInterface.Port,如下方图片所示。
  3. 确保这些值与您的 TwinCAT 运行时设置匹配。
📘 有关如何查找或配置 NetID端口的详细信息,请参考 Beckhoff 官方文档。

信号

1. 机器人信号

1.1 机器人整体状态

这些信号告诉 PLC 机器人是处于装载还是卸载状态,由 realvirtual 仿真确定。

信号类型方向描述
IO.Input.Robot.bStatusLoadingBOOLrealvirtual → PLC (In)表示机器人正在装载零件
IO.Input.Robot.bStatusUnloadingBOOLrealvirtual → PLC (In)表示机器人正在卸载零件

1.2 启动机器人程序

这些信号来自 PLC, realvirtual 用于在仿真中触发机器人动作。

信号类型方向描述
IO.Output.Robot.bStartLoadingBOOLPLC → realvirtual (Out)由 PLC 设置时,请求机器人开始装载。
IO.Output.Robot.bStartUnloadingBOOLPLC → realvirtual (Out)由 PLC 设置时,请求机器人开始卸载。

2. 机器信号

这些信号处理仿真机器(如铣削站)与 PLC 之间的交互。

信号类型方向描述
IO.Output.Machine.bStartBOOLPLC → realvirtual (Out)由 PLC 设置时,启动仿真中的机器操作。
IO.Input.Machine.bMachiningBOOLrealvirtual → PLC (In)告诉 PLC 机器当前正在加工
IO.Input.Machine.bMachiningFinishedBOOLrealvirtual → PLC (In)告诉 PLC 机器已完成操作
IO.Input.Machine.bDoorOpenBOOLrealvirtual → PLC (In)表示仿真中机器门已打开。
IO.Input.Machine.bDoorClosedBOOLrealvirtual → PLC (In)表示仿真中机器门已关闭。

3. 入口和出口传送带

3.1 出口传送带信号

信号类型方向描述
IO.Output.ExitBelt.Motor.bStartBOOLPLC → realvirtual (Out)PLC 请求仿真启动出口传送带电机。
IO.Input.ExitBelt.Sensor.bOccupiedBOOLrealvirtual → PLC (In)仿真指示出口传送带传感器是否被触发/占用。

3.2 入口传送带信号

信号类型方向描述
IO.Output.EntryBelt.Motor.bStartBOOLPLC → realvirtual (Out)PLC 请求启动入口传送带电机。
IO.Input.EntryBelt.Sensor.bOccupiedBOOLrealvirtual → PLC (In)仿真指示入口传送带传感器是否被触发/占用。

4. HMI(按钮和指示灯)

这些信号对应仿真的 HMI 面板。有些由仿真设置并由 PLC 读取(Inputs),有些由 PLC 设置并由仿真读取(Outputs)。

信号类型方向描述
IO.Input.HMI.OnSwitch.bOnBOOLrealvirtual → PLC (In)仿真指示主 HMI 开关已打开。
IO.Input.HMI.Emergency.bOnBOOLrealvirtual → PLC (In)仿真指示紧急按钮已按下。
IO.Input.HMI.AutomaticButton.bPressedBOOLrealvirtual → PLC (In)仿真指示"自动"按钮按下事件。
IO.Output.HMI.AutomaticButton.bLightBOOLPLC → realvirtual (Out)打开按钮的指示灯。
IO.Input.HMI.Robot.bOnBOOLrealvirtual → PLC (In)仿真指示机器人按钮已按下。
IO.Input.HMI.EntryBelt.bOnBOOLrealvirtual → PLC (In)仿真指示入口传送带按钮已按下。
IO.Input.HMI.ExitBelt.bOnBOOLrealvirtual → PLC (In)仿真指示出口传送带按钮已按下。
IO.Output.HMI.Robot.bLightBOOLPLC → realvirtual (Out)打开按钮的指示灯。
IO.Output.HMI.EntryBelt.bLightBOOLPLC → realvirtual (Out)打开按钮的指示灯。
IO.Output.HMI.ExitBelt.bLightBOOLPLC → realvirtual (Out)打开按钮的指示灯。

5. TwinCAT 配置

  1. 匹配每个信号

在您的 TwinCAT PLC 项目中,为这里列出的每个信号创建变量。确保变量名称完全匹配(区分大小写),并且类型均为 BOOL(除非另有说明)。

  1. 映射到物理或虚拟 I/O
    • 如果连接到真实硬件,将这些 PLC 变量映射到对应的数字输入/输出。
    • 对于纯仿真,将它们保留为 TwinCAT PLC 中的内部变量。
    • 启用 ADS

确保 TwinCAT 中的 AMS Router 和 ADS 设置已正确配置,以便 Unity/realvirtual 可以连接。您将需要 Unity 项目中的 AMS Net ID端口

  1. 配置 realvirtual
    • 在 Unity 中,找到 TwinCATInterface(或类似的脚本)。
    • 输入正确的 ADS 设置(Net ID、IP 地址、端口)。
    • 将每个 "IO.Input" 和 "IO.Output" 字符串分配给匹配的 TwinCAT 变量。