MLGearInit
Function - Initializes a Gear Pipe Block with user-defined settings and for use in a PLC program.
- This function is automatically called if a Gear Block is added to the Pipe Network, with user-defined settings entered in the Pipe Blocks Properties screen.
- The Pipe Block is assigned a Name, Ratio, Offset, and Slopes for changes in Ratio and Offset values.
- Choose between Modulo or Not modulo mode.
- Slopes set the limit at which step changes in Ratio and Offset are implemented.
-
-
- Set the
RatioSlope < (Ratio * EtherCAT Update Rate). - The Gear block makes a jump (without a ramp) from one gear to the next when the RatioSlope is greater than the Ratio change factor multiplied by the update rate scale factor.
- Set the
Inputs
|
Input |
Data Type See Data Types. |
Range |
Unit |
Default |
Description |
|---|---|---|---|---|---|
|
BlockID |
DINT |
1 to 1024 |
N/A |
No default |
ID number of a created Pipe Block. |
|
Ratio |
LREAL |
No range |
N/A |
No default |
Ratio coefficient of a new Gear Pipe Block.
|
|
Offset |
LREAL |
No range |
N/A |
No default |
Input offset of a Gear Pipe Block.
|
|
UseUserRatioSlope |
BOOL |
FALSE, TRUE |
N/A |
No default |
FALSE to use the maximum Slope.
|
|
RatioSlope |
LREAL |
No range |
1/sec |
No default |
User-defined limit at which step changes in Ratio are implemented.
|
|
UseUserOffsetSlope |
BOOL |
FALSE, TRUE |
N/A |
No default |
FALSE to use the maximum Slope.
|
|
OffsetSlope |
LREAL |
No range |
User units / sec |
No default |
User-defined limit at which step changes in Offset are implemented.
|
|
Modulo |
BOOL |
FALSE, TRUE |
N/A |
No default |
Modulo mode adapts the output values according to the ModuloPosition (modulo).
|
Outputs
|
Output |
Data Type See Data Types. |
Range |
Unit |
Description |
|---|---|---|---|---|
|
Default (.Q) |
BOOL |
FALSE, TRUE |
N/A |
Returns TRUE if the Gear Pipe Block is initialized.
|
Remarks
Modulo Value
If the Gear block's input is a modulo value and the position delta is greater than ½, the modulo value within one sample period in the opposite direction, the Gear block cannot detect the change in the direction of motion.
Example
- The sample period is: 1 msec.
- The Master is configured for a 360 degree modulo.
- The Master position is changed by >180 degrees within 1 msec.
- In this case, the Gear block cannot determine whether the direction is in the same or opposite direction.
Avoid Modulo Calculation Problems
- Either deactivate and reactivate the PipeNetwork when forcing the Master position with MLMstForcePos.
- Use a MLMstAbs or MLMstRel move to force the Master’s position value.
Example
To force the Master position to 0 (zero), use this code:
PipeNetwork(MLPN_DEACTIVATE);
MLMstForcePos(PipeNetwork.MASTER, 0);
PipeNetwork(MLPN_ACTIVATE);
-
-
- Gear objects are normally created in the Pipe Network using the graphical engine.
- You do not have to add MLGearInit functions to their programs.
- Parameters are entered directly in pop-up windows; the code is automatically added to the current project.
FBD Language Example
FFLD Language Example
IL Language Example
Not available.
ST Language Example
//Initialize a Gear Pipe Block named GEAR1 with:
// Ratio = 1,Offset = 0, User Ratio Slope OFF, User Ratio
// Slope = 0, Offset Slope = 0, and no Modulo
GEAR1 := MLBlkCreate( 'GEAR1', 'GEAR' );
MLGearInit( GEAR1, 1.0, 0.0, false, 0.0, false, 0.0, false);
See Also







