ProcessingBlock¶
The ProcessingBlock
is used to configure a processing block.
A processing block consumes data from its inputs, processes it, and produces output on its signals.
Example¶
1 2 3 4 5 6 7 8 9 10 11 12 | <Controller Name="Arcas 5EG-0">
<AxisControl Name="X" Template="LogicalAxisControlStandard3rdOrderTemplate">
<ProcessingBlock Name="Watchdog" Template="WatchdogTemplate">
<Signal Name="Interval" Unit="s">1.0</Signal>
</ProcessingBlock>
</AxisControl>
<ProcessingBlock Name="WaveformGenerator" Template="WaveformGeneratorTemplate">
<Signal Name="Gain" Unit="">1.0</Signal>
<Signal Name="Type" Unit="">1</Signal>
</ProcessingBlock>
</Controller>
|
Note
A ProcessingBlock
is instantiated (and scoped) within a controller.
If a ProcessingBlock
block with the provided name already exists in the controller where it is defined, then either:
if it has the exact same attributes (specifying attributes when
Template
already exists is optional), then input connections, signal values or updatable content can be changed.otherwise, initialization fails.
XML schema¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <xs:complexType name="ProcessingBlockType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Signal" type="SignalType"/>
<xs:element name="Event" type="EventType"/>
<xs:element name="Input" type="InputType"/>
<xs:element name="Updatable" type="UpdatableType"/>
<xs:element name="Filter" type="FilterType"/>
<xs:element name="Variant" type="ProcessingBlockVariantType"/>
<xs:element name="NamedMutation" type="NamedMutationType"/>
</xs:choice>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Template" type="xs:string"/>
<xs:attribute name="ExecutionBudget" type="xs:string"/>
<xs:attribute name="ExecutionType" type="xs:string"/>
<xs:attribute name="Period" type="xs:string"/>
<xs:attribute name="CalculationStart" type="Boolean"/>
</xs:complexType>
|
Attribute |
Description |
---|---|
|
Used to define a name for a processing block. |
|
Specifies the template, which is required to be instantiated. |
|
Defines the maximum amount of time required by the processing block for each process step`. |
|
Defines whether a processing block is processed synchronously or asynchronously on the controller. |
|
Processing block sample period. |
|
Defines the block to be calculated first In case of a circular dependency. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <xs:complexType name="ProcessingBlockVariantType">
<xs:complexContent>
<xs:extension base="BaseVariantType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Signal" type="SignalType"/>
<xs:element name="Event" type="EventType"/>
<xs:element name="Input" type="InputType"/>
<xs:element name="Updatable" type="UpdatableType"/>
<xs:element name="Filter" type="FilterType"/>
<xs:element name="Variant" type="ProcessingBlockVariantType"/>
<xs:element name="NamedMutation" type="NamedMutationType"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
|
Inputs |
Description |
---|---|
Velocity |
Demand velocity from TrajectoryInterpolator. |
Acceleration |
Demand acceleration from TrajectoryInterpolator. |
Jerk |
Demand jerk from TrajectoryInterpolator. |
Snap |
Demand snap from TrajectoryInterpolator. |
Reset |
Clear the feedforward control output from the time delay. |
Signals R |
Description |
---|---|
KfvOutput |
Viscous friction compensation. |
KfcOutput |
Coulomb friction compensation. |
KfaOutput |
Acceleration friction compensation. |
kfjOutput |
Jerk friction compensation. |
kfsOutput |
Snap friction compensation. |
Signals R/W |
Description |
---|---|
Kfv |
Viscous friction compensation gain. |
Kfc |
Coulomb friction compensation gain. |
Kfa |
Acceleration compensation gain. |
Kfj |
Jerk compensation gain. |
Kfs |
Snap compensation gain. |
FeedforwardDelay |
Delay of the feedforward signal. |