Pipe Block

Pipes are built using logical entities called Pipe Blocks. A Pipe Block is an object whose purpose is to modify a flow of values with strict time constraints. Pipe Blocks normally have both input and output flows of values. Based on their functions, there are four kinds of Pipe Blocks:

FunctionClosed A function calculates a result according to the current value of its inputs. A function has no internal data and is not linked to declared instances. Description

Input
(source)

Works as generator of values:

  • sample external source objects or create a discrete flow of values as an input to the pipe

Transformer

  • apply a specific algorithm to the input value to produce their output (transformations can be linear or complex: e.g. cam)
  • can create events depending on the incoming values

Output (convertor)

Block that can end a pipe:

  • convert the incoming values from user units to correct system units for the destination objects

Destination

Simply models a physical axis of the machine

The following table provides a short description of each Pipe Block:

Function Pipe Block Description

Input

Master

Virtual master generating values (position) at each cycle

Input

Sampler

Samples external value (encoder, resolver, PLCClosed "Programmable Logic Controller" A Programmable Logic Controller, PLC, or Programmable Controller is a digital computer used for automation of industrial processes, such as control of machinery on factory assembly lines. Used to synchronize the flow of inputs from (physical) sensors and events with the flow of outputs to actuators and events variable etc.)

Transformation

 

 

Mathematical

Derivator

Applies a derivation on the input data flow

Mathematical

Integrator

Integrates the input data flow

Mathematical

Adder

Adds two data flows

Event-driven

Synchronizer

Starts and stops a sub-pipe in a controlled way

Event-driven

Delay

Delay the data flow during some cycles

Event-driven

Comparator

Monitor the input data flow and detects the crossing of a particular value

Event-driven

Trigger

Computes the local pipe value from the timestampClosed A timestamp is a sequence of characters, denoting the date and/or time at which a certain event occurred of a Fast InputClosed The inputs are taken into account at each cycle depending on the system periodicity (for example each millisecond). Under certain circumstances this can be insufficient when more accuracy is needed, or if a quick response is required from the system. To fill the gap, a drive may have some Fast Input connections (generally one or two). When an event happens that triggers a Fast Input (e.g. when a sensor sends a rising edge), the detection of a signal occurs faster (which can be 1000 times more accurate than the system periodicity). Then the timestamp associated with this input can be provided to the IPC to take corrective action event

Modification

Cam

Applies a cam table (also called Cam Profile) to the input data flow

Modification

Gear

Applies a gearing ration on the input data flow

Modification

Phaser

Applies a phase offset to the input

Output

Convertor

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

Destination

Axis

Models a physical axis

Table 5-3: Pipe Network - List of Pipe Blocks


  • Below is some high-level information explaining the use of Pipe Blocks.
    For an in-depth explanation, refer to Pipe Blocks Description.

Master

Use a Master Pipe Block to create a virtual master to link two or more axes. The Profile generator in the Master block is trapezoidal. If a parabolic type profile is required, use a PMP Pipe Block. If the master is an external encoder or another axis, use the Sampler Pipe Block.

Sampler

Use a Sampler Pipe Block to read an external encoder as an input signal into the Pipe Network or to directly read the actual position of another axis.

Gear

Use a Gearing Pipe Block to perform electronic gearing. The Gear Pipe Block allows gear ratios and the slope of the gear change to be initially set, then changed from within the application program.

Cam

Use a Cam Pipe Block to optimize the motion profile. Use an Adder block with a Cam block to dynamically change the distance moved during each period (or modulo) of motion.

Cam Profiles are created using the cam creation tool.

Comparator

By tracking the position at one point of the Pipe Network, you can use a Comparator Pipe Block to synchronize when code is executed in a PLC application program.

The following example shows the changing of the offset move by changing the amplitude (or offset) of the Cam Pipe Block.

In a PLC application program, the MLCompWriteRef function block is used to arm the comparator block and MLCompCheck function block is used to check the position. By using condition statements in a user program, specific actions (such as changing the move distance of the offset) can then be taken.

Another example shows the use of a Comparator Pipe Block to determine if a high-speed input is within the acceptable position range.

Trigger

Use a Trigger Pipe Block to read the position when a high-speed input is triggered on the machine. The trigger block allows you to “catch" the position at a particular location in the Pipe Network, as required by the application.

Delay

Use a Delay Pipe Block to delay the flow of position through a Pipe Network. One potential use is to place it before a Trigger block in a pipe which is not connected to a drive. There is a delay of five servo update cycles between the dynamic position in the Pipe Network and the triggering of a high-speed digital input.

Phaser

Use a Phaser Pipe Block to perform a dynamic phase adjustment inside the Pipe Network. This block can be used to phase-advance or phase-retard a position as required to synchronize different motion elements on a machine.

Synchronizer

Use a Synchronizer Pipe Block to synchronize two axes. This Pipe Block is useful in applications where it is necessary to start the motion of a second axis and sync to the first.

Axis

Models the link from the Pipe Network to a physical axis.

Changing Information Flow from Position to Velocity

You can change the Pipe Network flow of information from position to velocity by using the Convertor Pipe Block. This Pipe Block is normally set up to receive position, so it must be changed to receive the expected input signal type as shown below:

Change the mode of Converter block to SPEED (and not POSITION mode).

Concept Link IconSee Also