# X20DC1073 position encoder via X2X/Powerling, Calculationg POS\_CTRL\_T\_TOTAL & POS\_CTRL\_T\_PREDICT

**URL:** <https://community.br-automation.com/t/x20dc1073-position-encoder-via-x2x-powerling-calculationg-pos-ctrl-t-total-pos-ctrl-t-predict/5196>\
**Category:** Mechatronics & Motion\
**Tags:** mapp-motion\
**Created:** [December 11, 2024, 10:13am UTC](https://community.br-automation.com/t/x20dc1073-position-encoder-via-x2x-powerling-calculationg-pos-ctrl-t-total-pos-ctrl-t-predict/5196 "2024-12-11T10:13:52Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![dominik.lehnberg](https://avatars.discourse-cdn.com/v4/letter/d/FF8800/32.png) [@dominik.lehnberg](https://community.br-automation.com/u/dominik.lehnberg)\
**Post date:** [December 11, 2024, 10:13am UTC](https://community.br-automation.com/t/x20dc1073-position-encoder-via-x2x-powerling-calculationg-pos-ctrl-t-total-pos-ctrl-t-predict/5196/1 "2024-12-11T10:13:52Z")

</div>

Hello B&R Community,

given the following scenario:

I have a second encoder (Vss) for the position controller which is read by a X20DC1073 card on a X20BB80 Bus controller. The bus controller is connected to the PLC via Powerlink. The drive (acopos micro) is in the same powerlink network. The drive drives a servo motor. Currently i am struggling to fill in the correct values for the following parameters:

POS\_CTRL\_T\_TOTAL  
POS\_CTRL\_T\_PREDICT

Is there a method to calculate these delays?

Thank you in advance!

---

<div class="post-metadata">

**Author:** ![Martin.Schrott](https://avatars.discourse-cdn.com/v4/letter/m/FF8800/32.png) [@Martin.Schrott](https://community.br-automation.com/u/Martin.Schrott)\
**Post date:** [December 16, 2024, 9:10am UTC](https://community.br-automation.com/t/x20dc1073-position-encoder-via-x2x-powerling-calculationg-pos-ctrl-t-total-pos-ctrl-t-predict/5196/2 "2024-12-16T09:10:22Z")

</div>

Hello Dominik,

the best way to find POS\_CTRL\_T\_PREDICT is by measuring it in the following way.

1. Tune the speed controller (Autotuning)
2. In the position controller, set POS\_CTRL\_T\_PREDICT to 400 µs and “Proportional gain” to 0 (only speed feed forward is output)
3. Do an absolute or additive move with a constant velocity phase and trace PCTRL\_S\_SET/PCTRL\_S\_ACT and/or PCTRL\_V\_SET/PCTRL\_V\_ACT and measure the time difference

Add the measured time difference to POS\_CTRL\_T\_PREDICT.  
I expect it to be 1 X2X cylce + 2 POWERLINK cycles

POS\_CTRL\_T\_TOTAL must be the same or greater than POS\_CTRL\_T\_PREDICT and is used for Master-Slave couplings, when the axes are on different drives. At the master POS\_CTRL\_T\_TOTAL is set greater by the time of the network communication to the drive of the slave. This delays the set position for the master controller and both axis physical positions are synchronized.

---

<div class="post-metadata">

**Author:** ![dominik.lehnberg](https://avatars.discourse-cdn.com/v4/letter/d/FF8800/32.png) [@dominik.lehnberg](https://community.br-automation.com/u/dominik.lehnberg)\
**Post date:** [December 17, 2024, 7:24am UTC](https://community.br-automation.com/t/x20dc1073-position-encoder-via-x2x-powerling-calculationg-pos-ctrl-t-total-pos-ctrl-t-predict/5196/3 "2024-12-17T07:24:24Z")

</div>

Hi Martin, thanks a lot for this detailed description! 🙂 I will give it a try 🙂

---

<div class="post-metadata">

**Author:** ![system](https://europe1.discourse-cdn.com/brcommunity/original/1X/a202d64f0f03e22a662ed33fbbca6879f1efb794.jpeg) [@system](https://community.br-automation.com/u/system)\
**Post date:** [January 18, 2025, 10:59pm UTC](https://community.br-automation.com/t/x20dc1073-position-encoder-via-x2x-powerling-calculationg-pos-ctrl-t-total-pos-ctrl-t-predict/5196/4 "2025-01-18T22:59:40Z")

</div>



---

<div class="post-metadata">

**Author:** ![marcusbnr](https://dub1.discourse-cdn.com/brcommunity/user_avatar/community.br-automation.com/marcusbnr/32/256_2.png) [@marcusbnr](https://community.br-automation.com/u/marcusbnr)\
**Post date:** [January 21, 2025, 7:49pm UTC](https://community.br-automation.com/t/x20dc1073-position-encoder-via-x2x-powerling-calculationg-pos-ctrl-t-total-pos-ctrl-t-predict/5196/5 "2025-01-21T19:49:42Z")

</div>

Hi @dominik.lehnberg how did your testing go? Can you please update us if Martin’s answer solved your problem?

---

<div class="post-metadata">

**Author:** ![dominik.lehnberg](https://avatars.discourse-cdn.com/v4/letter/d/FF8800/32.png) [@dominik.lehnberg](https://community.br-automation.com/u/dominik.lehnberg)\
**Post date:** [January 28, 2025, 2:13pm UTC](https://community.br-automation.com/t/x20dc1073-position-encoder-via-x2x-powerling-calculationg-pos-ctrl-t-total-pos-ctrl-t-predict/5196/6 "2025-01-28T14:13:51Z")

</div>

Unfortunately I was not able to test this yet…

---

<div class="post-metadata">

**Author:** ![marcusbnr](https://dub1.discourse-cdn.com/brcommunity/user_avatar/community.br-automation.com/marcusbnr/32/256_2.png) [@marcusbnr](https://community.br-automation.com/u/marcusbnr)\
**Post date:** [January 28, 2025, 6:25pm UTC](https://community.br-automation.com/t/x20dc1073-position-encoder-via-x2x-powerling-calculationg-pos-ctrl-t-total-pos-ctrl-t-predict/5196/7 "2025-01-28T18:25:52Z")

</div>

Thanks for the reply! I will mark Martin’s reply as the solution for now, but feel free to reply again if you have more information on this topic.

---

<div class="post-metadata">

**Author:** ![dominik.lehnberg](https://avatars.discourse-cdn.com/v4/letter/d/FF8800/32.png) [@dominik.lehnberg](https://community.br-automation.com/u/dominik.lehnberg)\
**Post date:** [January 29, 2025, 12:56pm UTC](https://community.br-automation.com/t/x20dc1073-position-encoder-via-x2x-powerling-calculationg-pos-ctrl-t-total-pos-ctrl-t-predict/5196/8 "2025-01-29T12:56:10Z")

</div>

> [@Martin.Schrott](#):
>
> PCTRL\_V\_ACT

Hi Martin,

i measured the time difference using your method. During constant velocity I measured a time difference of 2.4 ms between PCTRL\_S\_SET and PCTRL\_S\_ACT, which indeed is 1 X2X cylce (800 micro s) + 2 POWERLINK cycles (1600 micro s).

Thank you very much! 🙂

Best regards  
Dominik

---

<div class="post-metadata">

**Author:** ![dominik.lehnberg](https://avatars.discourse-cdn.com/v4/letter/d/FF8800/32.png) [@dominik.lehnberg](https://community.br-automation.com/u/dominik.lehnberg)\
**Post date:** [August 22, 2025, 11:47am UTC](https://community.br-automation.com/t/x20dc1073-position-encoder-via-x2x-powerling-calculationg-pos-ctrl-t-total-pos-ctrl-t-predict/5196/9 "2025-08-22T11:47:44Z")

</div>

Hi there again,

i have quick a follow up question. Lets assume I connect the position encoder directly to ACOPOS controller. In this case POS\_CTRL\_T\_PREDICT would be just the default 400 microseconds, correct? By reducing the dead time from 2.4ms to 0.4ms I would be able to make the control loop much more dynamic.

Best regards

Dominik
