Hydraulic Technology Functions

Revolutionizing Hydraulic System Performance with Cutting-Edge Technology Functions

HydroXpert: Multi-Axis Full-Featured Solution with Advanced Coordination for Hydraulic Axes

Achieve seamless multi-axis synchronization, enhanced safety, and superior control in your hydraulic systems with our cutting-edge technology function, HydroXpert. By integrating the proven, high-precision capabilities of HydroXGuard with the advanced multi-axis coordination provided by HydroSynchronizer, HydroXpert empowers you to manage up to five hydraulic axes in unison. This unified solution ensures precise alignment, stable motion, and automatic maintenance of defined inclinations—all tailored to your application’s needs.

Multi-Axis Position and Speed Control with Overload Protection

  • Coordinated Positioning: Precisely control the position and speed of multiple hydraulic axes simultaneously, using defined parameters for velocity, acceleration, and jerk across each axis.
  • System-Wide Overload Prevention: Apply maximum force limits to each axis, safeguarding against overloads and extending component life.
  • Perfect for Complex Tasks: Ideal for operations demanding synchronized motion across multiple axes.

Ideal Applications for HydroXpert:

  • Multi-axis forming and bending machines
  • Synchronized press lines
  • Large-scale material handling systems

By consolidating advanced motion control, robust overload protection, and precise multi-axis synchronization into one comprehensive solution, HydroXpert enables you to achieve unmatched accuracy, reliability, and efficiency across your most demanding hydraulic applications.

Why Choose HydroXpert?

Closed and Open-Loop Flexibility: Benefit from both closed and open-loop control strategies for unparalleled Stability and precision . 

Advanced Trajectory Planning for Each Axis: Just like HydroXGuard, HydroXpert incorporates a sophisticated trajectory generator with trapezoidal acceleration profiles. Each axis receives an optimal motion plan, resulting in smooth, precise positioning.

Built-In Overload Protection for All Axes: Safeguard your machinery against damaging force overshoots. The integrated overload protection ensures that none of the synchronized axes exceed pre-set force limits.

Broad Compatibility with Hydraulic Axis Types: Each individual HydroXGuard within the HydroXpert framework is easy to parameterize, compatible with various hydraulic configurations, and suited for linear servo or proportional valves.

Universal PLC Integration: Free yourself from the constraints of specialized technology CPUs. HydroXpert runs on widely used PLC platforms, including Siemens S7, Siemens TIA Portal, Rockwell Studio AIO, Rockwell RSLogix 5000, Rexroth IndraWorks, B&R Automation Studio, and Beckhoff TwinCAT, ensuring high performance across different environments.

Easy Integration into Existing Systems: Expand and enhance your current automation setup without extensive re-engineering. HydroXpert’s function blocks can be quickly integrated into your existing PLC programs, reducing setup time and streamlining commissioning.

User-Friendly Commissioning and Parameterization: Comprehensive I/O documentation, detailed examples, and intuitive configuration tools make setting up and tuning HydroXpert straightforward.

Function Description 

The HydroXpert function integrates the capabilities of two specialized PLC function blocks—HydroXGuard and HydroSynchronizer—to deliver advanced, synchronized hydraulic motion control across multiple axes. This combined solution is ideal for complex applications where precise coordination of up to five individual hydraulic axes is essential.

HydroSynchronizer serves as the central coordinator, calculating up to five target position values and up to five supplementary control signals. These supplementary signals are specifically designed to be connected to the respective HydroXGuard blocks managing each axis. By providing these control inputs, HydroSynchronizer ensures that every axis, under the governance of its dedicated HydroXGuard controller, maintains a predefined inclination or positional relationship set by the user.

HydroXGuard, as the per-axis control component, manages advanced motion or force regulation for each hydraulic axis. With the superimposed control signals from HydroSynchronizer, it can precisely follow the computed trajectory, meeting the user-defined performance criteria for both position and force.

1 2
Operation modes Position control Force/Pressure Control
Table 1: Different operation modes of the HydroXpert function bock

Block Diagram

HydroSynchronizer Inputs Description 

This input enables or disables the function block. When EnbIn is set to False, the block stops responding to input changes. The resulting behavior of the outputs in this state is detailed in Table 1.

CtrlOut PosTrj SpdTrj AccTrj FrTrj FrRateTrj FrAccTrj
EnbIn = True calculated based by the position control algorithm calculated by position trajectory generator calculated by speed trajectory generator calculated by acceleration trajectory generator reflects the current force 0.0 0.0
Enb = True, Mode = 2, ActFr< SwitchPos2Fr calculated based by the position control algorithm calculated by position trajectory generator calculated by speed trajectory generator calculated by acceleration trajectory generator reflects the current force 0.0 0.0
Enb = True, Mode = 2, ActFr> SwitchPos2Fr calculated based by the force control algorithm reflects actual position 0.0 0.0 calculated by force trajectory generator calculated by force trajectory generator calculated by force trajectory generator
Enb = Flase 0.0 reflects actual position 0.0 0.0 reflects actual force 0.0 0.0
Table 2: Output signals with the different modes of the controller

