Pipe Block Descriptions


  • Click a Pipe Block icon to view its description.

Inputs
Math
Data
Flow
Measure
Motion
The
Drive
The
Load
Master PMP Sampler
Derivator Integrator Adder
Delay
Comparator Trigger
Gearing
Camming
Phaser
Synchronizer
Convertor
Axis

Virtual master generating values (position) at each cycle Master

Purpose

In contrast to the independent axes approach, synchronized axes must have something to put them in synchronization.

  • This is the main goal of the Master pipe block which contains a Trapezoidal Motion Profile (TMP) generator, which gives the cadence to the machine.
  • It starts, stops and runs the machine at the desired speed.

The TMP Generator provides linear acceleration and deceleration, and also constant speed operation.

  • These values are pure logical values, with generally no direct physical representation.
  • It is a source block which frequently serves as a virtual master for a system comprised of several pipes.
  • A TMP Generator may be commanded to produce a movement of specified length (distance), or to accelerate to setpoint rate and operate at that rate until commanded to operate at a different rate.
  • Acceleration and deceleration rates are also specified by the application.

Parameters

Parameter

Description

Sampling Period

Sampling period of the generator expressed according to the cycle.

Example: 2.0 means the sampling is done once every 2 cycles.

Mode

The available modes are Modulo and No Modulo.

Modulo Position

Modulo Position for cyclic motion systems expressed in user logical units.

Travel Speed

Travel speed value expressed in user position units per second.

The travel speed value is used to set the constant speed part of the trapezoidal motion profile.

Acceleration

Acceleration value expressed in user position units per second squared.

The acceleration value is always used to generate the first part of the trapezoidal motion profile.

Deceleration

Deceleration value expressed in user position units per second squared.

The deceleration value is always used to generate the last part of the trapezoidal motion profile.

Initial Position

Initial position value expressed in user position units.

Used only at the pipe activation to initialize the position starting point.

Associated Data

  • OutputValue: output value of the data flows.
  • IsReady: Boolean set to TRUE when the pipe block is ready.

Motion Functions

See PMP to access the motion functions associated to this pipe block.

Produces jerk limited motion PMP

Purpose

PMP (Parabolic Motion Profile) pipe block generates a flow of values with a second derivative (acceleration) which produces a trapezoidal trajectory.

  • The PMP Generator is similar to the TMP Generator.
  • It is useful in applications where jerk (third derivative of the motion) limiting is necessary.
  • You can specify the maximum instantaneous rate of change of acceleration.

Uses

The PMP Generator is utilized as a virtual master to generate a simple point-to-point profile in machinery where large masses are being rotated or delicate webs (used in industry) are being processed.

It is used in any application where jerk must be limited.

The PMP Generator is capable of producing forward-backward motions with a non-stop, jerk-free transition through zero speed.

  • See the image.
  • This feature is frequently used for linear axes which must make a quick back-and-forth motion without any pause at one end.

Figure 5: PMP Generator Forward and Backward Motion Profile

Parameters

Parameter

Description

Sampling Period

Sampling period of the generator expressed in seconds.

Modulo Position

Modulo Position for cyclic motion systems expressed in user logical units.

First Travel Speed

Last Travel Speed

Travel speed values expressed in user position units per second.

The travel speed values are always used to set the constant speed part of the motion profile.

Acceleration

Acceleration value expressed in user position units per second squared.

The acceleration value (subject to constraints imposed by the JERK parameter) is always used to generate the portions of the motion profile where velocity is changing.

Jerk

Jerk value expressed in user position units per second cubed.

  • The jerk value is used to generate rounded part of the speed motion profile.
  • Jerk is the derivative of the acceleration, so it specifies the acceleration ramp.

Initial Position

Initial position value expressed in user position units, used only at the pipe activation to initialize the position starting point.

Associated Data

  • OutputValue: output value of the data flows.
  • IsReady: Boolean set to TRUE when the pipe block is ready.

Motion Functions

See PMP to access the motion functions associated to this pipe block.

Go back to the top of the page[Top]

The connection between an external master and a Pipe NetworkSampler

Purpose

The purpose of the sampler block is to periodically sample and place into a pipe some output of a source object.

Example: The sampled output might be the POSITION or SPEED of the source object measured by a resolver, an encoder, or some other types of sensor.

The sampler implements a logical connection between an external master (source object outside the KAS system) and one or more pipes. This is for slaving the motion of the KAS system to the external master by placing the sampled values into the pipes.

