MC_AxRtHybridAxisActuals_BkPlcMc (from V3.0.44)
The function block determines the essential actual values of a servo-electric/hydraulic hybrid axis.
Inputs
VAR_INPUT
stSystem_PrsIn: ST_TcPlcInputAnalog;
stAside_PrsIn: ST_TcPlcInputAnalog;
stBside_PrsIn: ST_TcPlcInputAnalog;
nTorqueFeedback: INT;
udiMotorEnc_Count: UDINT;
bUpdateActForce: ST_ BOOL;
bPumpSwitch_Ext: BOOL;
bAreaSwitch_Ext: BOOL;
Name | Type | Description |
---|---|---|
stSystem_PrsIn | If a pressure sensor is present at the pressurized reservoir, the input variables of the terminal are transferred here. | |
stAside_PrsIn | If a pressure sensor is present on the positive area of the cylinder, the input variables of the terminal are transferred here. | |
stBside_PrsIn | If a pressure sensor is present on the negative area of the cylinder, the input variables of the terminal are transferred here. | |
nTorqueFeedback | INT | The torque feedback signal of the drive is to be transferred here. |
udiMotorEnc_Count | UDINT | The counter value of the motor encoder must be transferred here. |
bUpdateActForce | ST_ BOOL | With this signal, the function block calculates the current actual force of the axis and updates it in stAxRtData.fActForce. |
bPumpSwitch_Ext | BOOL | This signal notifies the function block that pump switching of the axis is active. |
bAreaSwitch_Ext | BOOL | This signal notifies the function block that area switching of the axis is active. |
Inputs/outputs
VAR_IN_OUT
Axis: AXIS_REF_BkPlcMc;
END_VAR
Name | Type | Description |
---|---|---|
Axis | AXIS_REF_BkPlcMc | Here, the address of a variable of type AxisRef_BkPlcMc should be transferred. |
Outputs
VAR_OUTPUT
Error: BOOL;
ErrorId: BOOL;
END_VAR
Name | Type | Description |
---|---|---|
Error | BOOL | The occurrence of an error is indicated here. |
ErrorId | BOOL | An encoded indication of the cause of the error is provided here. |
Behavior of the function block
If the axis is identified as 'hybrid', the function block performs the following steps.
- If a permissible encoder type for the motor encoder is specified for the axis, the function block determines the current actual angle from udiMotorEnc_Count. Otherwise, the axis is set to a error state and the angle is set to 0.0°.
- The modulo actual angle is updated with the set number of pump cavities.
- The actual pump speed is determined.
- The pump torque is determined.
- If a scaling pressure is set for the system pressure and the connection monitoring in stSystem_PrsIn does not indicate a problem, the input value is converted to a pressure and updated in stAxRtData.fSupplyPressure of the axis.
- If a scaling pressure is set for the pressure on the positive side and the connection monitoring in stAside_PrsIn does not indicate a problem, the input value is converted to a pressure and updated in stAxRtData.fActPressureA of the axis.
- If a scaling pressure is set for the pressure on the negative side and the connection monitoring in stBside_PrsIn does not indicate a problem, the input value is converted to a pressure and updated in stAxRtData.fActPressureB of the axis.
- If TRUE is passed in bUpdateActForce, the function block stAxRtData.fActForce updates the axis, using the currently effective areas.
- If an edge is detected at one of the switch signals (bAreaSwitch_Ext, bPumpSwitch_Ext), the function block initiates a ramp for changing the feed constant and the maximum speed.
Irrespective of whether the axis is identified as 'hybrid', this function block calls a local instance of MC_AxRtEncoder_BkPlcMc() for the axis.
If no function block of this type is called for a servo-electric/hydraulic axis, changeovers are not handled correctly. This could lead to unexpected behavior of the axis. In this case, the axis is set to the error state and a message is output. |