The sample time, in second, of the cyclic interrupt task of the plc at which the function is running. A higher sampling frequency allows for more precise control.

Is used to define the upper limit of the CtrlOut to a specific value. We recommend to set this limit at 100. This setting essentially represents the highest level of opening for the servo or proportional valve, expressed as a percentage in one direction.

Is used to define the lower limit of the CtrlOut to a specific value. We recommend to set this limit at −100. This setting essentially represents the highest level of opening for the servo or proportional valve, expressed as a percentage in another direction. Recommendation: When using a linear servo or proportional valve, it’s advised to restrict the control signal to a range between −100 and 100. This range signifies the valve’s opening percentage in either direction. Subsequently, these percentage values must be translated to the valve’s physical input, which might be represented in current or voltage terms. In figure 1 and 2 are common mappings from output to valve input shown. Figure1: CtrlOut against valveinput −10mA to 10mA Figure2: CtrlOut against valve input 4mA to 20mA

Every target position value entered through the TgtPos input on the function block passes through the internal trajectory generator, and the resulting position trajectory is then fed to the position controller. If you wish to apply a target position value directly to the controller without generating a trajectory, you should use the SupImpCtrl input.

First Note: The use of this input should be approached with caution, as it requires a solid understanding of the system’s dynamics and control engineering principles.

Second Note: When synchronizing multiple cylinders in position, this input is used in conjunction with the Position Synchron Controller, which is available as additional Halow-Tech function block. Connecting SupImpCtrl to the output of the Synchron controller enables accurate synchronization of the cylinders. The input is primarily designed for synchronizing multiple cylinders and is not necessary when controlling a single cylinder.

The input represents the current measured position of the hydraulic cylinder. It is used in the error signal calculation of the internal controller. It should be provided in the same unit as TgtPos.

The measured position value provided to ActPos must be sampled at a rate at least as fast as the cycle time of the Cycle Interrupt Task in which the function block operates. This requirement is critical for real-time position control.

The ActFr input is designated for the measured force of the hydraulic axis. It is imperative that the force is measured and inputted in the same unit as the TgtFr input. This function block uses the force value for both monitoring and controlling the force exerted by the hydraulic axis.

The measured force value provided to ActFr must be sampled at a rate at least as fast as the cycle time of the Cycle Interrupt Task in which the function block operates. This requirement is critical for real-time force control and monitoring.

Actual Pressure value measured in bar on the piston side of the hydraulic cylinder.

Input the high-pressure line hydraulic  control value of the valve in bar. This is not a measured value but a fixed constant.

Input the Low-pressure line value of the hydraulic control valve in bar. This is not a measured value but a fixed constant.

This input determines the maximum allowable rate of change in velocity for the position trajectory. It is measured in the same unit as TgtPos per second squared. This parameter needs to be customized based on the specific system requirements. MaxAccSetPnt plays a critical role in regulating the acceleration of the hydraulic cylinder as it follows the trajectory towards the target position. See figure 3.

JerkSetPnt controls the abruptness or smoothness of motion by regulating the rate of change of acceleration. It is measured in the same unit as TgtPos per second cubed. Adjusting JerkSetPnt al lows users to customize the motion profile according to their desired level of abruptness or smooth ness. For example, if the maximum acceleration needs to be achieved within half a second, the JerkSetPnt value should be set to double the maximum acceleration value. See figure 3.



Figure 3: General behavior of the inputs MaxAccSetPnt and JerkSetPnt

It represents the amplification factor of the P-controller within the position controller. A higher Kp Pos value can enhance control accuracy. However, caution is advised: setting the KpPos value excessively high may render the closed-loop system unstable. For optimal results and to maintain system stability, it’s recommended to initiate with a modest KpPos value and incrementally adjust upwards to achieve the desired precision. See this section for optimal adjustment.

It relates to the P-controller (Position  controller) within the function block, which is capable of dynamically altering the constant KpPos factor. This adjustment ensures that the hydraulic cylinder exhibits consistent control behavior regardless of the load it bears. The dynamic value of the KpPos factors is calculated based on the pressure on the piston side of the cylinder. If the cylinder lacks a pressure sensor, the controller operates with a constant Kp value. Through the MaxKpAmp input, users can set the upper limit of the amplification for this constant Kp value. We recommend setting it between 4 and 5.

Important: If the hydraulic cylinder’s pressure is not being measured, enter a default value of -1 in the ActPr input. This action will effectively deactivate the pressure-dependent dynamic calculation of Kp .

KiPos stands for the amplification factor of the I-controller within the position controller. A KiPos value set to zero effectively deactivates the I-controller. While a higher KiPos value results in swifter error integration, enhancing overall accuracy, it can also introduce increased oscillations in the closed loop system. For best performance, it’s advisable to commence with a low KiPos value and gradually increase it until the desired accuracy level is reached, balancing precision with system stability. See this section for optimal adjustment.

