Maximum Data Size for Ethernet Cyclic I/O and High Axis Counts


When using a PLC to drive an RMC with a large number of axis, the number of registers supported by EtherNet/IP and PROFINET cyclic I/O may not be sufficient for the PLC to send commands directly to each axis via cyclic I/O.


There are two main methods to approach how a PLC controls an RMC:

  • Send commands directly to the axes
  • Start user programs

Both of these methods can be used simultaneously.

There are also two main methods of transferring data:

  • Cyclic
    Data is automatically transferred at a specified interval, such as 20 msec. For example, EtherNet/IP or PROFINET cyclic I/O.
  • Explicit
    Data is sent only when a PLC instruction is executed. For example, the Allen-Bradley MSG instruction.

Both of these methods can be used simultaneously.

Historically, with the RMC100, RMC75, and RMC150, some customers have preferred that the PLC be in control of all the motion sequencing and send commands directly to the RMC’s axes via cyclic I/O. For the RMC75, 150, and 200, this requires up to ten 32-bit registers per axis. This works well for lower numbers of axes, but as the number of supported axes in the RMC has increased, the communication protocols may not have enough data to do this.

Cyclic I/O Communications Data Limits

A typical EtherNet/IP cyclic I/O connection is limited to 124 registers in one direction, and 125 in the other direction. Some EtherNet/IP cyclic I/O connections can support Large Forward Open messages with 360 registers in each direction.

The RMC200 supports 3 EtherNet/IP connections. The first connection supports Large Forward Open with 360 registers in each direction, and the other two support 124/125 registers, for a total of about 608 registers in each direction.

Many PLCs, including Allen-Bradley, do not support Large Forward Open messages. Therefore, the total number of registers is about 3x124 = 372 registers. Some PLCs, such as Omron, do support Large Forward Open.

A PROFINET cyclic I/O connection supports 256 32-bit registers in each direction, which the RMC200 supports.


If your RMC has many axes, and you send commands to them with 10 registers per axis, you may exceed the communication limit. Here are ways to solve this or work around it:

  1. Use fewer than 10 registers per axis
    If you are only using commands with fewer than 9 parameters, then you don’t need to use the full 10 registers. For example, the Move Absolute command uses only 6 registers (for linear axes the last parameter is ignored, so it becomes 5 registers). By reducing the number of registers you are writing to for those axes, you may be able to write to more axes.

  2. Use explicit communications
    You can send all or some of the commands via explicit instructions, such as the Allen-Bradley MSG instruction. For example, if some axes are commanded only occasionally, you can send those commands in a different manner than the cyclic I/O.

  3. Use User Programs
    You can create user programs to handle the motion sequencing and send commands. Then the PLC only needs to start the user programs, which it can do by sending the Start Task command, or by writing to a variable that triggers a user program via the Program Triggers table.

Delta Computer Systems Website