Introduction
Introduction
Sequencer is CDP addon for aiding the development of sequential control tasks like controlling manufacturing lines or other control tasks that consists of steps taken in sequence. The default Sequencer behavior is derived from IEC 61499 defined event based control standard. With a modern, open architecture, Sequencer enables developers to build distributed software blocks that are usable stand-alone or as parts of larger systems.
In other words, Sequencer defines a modeling language that is similar to the old function blocks. This language separates control flow and data flow in easy to understand manner making designs easier to create and also easier to understand.
Sequencer Block Interface
The Sequencer block encapsulates existing CDP Operators for data processing. Similar to other blocks the inputs are on the left and the outputs on the right, but the interface differentiates events and data. The events on the top part of the block are shown as pastel red IO, and the data on the lower part as blue IO.
Types of Sequencer Blocks
IEC 61499 defines three types of blocks that you can use when developing your application.
- Basic Function Block - In the BFB you can define a state machine using the Execution Control Chart (ECC). The ECC decides which operations are executed based on its state and the input events.
- Composite Function Block - The CFB is simply a container for other Sequencer blocks to build more complex blocks.
- Service Function Block - SFBs are Sequencer blocks that can be used to implement access to specific hardware, services or protocols in C++
Internal Sequence
The following image shows how a Sequencer block is triggered to execute its functionality. A sequence of steps is executed when an event arrives at the block or the parent cycles (when cyclic processing is enabled). There are more detailed explanations available for the specifics of each block on their help pages.
An input event arrives at the block or parent cycle occurs (depends on when ProcessOn allows processing) The input data members are refreshed. Arguments
listed in EventIn Data properties are overwritten when present in triggering event message. The event or cycle triggers the processing of the Execution Control Chart (ECC). Depending on the block type and execution control, internal operations are triggered for execution. The internal operation finishes the execution and provides new output data and may trigger output event sending. The output data member values are made available to targets. In case the event was triggered Arguments
listed in EventOut Data property are loaded into outgoing event message. In case event was triggered the event message is dispatched.
Note: Steps to may be repeated several times. Although an output event can be triggered, this need not be always the case.
Some of the control paths are optional and depend on set configuration options.
- When EventIn does not contain any payload data or its Data property does not list any Argument, no input data overriding will occur.
- When EventOut does not list any Argument, no output data is loaded into event message payload.
- When the cyclic mode is not enabled in ProcessOn property no execution of the block will occur on parent cycles.
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.