This input determines the behavior of the I-Controller. When set to False , the I-Controller remains continuously active. If set to True , the I-Controller operates only in the steady state, deactivating during the hydraulic axis movement. We advise setting this input to true, as allowing the I-Controller to function solely in the steady state often provides superior stability and accuracy for hydraulic axes. This approach typically minimizes, if not eliminates, significant overshoots and, by enabling an increase in the Ki factor, greatly enhances accuracy.

GainFwdSpdCtrl is a system parameter that adds a constant value for positive velocities to the control signal, improving trajectory tracking. It reduces the error signal and facilitates smoother following of the desired trajectory. The optimal positive feedforward value depends on the hardware and system dynamics, which can be determined through measurement and analysis, as illustrated in this section.

GainBwdSpdCtrl is a system parameter that adds a constant value for positive velocities to the control signal, improving trajectory tracking. It reduces the error signal and facilitates smoother following of the desired trajectory. The optimal positive feedforward value depends on the hardware and system dynamics, which can be determined through measurement and analysis, as illustrated in this section.

This input sets the maximum allowable acceleration of the force, effectively shaping the force trajectory. It’s measured in the same units as TgtFr , but on a per second squared basis, underscoring its role in adjusting the system’s dynamics to match particular requirements. Importantly, the force rate, measured in N/s, represents the first derivative of force, indicating how quickly the force changes over time. Meanwhile, force acceleration, denoted in N/s2, is the second derivative of force, reflecting the rate of change of the force rate itself. FrMaxAccSetPnt is crucial in managing how rapidly the hydraulic cylinder’s force accelerates, facilitating a controlled and precise progression towards the target force. See figure 4.

This parameter modulates the transition dynamics of force application, dictating the rapidity or gradualness by controlling the rate at which force acceleration changes. Expressed in the same units as TgtFr but per cubic second, adjusting the FrJerkSetPnt enables users to finely tune the force trajectory to achieve the preferred level of abruptness or smoothness in force adjustments. This flexibility allows for precise control over the force application, ensuring both responsiveness and smooth operation. See figure 4. Figure 4: General behavior of the input FrMaxAccSetPnt and FrJerkSetPnt

Refer to the description of input Mode.

See figure 5: Between T = 0.0 and T = 1.24s, ActFr < SwitchPos2Fr . So the function block is in position control. After T = 1.24s, ActFr > SwitchPos2Fr so the function block switches automatically to force control. 


Figure 5: Switch from position to force control mode

This input represents the amplification factor of the P-controller within the force controller. A higher KpFr value can enhance control accuracy. However, caution is advised: setting the KpFr value excessively high may render the closed-loop system unstable. For optimal results and to maintain system stability, it’s recommended to initiate with a modest value and incrementally adjust upwards to achieve the desired precision. See this section for optimal adjustment.

It relates to the P-controller (Force controller) within the function block, which is capable of dynamically altering the constant KpFr factor. This adjustment ensures that the hydraulic cylinder exhibits consistent control behavior regardless of the load it bears. The dynamic value of the KpFr factors is calculated based on the pressure on the piston side of the cylinder. If the cylinder lacks a pressure sensor, the controller operates with a constant Kp value (in this case set ActPr to -1). Through the MaxKpAmp input, users can set the upper limit of the amplification for this constant Kp value. We recommend setting it between 4 and 5.

This input represents the amplification factor of the I-controller within the force controller. A higher KiFr value can enhance control accuracy. However, caution is advised: setting the KiFr value excessively high may render the closed-loop system unstable. For optimal results and to maintain system stability, it’s recommended to initiate with a modest value and incrementally adjust upwards to achieve the desired precision. See this section for optimal adjustment.

This input determines the behavior of the I-Controller. When set to False , the I-Controller remains continuously active. If set to True , the I-Controller operates only in the steady state, deactivating during the hydraulic axis movement. We advise setting this input to true, as allowing the I-Controller to function solely in the steady state often provides superior stability and accuracy for hydraulic axes. This approach typically minimizes, if not eliminates, significant overshoots and, by enabling an increase in the KiFr factor, greatly enhances accuracy.

It serves as a feedforward control factor during force control. This factor introduces a static component into the control signal during the build-up of force. It enhances the responsiveness and accuracy of the force control process. See this section for optimal adjustment.

It serves as a feedforward control factor during force control. This factor introduces a static com ponent into the control signal during the reduction of force. It enhances the responsiveness and accuracy of the force control process. See this section for optimal adjustment