Sampler

Figure 10: Sampler

Parameters

Parameter Description
Sampling Period

Period of the sampler expressed in seconds

Sampler Period

Figure 11: Sampler Period

Mode

The available modes are Position and Speed

Sampler Mode Position

Figure 12: Sampler Mode Position

Sampler Mode Speed

Figure 13: Sampler Mode Speed

Associated Data

  • OutputValue: output value of the data flows.
  • IsReady: Boolean set to TRUE when the pipe block is ready.

Motion Functions

See PMP to access the motion functions associated to this pipe block.

Go back to the top of the page[Top]

Applies a derivation on the input data flow Derivator

Purpose

The Derivator is a general pipe block whose purpose is to calculate the first derivative of its input values with respect to time.

  • It is usually used to change incoming position into velocity.
  • It often works together with the GEAR block as gearing in velocity to avoid jumps when suddenly changing the position.

Derivator - 'No Modulo' Mode

Figure 15: Derivator - "No Modulo" Mode

Derivator - Modulo Mode

Figure 16: Derivator - Modulo Mode

Parameters

Parameter Description
Input Modulo Position

Value of the period of a cyclic system expressed in user units.
The parameter "INPUT_MODULO_POSITION" is defined to correctly manage the periodicity (modulo) of the input values.

Example: If the input value increases each millisecond by one (degree) then the output value is a thousand (degrees per second). Imagine the input value skips suddenly from 359 to 0:

  • If VALUE PERIOD = 360, the output continues to indicate 1000 (degrees per second), indicating that roll-over into the next period has been properly handled.
  • If VALUE PERIOD = 1000, the output indicates -359,000 (degrees per second), indicating that the input has incorrectly interpreted roll-over as a 359 degree change in input in one millisecond.

Initial Behavior

The first calculation of a Derivator pipe block just after the pipe installation indicates zero regardless of the initial input value.

Associated Data

  • OutputValue: output value of the data flows.
  • IsReady: Boolean set to TRUE when the pipe block is ready.

Motion Functions

To access the motion functions associated to this pipe block, see click here....

Go back to the top of the page[Top]

Integrates the input data flow Integrator

Purpose

Integrates the input data flow.

Usually used to change velocity to position and the output is the starting point from where the integration starts.

Integrator - 'No Modulo' Mode

Figure 17: Integrator - "No Modulo" Mode

Integrator - Modulo Mode

Figure 18: Integrator - Modulo Mode

Parameters

Parameter Description
Mode The available modes are Modulo and "No Modulo"
Output Modulo Position

When mode is set to Modulo, integrate the input values with respect to time.

"OUTPUT_MODULO_POSITION" is defined to correctly manage the periodicity (modulo) of the output values.

Associated Data

  • OutputValue: output value of the data flows.
  • IsReady: Boolean set to TRUE when the pipe block is ready.

Motion Functions

To access the motion functions associated to this pipe block, see click here....

Go back to the top of the page[Top]

Adds two data flowsAdder

Purpose

Adds two data flows (the output is the algebraic sum of the two inputs).

Before being added, input values may be amplified and shifted (multiplication factor and offset are individually defined for each input).

Parameters

Parameter

Description

Ratio

Multipliers for the input data flows.

Offset

Offset values for the input data flows.

Output = (Ratio_1 * Input_1 + Offset_1) + (Ratio_2 * Input_2 + Offset_2)

Rules

Rule 1 and Rule 2 apply to the Adder pipe block.

Rule 1

The pipe blocks connected to the Adder inputs (e.g., a Cam and a Gear) must have the same output modulo positions.

 

Rule 2

The modulo position of the pipe blocks connected to the Adder inputs must have the same value (or a multiple) as the modulo position of the pipe block connected to the output of the Adder.

Associated Data

  • OutputValue: output value of the data flows.
  • Entry1: input value 1.
  • Entry2: input value 2.

Motion Functions

To access the motion functions associated to this pipe block, see Adder.

When a slave axis must be de- and re-synchronized with a master axis Synchronizer

Purpose

The Synchronizer provides the capability to de-synchronize and re-synchronize an axis to an internal or external master like a mechanical clutch / brake.

  • It is used where a slave axis must be stopped and, when restarted, achieve perfect, jerk-free re-synchronization with the master.
  • The ramping distance (increment of slave axis motion within which ramp up or ramp down occurs) and the slave axis resting position are adjustable.

