Hydraulic Technology Functions

Revolutionizing Hydraulic System Performance with Cutting-Edge Technology Functions

HydroXact: Master Hydraulic Position, Speed and Acceleration Control

Enhance the performance of your hydraulic systems with our advanced technology function HydroXact, specifically designed for single-axis applications. This powerful PLC function provides precise management of position, speed, and acceleration, tailored to your exact requirements.

Position and Speed Control

  • Accurate Positioning: Manage the position of your hydraulic axis with defined parameters for speed, acceleration, and jerk.
  • Smooth Motion Profiles: Ideal for applications requiring smooth and precise motion, ensuring optimal performance and product quality.

HydroXact is perfect for a wide range of machines that utilize a single hydraulic axis, such as:

  • Hydraulic presses
  • Injection molding machines
  • Hydraulic lifts and elevators
  • Material testing machines
  • Robotic actuators

Why Choose HydroXact?

  • Incorporating Closed and Open-Loop Control Algorithms: HydroXact PLC Technology Function block delivers exceptional accuracy, stability, and robustness by utilizing both closed and open-loop control algorithms.

  • Advanced Trajectory Generator: At its core, HydroXact features a powerful trajectory generator that plans the ideal motion profile using a trapezoidal acceleration profile. This approach ensures smooth and precise positioning control.

  • Compatibility with Various Hydraulic Axis Types: Designed for easy parameterization, HydroXact is compatible with various hydraulic axis types, such as double-acting, single-acting, and plunger cylinders connected to linear servo or proportional valves.

  • Universal PLC Compatibility: Forget about specialized technology CPUs! HydroXact runs seamlessly on real-time PLC platforms including Siemens S7, Siemens TIA Portal, Rockwell Studio AIO, Rockwell RSLogix 5000, Rexroth IndraWorks, B&R Automation Studio, and Beckhoff TwinCAT, all while delivering the same high performance across the board.

  • Seamless Integration with Existing PLC Programs: The HydroXact PLC function can be easily purchased and directly integrated into your existing PLC programs. This allows for effortless scaling and enhancement of your current automation systems without the need for extensive reprogramming or system overhauls.

  • Simplified Commissioning and Parameterization: With comprehensive input/output documentation and practical examples, HydroXact makes commissioning and parameterization incredibly straightforward. This reduces setup time and ensures a smooth transition from installation to operation, empowering your team to get up and running quickly with minimal effort.


Experience precision and efficiency in your hydraulic applications with HydroXact—the ultimate solution for single-axis position and speed control.

Description

The HydroXact PLC function block is an advanced and robust controller designed for the precise management of position within hydraulic axes. Engineered to support a wide range of hydraulic cylinders—including single-acting, plunger, double-acting, and double-acting double rod cylinders—it seamlessly integrates with linear servo or proportional valves. With versatile input parameters, the HydroXact block operates exclusively in position control mode.

At the heart of HydroXact is an internal trajectory generator that enables the controller to utilize both closed-loop and open-loop control algorithms simultaneously. This integration allows for rapid, precise, and stable adjustments in position control, enhancing the performance and reliability of your hydraulic system. Users can specify parameters such as target position, velocity, acceleration, and jerk for axis motion, tailoring the system’s response to meet specific application requirements.

One of the key advantages of HydroXact is its ease of parameterization and commissioning, making it straightforward for users to implement and operate. Additionally, the block provides valuable monitoring outputs, such as position, velocity, and acceleration trajectories, along with a busy signal to indicate active movements. These outputs are crucial for comprehensive system diagnostics and streamline troubleshooting processes during operation.

The accompanying diagram illustrates how the HydroXact function integrates into the overall control system, highlighting its role in achieving precise and reliable position control of the cylinder.

Block Diagram

Inputs Description

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 valve input −10mA to 10mA



Figure2: CtrlOut against valve input 4mA to 20mA

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.

Actual Pressure value measured in bar on the piston side of the hydraulic cylinder. It is used to adapt the dynamics of the position controller to the load borne by the hydraulic axis. This ensures that the hydraulic axis exhibits consistent control behavior regardless of the load it carries. 

Important: If the hydraulic axis’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 controller.

Input the high-pressure line 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 negative 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 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, 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
Enb = True calculated based by the position control algorithm calculated by position trajectory generator calculated by speed trajectory generator calculated by acceleration trajectory generator
Enb = Flase 0.0 reflects actual position 0.0 0.0
Table 2: Output signals with the different states of the input Enb

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 4.



Figure 4: 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 5.



Figure 5: General behavior of the input MaxSpdSetPnt

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.

This output reflects the block’s responsiveness to new setpoints. If the hydraulic cylinder is moving, 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, 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 HydroXact Position Control Parameters

This guide provides detailed instructions on how to set up and configure the Technology Block HydroXact 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 the dynamic of your hydraulic system. 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 ].  
  • 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.
  • 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.

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 6: Reaction of the controler with the parameters KpPos = 10; KiPos = 0; GainFwdSpdCtrl = 0 and GainBwdSpdCtrl = 0.

In Figure 6, 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 7: Reaction of the controler with the parameters KpPos = 25; KiPos = 0; GainFwdSpdCtrl = 0; GainBwdSpdCtrl = 0 and GainAccCtrl = 0.

According Figure 7 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 8. The MaxSpdSetPnt was set to 5 [mm/s]. The CtrlOut is 21.85 (see figure 8).
    The value for GainFwdSpdCtrl is then calculated by: GainFwdSpdCtrl => 21.85/5= 4.37



Figure 8: 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 9: 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: You can now move the hydraulic axis 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 10), 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 10: Overshoot despite proper parameter adjustment.

Address List

Halow-Tech GmbH

Company Registration Number: HRB 101539
Amtsgericht Duesseldorf