The OvEnb input enables the internal superimposed force controller. Its important to note that this controller is only effective in position control mode Mode = 1. When operating in this mode and the OvEnb input is set to True , the actual force ActFr is continuously monitored. If the force exceeds the value specified by the OvMaxFr input, the superimposed controller calculates a dynamic additional setpoint value for the position controller. This adjustment ensures that the force remains regulated at the OvMaxFr value, effectively preventing overload. This feature is crucial for ensuring the system operates safely within its designated parameters, particularly in position control Mode = 1. Explicitly, in the event of an overload, the superimposed controller triggers the cylinder to retract. This mechanism is a safeguard that ensures the hydraulic system remains within safe operating lim its, avoiding damage to the cylinder or associated machinery by retracting the cylinder to alleviate the excessive force. Should an overload occur while the cylinder is extending, the controller will immediately terminate the movement. The cylinder’s position will then be regulated to ensure that the actual force ActFr re mains controlled at the OvMaxFr level. Please refer to figure 6 for a visual representation of this process. In the event of an overload while the cylinder is stationary (holding position), the overload controller will adjust the cylinder’s opening such that the actual force ActFr is regulated to remain at the OvMaxFr value. Please refer to figure 7 for a visual representation of this process. Figure 6: Behaviour of the overload protection. ActFr remaining at OvMaxFr after the cylinder reaching an obstacle while movement. Figure 7: Behaviour of the overload protection. ActFr remaining at OvMaxFr after an external force appears in steady state.

This input serves as a delay timer for the overload controller within the system. When the actual force ActFr exceeds the predefined threshold OvMaxFr , the overload controller initiates a waiting period of OvPeakFilter seconds. If, after this duration, the force remains above OvMaxFr , the overload controller is then activated. This feature ensures that transient peaks in force do not trigger unnecessary adjustments, allowing for a brief period to assess whether the overload condition persists before taking corrective action.

The maximum permissible retraction of the cylinder during overload. It must be in the same unit as ActPos .

Refer to the description of OvEnb .

The OvKi input represents the integral gain factor for the overload control. A value of zero effectively deactivates the controller. The higher this value, the more dynamic but also more prone to fluctuations the controller becomes. It is recommended to start with a very small value, in the range of 0.000001, as the initial setting. The optimal value needs to be determined separately for each application and system, ensuring tailored control performance to meet specific operational requirements.

The OvAntiWindup input is specifically designed to mitigate the windup effect observed in the integral component of the overload controller. Windup can arise when the integral controller reaches satu ration due to the OvCntrlLim limits, resulting in an accumulation of integral error. This accumulation can subsequently lead to overshoot and instability once the actuator is capable of responding. By properly adjusting the OvAntiWindup value, it’s possible to maintain controller responsiveness and stability, even under conditions where the integral controller is saturated. Fine-tuning this parameter enhances the system’s ability to respond to overload conditions more effectively, thereby improving the reliability and efficiency of the overload protection mechanism. We suggest an initial value of 2 for the OvAntiWindup input.

The OvKd input specifies the derivative gain factor for the overload controller’s D-Factor. This pa rameter enhances the controller’s ability to predict and react to changes in the system’s overload conditions by considering the rate of change of the overload error. A higher OvKd value means the controller will respond more aggressively to changes in overload conditions, potentially improving system responsiveness and stability by preempting overshoots or compensating for anticipated load changes. However, setting this value too high can lead to increased sensitivity to noise and rapid changes, possibly causing instability. It’s crucial to balance the OvKd setting to achieve optimal control performance, making adjustments based on the specific dynamics and requirements of the application.

We recommend initially configuring the overload controller using only the integral gain OvKi , setting the derivative gain OvKd to 0. If the controller does not achieve the desired behavior with OvKi alone, then begin to adjust the derivative component OvKd . Always start with a small value for to carefully assessits impact on the system’s performance and gradually refine the controller’s response to meet the desired specifications.

The input OvKdN in the D-component of the Overload Controller represents the derivative filter coefficient. This coefficient is crucial as it determines the effect of the derivative term within the controller by filtering out high-frequency noise that can lead to instability. It effectively shapes the frequency response of the derivative action, smoothing the controller’s output to prevent erratic behavior.

Adjusting OvKdN allows for the tuning of the derivative action’s sensitivity to changes in the system’s error. A Small OvKdN results in a less sensitive derivative action, which can be beneficial in systems where measurement noise is present, as it reduces the impact of the noise on the control signal. Conversely, a high OvKdN makes the derivative action more sensitive to the error change rate, which can improve the controller’s responsiveness but may also amplify the noise.

In practice, the value of OvKdN should be chosen to balance the trade-off between responsiveness and noise sensitivity, with the aim of enhancing the overall performance of the overload controller without compromising stability. We suggest an initial value of 15.

This input controls the activation or deactivation of the function. When this input signal is turned off (False ), the function no longer responds to changes in the setpoints and does not generate any trajectory. The monitoring signal PosTrj reflects the current position and FrTrj reflects the current force, while the other monitoring signals are set to zero. In addition, when the function is deactivated, the CtrlOut is set to zero, indicating that there is no valve movement caused by the controller, as shown in table 2.