Parameters

Parameter Description
Modulo Position

Value of the period of a cyclic system expressed in user units.

The parameter is defined to correctly manage the periodicity (modulo) of the input values.

Curve Type When synchronizing, specifies which type of curve (parabolic or polynomial) has to be implemented for merging with the master.
Output Phasing Set the output phasing value (position reached once the axis is stopped) of the synchronizer block.

Associated Data

  • OutputValue: output value of the data flows.
  • IsReady: Boolean set to TRUE when the pipe block is ready.

Motion Functions

To access the motion functions associated to this pipe block, see click here....

Go back to the top of the page[Top]

Suspend the computation of the pipe during several cyclesDelay

Purpose

Delay the data flow a number of cycles.

Parameters

Parameter Description
Cycle Delay Number of cycles for postponement

Associated Data

  • OutputValue: output value of the data flows.
  • IsReady: Boolean set to TRUE when the pipe block is ready.

Motion Functions

See click here... to access the motion functions associated to this pipe block.

Synchronize operation of inputs and outputs to motion Comparator

Purpose

A Comparator monitors the flow of pipe data and causes a specified action when the flow of values at its input crosses a specified reference value.

  • A Comparator is used for synchronizing the operation of an actuator to the position of a product or axis in a machine cycle.
  • The Comparator block does not modify flow values and has no effect on the axis and its periodicity.

Parameters

Parameter Description
Modulo Position

Value of the period of a cyclic system expressed in user units.

The parameter "MODULO_POSITION" is defined to correctly manage the periodicity (modulo) of the input values.

Reference The Comparator checks if the input value of the Comparator is greater or equal to this reference value.
Through Zero

Through zero reference mode can be set or not:

  • YES: Used to properly detect a periodic threshold crossing of motions on periodic axis where the flow values are always greater than or equal to zero but lower than the Modulo Position.
    • In this mode, the flow values must first cross one period limit and then, as soon as a value is greater than or equal to the reference, the ready flag becomes true.
  • NO: Applies mainly to bounded motions.
    • The Comparator's ready flag is false as long as the flow value is less than the reference and becomes true as soon as the flow value is greater than or equal to the reference.

Associated Data

  • OutputValue: output value of the data flows.
  • IsReady: Boolean set to TRUE when the pipe block is ready.

Go back to the top of the page[Top]

Computes the local pipe value from the timestamp of a Fast Input event Trigger

Purpose

Computes the local pipe value from the timestamp of a Fast Input time event.

  • Pipe input values are passed through to the block output with no influence on the flow of pipe values.
  • Typical application is for PLCopen Registration.

Trigger Extrapolates Output Value Based on Fast Input Timestamp

Figure 21: Trigger Extrapolates Output Value Based on Fast Input Timestamp


  • There are network and mechanical delays in systems that make capturing a correct pipe position difficult. To remove the delays, use a sampler block to capture the actual position of an axis. This image shows how this works:

    This sampler block is configured to capture the actual position of axis 1. The conversion and axis blocks are only needed to terminate the pipe. MLTrigWriteDelay may still be needed to compensate for sensor delay.
    If you need to calculate the master pipe value corresponding to the captured axis position, add the difference between the axis command position and the master pipe value.

Parameters

Parameter Description
Input Axis Name of the axis where the drive has a Fast Input connection.
Input ID Identifier of the input object.
Trigger Mode Mode can be either RISING or FALLING EDGE

Associated Data

  • OutputValue: output value of the data flows.
  • TRIG_POS: interpolated position calculated when the time event was triggered (reserved for debugging purposes).
  • TRIG_TIME: time when the event was triggered (reserved for debugging purposes).
  • DELTA_TRIG_TIME: reserved for debugging purposes.

Motion Functions

To access the motion functions associated to this pipe block, see click here....

See Fast Inputs with Pipe Network Motion for more details.

Go back to the top of the page[Top]

Applies a gearing ratio on the input data flowGear

Purpose

The purpose of the Gear block is to amplify / attenuate (with a ratio) and shift (with an offset) the flow of values.

  • A Gear may have a ratio and offset less or greater than one, or even zero.
  • Ratio and offset may be changed dynamically during application execution.
  • A slope may be specified to limit the rate at which step changes in ratio and offset are implemented.

Parameters

Parameter Description
Ratio Ratio coefficient
Offset The input offset value.
Ratio and Offset Slope

