I want to give the position to a virtual axis on Acopos P3 with an incremental encoder connected to a reACTION module.
This virtual axis is a master axis which have many slaves.
Hi @Nils_Martino ,
feedback from AI (It was super positive)
The short answer is yes, it is absolutely possible, but the implementation details are specific because of how the reACTION module handles data compared to a standard virtual axis.
Since you are using a reACTION module (X20RT8001), you are dealing with ultra-fast I/O processing (sub-microsecond cycles) that operates independently of the standard PLC task cycle.
How the Architecture Works
To make this work as a master for an ACOPOS P3, you essentially create a bridge between the reACTION logic and the mapp Motion environment.
Encoder Capture: The X20RT8001 reads the incremental encoder signals.
Data Transfer: The reACTION program moves the counter value into a global variable mapped to the POWERLINK cycle.
Virtual Axis Mapping: Instead of a pure “Internal” virtual axis, you configure a Virtual Axis in Automation Studio and set its External Hardware Interface to point to the encoder value coming from the reACTION module.
Master/Slave Link: Once that virtual axis has the position, the ACOPOS P3 slaves follow it via standard coupling commands (MC_GearIn, MC_CamIn, etc.).
Key Considerations for Your Setup
Feature
Consideration
Synchronicity
The reACTION module is much faster than the PLC. You must ensure the encoder value is “latched” or sent to the PLC in a way that minimizes jitter for the slaves.
Data Type
Incremental encoders usually provide a raw DINT or UINT counter. You will need to configure the Scaling (units per increment) in the Virtual Axis configuration.
Network Load
Since the P3 is a double-axis drive and you have a master-slave relationship, ensure your POWERLINK cycle time is optimized (usually 400µs or 800µs is the sweet spot for this hardware).
Important Technical Note
Because the X20RT8001 is a reACTION module, you cannot simply “link” the terminal to the axis like a standard X20 encoder slice. You must write a small reACTION program (using the reACTION library) to:
Read the EncoderCounter.
Assign it to a reAction_Output variable.
Map that variable in the I/O Mapping to a variable used by your Virtual Axis
========================================================
Step 1) X20RT8001
You enable ABR encoder + Result type DINT or UDINT, below one example with DINT
Hi @Nils_Martino ,
Could you upload the systemDump? I’m interesting to see which ParID we set in the network command trace + additional info on motion logger.
In the mean time I’m trying to collect more information about “Encoder on network“ and possible limitations.