CtrlOut PosTrj SpdTrj AccTrj FrTrj FrRateTrj FrAccTrj
Enb = True, Mode = 1 calculated based by the position control algorithm calculated by position trajectory generator calculated by speed trajectory generator calculated by acceleration trajectory generator reflects the current force 0.0 0.0
Enb = True, Mode = 2, ActFr< SwitchPos2Fr calculated based by the position control algorithm calculated by position trajectory generator calculated by speed trajectory generator calculated by acceleration trajectory generator reflects the current force 0.0 0.0
Enb = True, Mode = 2, ActFr> SwitchPos2Fr calculated based by the force control algorithm reflects actual position 0.0 0.0 calculated by force trajectory generator calculated by force trajectory generator calculated by force trajectory generator
Enb = Flase 0.0 reflects actual position 0.0 0.0 reflects actual force 0.0 0.0
Table 2: Output signals with the different modes of the controller

The function block can operate in either position control or force control mode, depending on the Mode input setting. This versatility allows the block to adapt its behavior to meet specific application requirements.

Mode=1: In this mode, the function block operates in position control. There is no monitoring of force values; the system focuses solely on achieving and maintaining the target position. Mode=2: Initially, the function block operates in position control mode, similar to Mode 1. However, in Mode 2, the current force value at the ActFr input is continuously monitored. If the actual force exceeds the threshold specified by the SwitchPos2Fr input, the function block automatically switches from position control to force control. This transition ensures that the system can adapt to changing load conditions without manual intervention as shown in table 2.

Important Notes: In Mode 1, there is no force monitoring. The system does not react to changes in force; it remains dedicated to position control regardless of any force applied. In Mode 2, the switch from position to force control occurs only once when the actual force surpasses the SwitchPos2Fr threshold. It’s crucial to understand that if the actual force falls below the SwitchPos2Fr threshold after switching to force control, the function block does not revert back to position control. This behavior is designed to maintain stability and prevent constant switching between modes under fluctuating force conditions.

The input allows users to specify the desired target position for the hydraulic cylinder. It can be defined in any unit appropriate for the application (e.g., meters, centimeters, millimeters, micrometer). When TgtPos recognizes a change, the function generates a trajectory from the current position to the specified target. The internal position controller ensures that the cylinder follows this trajectory accurately. Important: It’s essential to understand that any changes to the TgtPos , MaxSpdSetPnt , MaxAccSetPnt and JerkSetPnt during axis movement are internally ignored by the block. The block responds to changes only when PosTrj matches TgtPos . The Busy output serves as an indicator of the block’s readiness: When the Busy output of the block is logicaly True , it indicates that the cylinder is in motion, and the controller will not respond to new setpoints. Conversely, if it is logically False , the cylinder is in a steady state, allowing the controller to react to new setpoints. See figure 8. Figure 8: General behavior of the position controller.
This input sets the maximum speed allowed for the position trajectory generated by the internal generator. It is defined in the same unit as the TgtPos input, per second. This parameter ensures that the hydraulic cylinder moves at a controlled speed while reaching the target position. This sets the top speed for the hydraulic axis during movement. However, factors like distance, acceleration MaxAccSetPnt , and jerk JerkSetPnt might make it go slower than this speed. See figure 9. Figure 9: General behavior of the input MaxSpdSetPnt

The input allows users to specify the desired target force for the hydraulic cylinder. It can be defined in any unit appropriate for the application (e.g., N, kN, MN). When TgtFr recognizes a change and the function is in force control mode, the function generates a trajectory from the current force to the specified target. The internal controller ensures that the current force follows this trajectory accurately. When the function block is deactivated, changes to this input is without function.

Important: It is essential to understand that any changes to the TgtFr , FrMaxSpdSetPnt, FrMaxAccSetPnt and FrJerkSetPnt during force adjusment are internally ignored by the block. The block responds to changes only when FrTrj matches TgtFr . The Busy output serves as an indicator of the block’s readiness: When the Busy output of the block is logicaly True , it indicates that the cylinder force is in transition, and the controller will not respond to new setpoints. Conversely, if it is logically False , the cylinder is in a steady state, allowing the controller to react to new setpoints.

See following figure: at T = 3.23s, FrTrj exactly equals 700N (it was the target force at the beginiging). Exactly at this time point the Busy output set to false and the FrTrj goes to the new target TgtFr = 500N.

 


Reaction of the controller with a new setpoint while moving.

This parameter defines the maximum rate at which the force can change, as determined by the internal trajectory generator, and is measured in the same units per second as the TgtFr input. It governs the pace at which the hydraulic axis approaches the designated target force, ensuring a smooth and controlled force adjustment. Although this setting establishes the upper limit of the force change rate, the actual rate may be influenced by additional factors such as the total force adjustment required, FrMaxAccSetPnt , and FrJerkSetPnt , potentially resulting in a slower adjustment than the maximum specified rate.

This input serves as a means of adjusting the control signal in both the activated and deactivated states of the controller. When the controller is enabled, the value is added to the control signal, allowing for an additional offset. This enables manual control of the cylinder’s position in conjunction with the controller’s output. In the deactivated state, where the controller output is fixed at zero, the input can be used as a direct means of manual control, independently influencing the cylinder’s behavior. It provides a convenient way to switch between automatic and manual operation of the cylinder.

