# Axis in "Speed control" mode

**URL:** <https://community.br-automation.com/t/axis-in-speed-control-mode/5547>\
**Category:** Mechatronics & Motion\
**Tags:** acp10\
**Created:** [January 21, 2025, 11:04am UTC](https://community.br-automation.com/t/axis-in-speed-control-mode/5547 "2025-01-21T11:04:02Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pavel\_Bezrodnyi](https://avatars.discourse-cdn.com/v4/letter/p/FF8800/32.png) [@Pavel\_Bezrodnyi](https://community.br-automation.com/u/Pavel_Bezrodnyi)\
**Post date:** [January 21, 2025, 11:04am UTC](https://community.br-automation.com/t/axis-in-speed-control-mode/5547/1 "2025-01-21T11:04:02Z")

</div>

Greetings, colleagues!  
Can you tell me, please, how I can switch the axis control mode to speed control mode with cyclic speed setpoint in ACP10 system?

---

<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:** [January 21, 2025, 12:34pm UTC](https://community.br-automation.com/t/axis-in-speed-control-mode/5547/2 "2025-01-21T12:34:02Z")

</div>

Hello Pavel,

it would be easiest to use this function block from the Acp10\_mc library:  
[MC\_BR\_VelocityControl](https://help.br-automation.com/#/en/4/libraries%2Facp10_mc%2Falphabetische_ubersicht%2Fmc_br_velocitycontrol%2Fmc_br_velocitycontrol.html)

A similar function block exists in mapp Motion:  
[MC\_BR\_VelocityControl](https://help.br-automation.com/#/en/4/motion%2Fmapp_motion%2Fprogrammierung%2Fbibliotheken%2Fcore%2Faxis%2Ffunktionsbausteine%2Fmc_br_velocitycontrol%2Ffb_br_velctrl.html)

Either function block initializes all necessary parameters, sets the controller mode to speed control und you only have to set the speed at the function block input.

---

<div class="post-metadata">

**Author:** ![Pavel\_Bezrodnyi](https://avatars.discourse-cdn.com/v4/letter/p/FF8800/32.png) [@Pavel\_Bezrodnyi](https://community.br-automation.com/u/Pavel_Bezrodnyi)\
**Post date:** [January 21, 2025, 12:48pm UTC](https://community.br-automation.com/t/axis-in-speed-control-mode/5547/3 "2025-01-21T12:48:09Z")

</div>

Thank you, Martin. I will think about this option.  
Alas, the switching of the speed values is done via the MUX block on the Acopos. I need, on the one hand, to set the switching time to the new setpoint accurately enough and, on the other hand, to arrive at it as smoothly as possible.  
I was thinking of using MC\_BR\_MoveCyclicVelocity with a given VelocityParID and at the same time disabling the position controller.

---

<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:** [January 21, 2025, 3:57pm UTC](https://community.br-automation.com/t/axis-in-speed-control-mode/5547/4 "2025-01-21T15:57:49Z")

</div>

Can you describe your use-case in detail?  
What does the MUX block switch between, when and why and how?  
Maybe we can find another, better solution.

Using MC\_BR\_MoveCyclicVelocity is tricky because it is used with position control mode. “Deactivating” the position controller by setting Kp = 0 and lag error limit very high could still result in a lag error after a long time.

---

<div class="post-metadata">

**Author:** ![Pavel\_Bezrodnyi](https://avatars.discourse-cdn.com/v4/letter/p/FF8800/32.png) [@Pavel\_Bezrodnyi](https://community.br-automation.com/u/Pavel_Bezrodnyi)\
**Post date:** [January 21, 2025, 4:36pm UTC](https://community.br-automation.com/t/axis-in-speed-control-mode/5547/5 "2025-01-21T16:36:47Z")

</div>

An additional external absolute encoder is connected to the ACOPOS P3 via an expansion module. In certain sectors of the external encoder values, I change the speed reference for the real axis connected to the same drive using MUX. (Program in ACOPOS function blocks).  
The speed setpoints are stored in VAR\_R4\_0 and VAR\_R4\_0+1 and can be overwritten from the program on the PLC.  
In the MC\_BR\_MoveCyclicVelocity block, the MUX output is set as VelocityParID.  
I want to soften the transient process and minimize overshoot.

Addendum  
The sector coordinates are also stored in VAR\_I4\_xx and can be changed from the program on the PLC.

---

<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:** [January 22, 2025, 10:00am UTC](https://community.br-automation.com/t/axis-in-speed-control-mode/5547/6 "2025-01-22T10:00:11Z")

</div>

The MUX functions block has two modes for smooth(er) transition, 3 and 4.  
[MUX](https://help.br-automation.com/#/en/4/ncsoftware%2Facp10_drivefunctions%2Facopos_funktionsbausteine%2Fmux%2Ffunktion.html)  
Either will prevent a velocity jump at the transition.

Using MC\_BR\_MoveCyclicVelocity and VelocityParID the position set value generator and position controller are active on the drive, which means that acceleration jumps, at the start and end of the velocity transition, can be smoothened with “limit.parameter.t\_jolt”.

---

<div class="post-metadata">

**Author:** ![Pavel\_Bezrodnyi](https://avatars.discourse-cdn.com/v4/letter/p/FF8800/32.png) [@Pavel\_Bezrodnyi](https://community.br-automation.com/u/Pavel_Bezrodnyi)\
**Post date:** [January 22, 2025, 10:33am UTC](https://community.br-automation.com/t/axis-in-speed-control-mode/5547/7 "2025-01-22T10:33:28Z")

</div>

Thank you, Martin!  
I think that’s just what I need!
