Skip to content

Festo AX Controls (PLCnext) (Pro)

The Festo AX Controls interface connects realvirtual directly to Festo AX Controls controllers running PLCnext Technology — the open IEC 61131-3 runtime platform developed by Phoenix Contact and adopted by Festo for their AX Controls series.

Communication uses Festo’s RSC (Remote Service Call) library over TCP port 41100, providing direct access to PLCnext Global Data Space (GDS) variables. The interface supports two data exchange modes: subscription mode, where the controller pushes variable updates at a configurable sample rate, and polling mode, where realvirtual reads all output variables each cycle.

Both Boolean, integer, float, and string variable types are supported. An editor button connects to the controller at design time to import variables and create realvirtual signal objects automatically.

Festo AX Controls (PLCnext) interface Inspector showing connection, subscription, and variable import settings

  1. realvirtual Professional — The Festo interface and RSC DLLs are included in the Professional package.
  2. Network connectivity — Your development PC must be able to reach TCP port 41100 on the Festo controller.
  3. PLCnext firmware — The controller must be running PLCnext firmware with RSC services enabled (standard on all AX Controls firmware releases).
PropertyDescription
HostIP address or hostname of the Festo PLCnext controller (default: 192.168.1.10)
PortRSC service TCP port (default: 41100)
Use TLSEnable TLS encryption for the RSC connection. Recommended for production deployments
Validate CertificateValidate the server’s TLS certificate. Disable this for self-signed certificates in test environments
UsernamePLCnext authentication username (default: admin)
PasswordPLCnext authentication password (default: plcnext)
Connection Timeout SecondsTimeout in seconds for connection and read/write operations (default: 10)
PropertyDescription
Use SubscriptionUse PLCnext real-time subscription mode for output signals. When disabled, polling is used instead
Subscription Cycle MsSample rate in milliseconds for subscription mode. Lower values give higher update rates. Minimum effective value is 10 ms (default: 100)
PropertyDescription
Import Root PathRoot component path on the PLCnext to browse for variables during signal import (default: Arp.Plc.Eclr for the IEC 61131-3 runtime). Leave empty to browse all components
Default Import DirectionDefault signal direction assigned to imported variables (Input or Output)

Button:

  • Import Signals from PLC — Connects to the controller from the Unity Editor, browses variables under the Import Root Path, and creates or updates realvirtual signal objects as children of the interface component.
  1. Add the Festo AX Controls (PLCnext) component to a GameObject in your scene via Add Component > realvirtual > Interfaces > Festo AX Controls (PLCnext)
  2. Add REALVIRTUAL_FESTO to Edit > Project Settings > Player > Scripting Define Symbols and recompile
  3. Set Host to the IP address of your Festo controller
  4. Enter your Username and Password
  5. Configure Import Root Path to point to your PLC program (e.g. Arp.Plc.Eclr)
  6. Click Import Signals from PLC — the interface connects, browses variables, and creates signal objects
  7. Review the imported signals and set Input direction on any variables that Unity should write to the PLC
  8. Press Play — the interface connects automatically and signal exchange starts

Each signal stores its PLCnext variable path in the Address metadata field. The path format follows the PLCnext GDS convention:

ComponentName/ProgramName.VariableName

Examples:

SignalAddress
Boolean motor statusArp.Plc.Eclr/MainInstance.Motor1_Running
Integer counterArp.Plc.Eclr/MainInstance.PartCounter
Array elementArp.Plc.Eclr/MainInstance.ConveyorSpeeds[0]
Array sliceArp.Plc.Eclr/MainInstance.ConveyorSpeeds[0:9]
Struct fieldArp.Plc.Eclr/MainInstance.DriveState.ActualPosition

The component name for the standard IEC 61131-3 (Eclr) runtime is Arp.Plc.Eclr. Your program instance name is the name assigned to the program in the PLCnext Engineer project.

When Use Subscription is enabled, the interface registers all output signals with the PLCnext subscription service. The controller pushes updated values at the configured Subscription Cycle Ms rate. This is the recommended mode for real-time simulation as it minimizes latency and reduces network overhead.

If the PLCnext firmware does not support the subscription service, the interface automatically falls back to polling mode and logs a warning.

When Use Subscription is disabled, the interface performs a batched read of all output signal addresses each communication cycle. This mode is compatible with all PLCnext firmware versions but has higher latency than subscription mode.

Input signals (Unity writing to the PLC) always use batched write operations regardless of which mode is selected. On the first cycle after connection, all input values are sent to initialize the PLC state.

The Import Signals from PLC editor button provides one-click signal discovery:

  1. The interface connects to the controller using the configured credentials
  2. Variables are browsed from Import Root Path using the PLCnext variable browse service
  3. For each discovered variable, a realvirtual signal object is created as a child of the interface component
  4. The Address metadata field is set to the full PLCnext instance path
  5. All imported signals receive the Default Import Direction — change individual signals to Input for variables that Unity should write back to the PLC

Supported PLCnext data types map to realvirtual signal types as follows:

PLCnext Typesrealvirtual Signal Type
BOOLBool
INT, UINT, SINT, DINT, UDINT, BYTE, WORD, DWORDInt
REAL, LREALFloat
STRING, WSTRINGText

Variables with unsupported types are skipped and a warning is logged to the Unity console.


© 2025 realvirtual GmbH https://realvirtual.io - All rights reserved. No part of this publication may be reproduced, distributed, or transmitted in any form or by any means, including printing, saving, photocopying, recording, or other electronic or mechanical methods, without the prior written permission of the publisher.