Output Description

This is the primary output of the block, indicating the valve’s opening value. When confined within the range of −100 and +100, this value denotes the valve’s opening percentage in one or another direction. It is essential to map this percentage to the valve’s physical input, which may be quantified in terms of current or voltage. See figure 1 and figure 2.

The PosTrj output provides information about the desired position trajectory that the hydraulic cylinder should follow. It represents the path from the current position (ActPos ) to the target position (TgtPos ). This output is mainly used for monitoring and visualization purposes, allowing users to observe the planned trajectory of the cylinder’s movement.

Note: If the Enb input is set to false, the PosTrj will match the current position ActPos of the hydraulic axis. See table 2.

The SpdTrj output represents the velocity trajectory which the hydraulic cylinder should follow. It starts and ends at zero and is limited by the MaxSpdSetPnt input. This output is primarily used for monitoring purposes.

Note: If the Enb input is set to false, the SpdTrj will default to zero. See table 2.

The AccTrj output represents the velocity trajectory which the hydraulic cylinder should follow. It starts and ends at zero and is limited by the MaxAccSetPnt input. This output is primarily used for monitoring purposes.

Note: If the Enb input is set to false, the AccTrj will default to zero. See table 2.

It represents the force trajectory, a dynamic profile detailing the planned progression of force over time. This output is critical for visualizing and understanding how the force is intended to evolve throughout the operation, based on the current input parameters and desired end goal. This output is mainly used for monitoring and visualization purposes, allowing users to observe the planned trajectory of the force exerted by the hydraulic axis.

Note: If the Enb input is set to false, the FrTrj will match the current force ActFr of the hydraulic axis. See table 2.

It delineates the trajectory of the force rate, illustrating the speed at which the force is programmed to change over time within the force controller. It provides a clear representation of how rapidly or slowly the force is expected to evolve, aiding in the optimization of force control strategies for enhanced performance and responsiveness. It starts and ends at zero and is limited by the FrMaxSpdSetPnt input. This output is primarily used for monitoring purposes. See figure 4

Note: If the Enb input is set to false, the FrRateTrj will default to zero. See Table 2.

It indicates the force acceleration trajectory, providing a time-based profile of the expected acceleration rates of force. It starts and ends at zero and is limited by the MaxAccSetPnt input. This output is primarily used for monitoring purposes.

 Note: If the Enb input is set to false, the FrAccTrj will default to zero. See table 2.

This output reflects the block’s responsiveness to new setpoints. If the hydraulic cylinder is moving or under force transition, the Busy output becomes True , indicating that the block is not responding to changes in setpoints. The block resumes responsiveness when PosTrj aligns with TgtPos in position control or FrTrj aligns with TgtFr in force control, at which point the Busy output switches to False , signaling readiness to accept setpoint modifications. 

Frequently Asked Questions (FAQ)

To halt the axis while it’s moving, simply set the Enb Input to logical false. Doing this makes the CtrlOut immediately drop to zero, leading to the valve closing and consequently stopping the movement.

If you wish to assign a new target position (TgtPos) during the axis’s operation, you must first halt the movement using the Enb input. After stopping, wait for a specific delay (a few tens to hundreds of milliseconds depending on the specific axis) to ensure the axis has fully settled. Once stationary, you can then input the new TgtPos .

How to Configure HydroXpert Position Control Parameters

This guide provides detailed instructions on how to set up and configure the Technology Block HydroXpert for precise positioning tasks of a hydraulic axis. 

Important for all examples: The values of control parameters provided in the following sections are solely as examples to illustrate the approach for setting control parameters. Under no circumstances should these values be directly applied to your machine, not even as initial starting points. The control parameters must be explicitly adjusted for each machine individually.

  • Cyclic Interrupt task Setup: Ensure that the Technology Block is called within a cyclic interrupt task in your PLC. The feedbacks for the actual position, actual force and actual pressure must be read at least as frequently as the cycle time of the this cyclic interrupt task.
  • Sampling Time: The task cycle time should be relatively fast, depending on the required accuracy and motor dynamics. A sampling time of 1 to 5 milliseconds is a good starting point.
  • Consistency in Units: Before configuring the block, decide on the units you will use for the system. These units must remain consistent throughout the configuration. For example, if you choose millimeters for the linear axis, then all related variables should be in millimeters: Actual Position [mm], Target Position [mm], Speed Setpoint [ mm/s ], Acceleration Setpoint [ mm/s 2 ], and Jerk [ mm/s 3 ].  The same principle applies to force units. Decide whether to use Newtons (N), kilonewtons (kN), or meganewtons (MN), and keep this consistent for all force-related variables.
  • Other Unit Options: You can choose other units, such as meters, centimeters, micrometers for the linear axis. The key is to select a unit system and maintain consistency across all parameters and modes.
  • Sample Time: Enter the PLC’s task cycle time (in seconds) into the SampleTime input.
  • Max and Min Output: Define the maximum and minimum output of the Technology Block using MaxOut and MinOut , for example -100 to 100.

