MC_AxRtHybridAxisActuals_BkPlcMc
![]()  | Available from version 3.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_VARName  | Type  | Description  | 
|---|---|---|
Axis  | AXIS_REF_BkPlcMc  | Here, the address of a variable of type AXIS_REF_BkPlcMc should be transferred.  | 
 Outputs
VAR_OUTPUT
    Error:   BOOL;
    ErrorId: BOOL;
END_VARName  | 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.  | 