Sets the maximum rate of change at the pipe block output resulting from changes in RATIO or OFFSET parameters.

  • When set to the MAX (which is the default setting), the slope is infinite.
  • Units are user units per second for OFFSET SLOPE and 1/second for RATIO SLOPE
Modulo

When set to TRUE, adapts the output values according to the periodicity (modulo).

Output = Ratio * Input + Offset

Associated Data

  • OutputValue: output value of the data flows.
  • IsReady: Boolean set to TRUE when the pipe block is ready.
  • INPOS: reserved for debugging purposes.

Motion Functions

To access the motion functions associated to this pipe block, see click here....

Go back to the top of the page[Top]

Produce user-defined motion profiles Cam

Purpose

The Cam block is used to generate motion profiles of any shape. The profile generally represents the position transformation.


  • Jerk may ultimately cause a jerk in motor motion when a cam block is applied to the upstream pipe network positions.
    To avoid jerk in the pipe network, the potential position offset between the cam's first point and the input to the cam block must be taken care of in the application program by setting a cam offset or another method.

Declarations

Separating the declaration of the Cam and profile parameters for the Cam pipe block provides the capability to declare and prepare several different cam profiles and then apply one of these dynamically to the Cam pipe block.

Profile switching may be done on the fly, without losing the synchronization and with no dead time.

In addition, the periodicity of the cam output values can be specified when used with a periodic system.

Parameters

Parameter Description
Profile Name

Name of the current profile assigned to the cam.

It must be a declared profile object.

Output Modulo Position Value of the period of the cam output values expressed in user units, for a cyclic system.

Shape Specification

The shape of the cam profile must be processed by the Cam Profile Editor utility before it is usable by the Pipe Network Editor.

  • The shape of the profile is represented by a table of numerical values.
    • These values can be generated using software tools such as spreadsheets or specialized cam software.
  • The KAS Cam Editor software tool provides the capability to visualize, analyze, edit and smooth profiles.
  • Cam blocks have gain as well as offset adjustment capabilities.
    • Axis position is usually the profile variable; however, velocity or torque profiles may also be generated.

Associated Data

  • OutputValue: output value of the data flows.
  • IsReady: Boolean set to TRUE when the pipe block is ready.

Motion Functions

To access the motion functions associated to this pipe block, see click here....

Go back to the top of the page[Top]

For independent phase adjustmentPhaser

Purpose

A Phaser produces a flow of output values which are offset (phase shifted) a specified amount from its input. A typical application of a Phaser is to provide independent phase adjustment capability on an axis.

The Phaser has some similarities with the Gear pipe block, however its intended use is quite different.

  • The typical application for a Phaser pipe block is to drive a periodic system: a machine where the axes are globally increasing (or decreasing) their position.
  • The Gear pipe block, with OFFSET and RATIO parameters, is intended for bounded applications (applications where the integral of speed on a complete cycle is zero).
    • Using the wrong one at the wrong place will cause unnecessary complications.
    • In addition, you must always consider the position as the input value (and not the speed).

Parameters

Parameter

Description

Output Modulo Position

Defined to correctly manage the periodicity (modulo) of the output values.

Expressed in User units.

Phase

Magnitude of the number added to the input value.

  • Phase value can be negative.
    • A negative phase value is subtracted from the input value.
  • Phase is expressed in user logical units.

Phase Slope Type

Choose between these modes to define the slope:

  • Phase_Slope_Max: A phase change is fully implemented in a single step.
  • Phase_Slope_User: Select this mode to specify the phase slope.

Phase Slope

Rate at which phase changes are implemented, expressed in user logical units per second.

A slow rate parameter is provided to limit the implementation of step changes of phase.

Standby Value

Value assumed by the phaser output when the phaser is in "stopped" condition.

Expressed in user logical units.

Associated Data

  • OutputValue: output value of the data flows.
  • IsReady: Boolean set to TRUE when the pipe block is ready.

Motion Functions

To access the motion functions associated to this pipe block, see click here....

Converts input data flow into a position and forwards it to an axis Convertor

Purpose

The convertor block is necessary to define the connection between a pipe and a destination object.

  • Depending on convertor mode, the incoming numerical values are converted to POSITION or SPEED setpoints with no periodicity.
    • This conversion has no effect on the axis units and their periodicity.
  • This block must be present at the end of a pipe, typically right before an axis block.

Convertor - Position Mode 'No Modulo'

Figure 24: Convertor - Position Mode "No Modulo"