Switch the block to Mode 1. Using the setpoint structure PosTrjPar, TgtPos and MaxSpdSetPnt, define a target position with corresponding speed, acceleration, and jerk setpoints. Ensure that all setpoints (speed,acceleration, jerk) are greater than zero.

  • KpPos Setting: Initially, enter a small value for KpPos of the PosCtrlPar structure.
  • Other Control Parameters: You can leave other control parameters at zero for now; they will be adjusted later

Start the tuning process with the KpPos value by setting it to a minimal level. Then, specify a position target using the TgtPos and enable the controller. Ideally, adjust KpPos so that, during the movement the actual position runs parallel with the position trajectory output (PosTrj ) at certain moments. If KpPos is too low, the actual position might never gets paralleled with the position trajectory.



Figure 12: Reaction of the controler with the parameters KpPos = 10; KiPos = 0; GainFwdSpdCtrl = 0 and GainBwdSpdCtrl = 0.

In Figure 12, it is observable that during the movement, the ActPos and PosTrj are never parallel. This indicates that the KpPos value is too small.

Important for all examples: The values of control parameters provided in the this sections are solely as examples to illustrate the approach for setting control parameters. Under no circumstances should these values be directly applied to your machine, not even as initial starting points. The control parameters must be explicitly adjusted for each machine individually.

  • Incremental KpPos Adjustments: Gradually increase the KpPos value. After each increment, execute a new movement by defining an appropriate target position.
  • Objective: Continue this process until the position trajectory (PosTrj ) and the actual position are parallel, indicating proper tuning.



    Figure 13: Reaction of the controler with the parameters KpPos = 25; KiPos = 0; GainFwdSpdCtrl = 0; GainBwdSpdCtrl = 0 and GainAccCtrl = 0.

According Figure 13 when the KpPos increased to 25, the PosTrj and ActPos now run parallel during movement, indicating that the KpPos has been optimally adjusted for the current conditions.

  • Execute a Positive Movement: Run a positive movement of the hydraulic axis.
  • Read Controller output: At a point where the actual position and the position trajectory (PosTrj ) are parallel, read the value of CtrlOut.
  • Calculate GainFwdSpdCtrl: Divide the CtrlOut by the set speed value (MaxSpdSetPnt ). The result is the value you should enter into GainFwdSpdCtrl of the structure PosCtrlPar. In the example shown in figure 14. The MaxSpdSetPnt was set to 5 [mm/s]. The CtrlOut is 21.58 (see figure 14).
    The value for GainFwdSpdCtrl is then calculated by: GainFwdSpdCtrl => 21.85/5= 4.37



Figure 14: Adjusting the feedforward parameters based on the system’s response to a control input.

Important for all examples: The values of control parameters provided in the this sections are solely as examples to illustrate the approach for setting control parameters. Under no circumstances should these values be directly applied to your machine, not even as initial starting points. The control parameters must be explicitly adjusted for each machine individually.

  • Repeat Step 8: Perform the same process as in Step 8, but with a negative movement of the hydraulic axis.
  • Calculate and Set Gain: Write the resulting value into GainBwdSpdCtrl of the strucutre PosCtrlPar .
GainBwdSpdCtrl => 34.15/5= 6.83 Important for all examples: The values of control parameters provided in the this sections are solely as examples to illustrate the approach for setting control parameters. Under no circumstances should these values be directly applied to your machine, not even as initial starting points. The control parameters must be explicitly adjusted for each machine individually.   Figure 15: System behavior with well-adjusted Kp, Feedforwards and Ki parameters.

For setting KiPos , we suggest setting the ModeIntCntrl input to True , ensuring that the I-controller is active only in steady states. Then, observe the persistent control deviation of the position and incrementally increase KiPos until you are satisfied with the controller’s accuracy.

  • Optimal Configuration: Once the Kp , feedforward parameters, and Ki are tuned, the position controller is optimally set.
  • Run Movements in Modes 1: You can now move the hydraulic axis in Modes 1 with any target positions, speeds, accelerations, and jerks that your mechanics can handle, without needing to adjust the PosCtrlPar values again.

Note: If, despite proper parameter adjustment, overshooting is observed in the control behavior (as shown in figure 16), it is an indication that the dynamics of the Position Trajectory are faster than your machine’s maximum capability. Therefore, you should reduce the MaxAccSetPnt and JerkSetPnt parameters.


Figure 16: Overshoot despite proper parameter adjustment.

How to Configure HydroXpert Force Control Parameters

This guide provides detailed instructions on how to set up and configure the Technology Block HydroXpert for precise force control tasks of a hydraulic axis. 

Important for all examples: The values of control parameters provided in the following sections are solely as examples to illustrate the approach for setting control parameters. Under no circumstances should these values be directly applied to your machine, not even as initial starting points. The control parameters must be explicitly adjusted for each machine individually.

  • Cyclic Interrupt task Setup: Ensure that the Technology Block is called within a cyclic interrupt task in your PLC. The feedbacks for the actual position, actual force and actual pressure must be read at least as frequently as the cycle time of the this cyclic interrupt task.
  • Sampling Time: The task cycle time should be relatively fast, depending on the required accuracy and motor dynamics. A sampling time of 1 to 5 milliseconds is a good starting point.
  • Consistency in Units: Before configuring the block, decide on the units you will use for the system. These units must remain consistent throughout the configuration. For example, if you choose millimeters for the linear axis, then all related variables should be in millimeters: Actual Position [mm], Target Position [mm], Speed Setpoint [ mm/s ], Acceleration Setpoint [ mm/s 2 ], and Jerk [ mm/s 3 ].  The same principle applies to force units. Decide whether to use Newtons (N), kilonewtons (kN), or meganewtons (MN), and keep this consistent for all force-related variables.
  • Other Unit Options: You can choose other units, such as meters, centimeters, micrometers for the linear axis. The key is to select a unit system and maintain consistency across all parameters and modes.
  • Sample Time: Enter the PLC’s task cycle time (in seconds) into the SampleTime input.
  • Max and Min Output: Define the maximum and minimum output of the Technology Block using MaxOut and MinOut , for example -100 to 100.

Prerequisite: Ensure that the control parameters in Mode 1 (Position Control) are optimally tuned, as described in this Section.

Steps to Configure Force Control Parameters:

  1. Set the Function Block to Mode 2:

    • Switch the function block to Mode 2 to enable force control capabilities.
    • Define a Target Position (TgtPos) that is beyond the load to ensure the actuator moves towards the load.
    • Set a low value for the MaxSpdSetPnt to achieve a soft contact with the load and prevent a large force jump. This gentle approach minimizes sudden force spikes when the actuator makes contact.
  2. Define Target Force Parameters:

  3. Set the Force Threshold:

    • Use the SwitchPos2Fr input to define a threshold force.
    • When the actual force exceeds this threshold, the system will automatically switch from Position Control to Force Control.
  • KpFr Setting: Initially, enter a small value for KpFr of the FrCtrlPar structure.
  • Other Control Parameters: You can leave other force control parameters at zero for now; they will be adjusted later

Start the tuning process with the KpFr value by setting it to a minimal level and icrease it step by step.  Ideally, adjust KpPos so that, during the movement the actual force runs parallel with the force trajectory output (FrTrj) at certain moments. If KpFr is too low, the actual force might never gets paralleled with the force trajectory . See figure 17.



Figure 17: Reaction of the controller with the parameters KpFr = 0.002; KiFr = 0; FrGainFwdSpdCtrl = 0 and FrGainBwdSpdCtrl = 0.

Important for all examples: The values of control parameters provided in the this sections are solely as examples to illustrate the approach for setting control parameters. Under no circumstances should these values be directly applied to your machine, not even as initial starting points. The control parameters must be explicitly adjusted for each machine individually.

  • Incremental KpFr Adjustments: Gradually increase the KpFr  value. After each increment, execute a new movement .
  • Objective: Continue this process until the force trajectory (FrTrj) and the actual force are parallel, indicating proper tuning. 



Figure 18: Reaction of the controller with the parameters KpFr = 0.007; KiFr = 0; FrGainFwdSpdCtrl = 0 and FrGainBwdSpdCtrl = 0.
According Figure 18 when the KpFr increased to 0.007, the FrTrj and ActFr now run parallel during Force transition, indicating that the KpFr has been optimally adjusted for the current conditions.

After setting the KpFr value, read the value of CtrlOut at any point where ActFr and FrTrj run parallel during force transition and divide it by FrMaxSpdSetPnt . Enter the resulting value into the GainFwdSpdCtrl input. As shown in figure 18:

FrGainFwdSpdCtrl= 0.83 / 350 = 0.0023

Repeat the same process when reducing the force, without changing the KpFr value. Divide CtrlOut by FrMaxSpdSetPnt and enter this result into the FrGainBwdSpdCtrl input. After setting FrGainFwdSpdCtrl and FrGainBwdSpdCtrl the force control behavior should be much better, as seen in figure 19. Figure 19: Reaction of the controller with the parameters KpFr = 0.007; KiFr = 0; FrGainFwdSpdCtrl = 0.0023 and FrGainBwdSpdCtrl = 0.0023.

For setting KiFr , we suggest setting the ModeIntCntrl input to one, ensuring that the Icontroller is active only in steady states. Then, observe the persistent control deviation of the force and incrementally increase KiFr until you are satisfied with the controller’s accuracy.



Figure 20: Reaction of the controller with the parameters KpFr = 0.007; KiFr = 0.5; FrGainFwdSpdCtrl = 0.0023 and FrGainBwdSpdCtrl = 0.0023.

When all parameters are adjusted as described, the system should be able to closely follow the desired force trajectory, as illustrated in figure 20.

Address List

Halow-Tech GmbH

Company Registration Number: HRB 101539
Amtsgericht Duesseldorf