The Output position values are identical to input values when inputs in position mode (by range).

Convertor - Position Mode (Modulo)

Figure 25: Convertor - Position Mode (Modulo)

Convertor - Speed Mode

Figure 26: Convertor - Speed Mode

Parameters

Parameter Description
Mode

The available modes are:

  • POSITION: The values drive the position of the motor.
    • At pipe activation, the current (axis) position is set to the first value given by the pipe by moving the motor.
    • Speed and acceleration are derivatives of position.
    • The torque is set according to the regulator needs.
    • Units are the axis physical units.
  • SPEED: The values drive the speed of the motor.
    • At pipe activation, the current position is not affected.
    • Position is the integral of speed and acceleration is the derivative of speed.
    • The torque is set according to the regulator needs.
    • Units are the axis physical units per second.

Associated Data

  • OutputValue: output value of the data flows.
  • IslinkedToAxis: Boolean set to TRUE when the Convertor pipe block is linked to an axis block.

Motion Functions

To access the motion functions associated to this pipe block, see click here....

Go back to the top of the page[Top]

Models a physical axisAxis

Purpose

  • Models the link from the Pipe Network to a physical axis.
  • Gives access (through the fieldbus) to remote drive's functions and parameters.
  • Automatically updates the image of the remote drive's status and error information.

Parameters

Parameter Description
Position Unit

This field sets the units (see UNIT Parameters ) used by the drive axis.

When the axis is defined as an AKD2G, the units and value are synchronized with the drive.

  • Counts 16 bit
  • Degree
  • Radian
  • Custom - Selecting Custom allows you to specify the User Units Per Revolution.
User Units Per Revolution

To divide the current axis into graduations adapted to your project, you must define the unit that is equivalent to one revolution of the physical motor (e.g., 3600 means that you define the user unit to be tenth of a degree).

You can rely on expressions to define values.

Unit Label

Specify the type of units being used.

This is used for display purposes.

Travel Speed

Travel speed value expressed in user length units per second.

The travel speed value is used to set the constant speed part of the trapezoidal motion profile.

Acceleration

Acceleration value expressed in user length units per second squared.

The acceleration value is always used to generate the first part of the trapezoidal motion profile.

Deceleration

Deceleration value expressed in user length units per second squared.

The deceleration value is always used to generate the last part of the trapezoidal motion profile.

Mode

The available modes are Modulo and "No Modulo".

Rollover Position Modulo Position for cyclic motion systems expressed in user logical units.
Motion Bus

Select in the drop-down menu the type of motion bus associated to the axis.

This is only available when using an imported ENI file.

Address

Specify the address number depending on the motion bus.

This is only available when using an imported ENI file.

Drive Axis Number

This is only available when using an imported ENI file.

Drive Units per Revolution

Number of units associated to the Drive for one revolution of the physical motor.

This is only available when using an imported ENI file.

Associated Data on Positions

This data are illustrated here:


  • All positions are in user units with modulo applied if active, unless specified.

Position / Offset Description

Actual Position

This is the actual position of the underlying axis as reported by the drive.

  • It is the sum of the feedback value (Position actual value) returned from the communication link to the drive and any zero-offset due to an MLWritePos function block.
  • See either MLAxisWritePipPos or MLAxisWritePos.
ActualPos := FeedbackPos + ZeroOffset

Feedback Position

This is the current position the drive reports for an axis, scaled to user units.

It does not take into account the value of the Zero Offset or axis modulo.

Generator Position

This is the summation of all previous commands (i.e., calls to functions which perform motion) to the Axis internal motion generator.

See either such as MLAxisAbs, MLAxisMoveVel, or MLAxisRel.

  • It is modified by MLAxisWritePos to insure no jumps in the Reference Position command.
  • It accumulates changes in pipe position due to activate and deactivation of the pipe the Axis block is associated with.

Pipe Position

This is the output of the convertor block is written into the Pipe Position value whenever the Convertor block is connected to the axis and the pipe is active.

See Convertor.

Reference Position

This is the commanded axis position sent to the drive.

It is the summation of Pipe Position and Generator Position.

ReferencePosition = Pipe Position + Generator Position

Zero Offset

This adjusts the coordinate system so the Actual Position reports correct values after homing or using MLAxisWritePos.

Motion Functions

To access the motion functions associated to this pipe block, see click here....

Go back to the top of the page[Top]

Concept Link IconSee Also