This article explains all the rules that apply for all channel connections in diagrams created with DATAFLOW Designer.
DATAFLOW Channels are used to send events and to define the receiver (or receivers) of events. Therefore they must follow strict rules so that valid code can be generated.
In the following section the rules for all elements that can be connected with DATAFLOW channels (and the channels elements themselves) are explained.
The elements connected with DATAFLOW Channels are:
- One to Any Multiplicator
- Input Port
- Output Port
- Inherited Input Port
- Inherited Output Port
A channel is a point to point connector. It has a source and a target. The target is indicated with an arrow.
A channel connects an output with an input:
Both source and target must be connected:
A Connection to a port that is not child of component is not allowed:
It is not allowed to connect ports on the same active part or to form loops in any other way:
One To Any Multiplicator
A one to any multiplicator is used to send the same message to multiple receiver. Each receiver will be notified when a message is sent. The message is not duplicated, all receivers will use the same constant message from the runtime event buffer. The handlers are called based on Active Part priority.
A multiplicator receives a protocol from an output port and sends it to 2 or more input ports.
A one to any multiplicator must have exactly one incoming channel and 2 or more outgoing channels.
Not enough output channels:
Too many input channels:
Sink / Source
The sink and source elements are used to hide channel lines in the diagram to improve readability. The code is generated as if a regular channel had been used.
A sink receives a protocol from an output port. The same protocol is then sent from the source to an input port.
Multiple sinks receive the same protocol from an output port. The protocol is then sent from the source to a single input port.
Not enough channels:
Too many channels:
An input port must only be connected to incoming channels.
Multiple channels with different protocols may be connected to the same input port:
Outgoing channel from input port:
An output port must only be connected to outgoing channels. Only one outgoing channel is allowed per output port.
Incoming channel to output port:
Multiple channels connected to the same output port:
-> Use One to Any Multiplicator instead.
Inherited Input Port
An inherited input port represents an input port of a container in the child diagram.
It must be connected from one or more outgoing channels to input ports:
With multiple connections, a PortInputSplit will be generated:
Incoming channel to inherited input port:
No channels connected:
Inherited Output Port
An inherited output port represents an output port of a container in the child diagram.
It must be connected to one or more incoming channels from output ports:
With multiple connection, a PortOutputJoin will be generated:
Outgoing channel from inherited output port:
No channels connected:
Hardware channels are used for documentation purposes and are ignored in the code generation. Therefore no rules are applied and the channels can be used in any way to express the system and software design in the diagrams.
This Article has been written based on V1.6.1 of the DATAFLOW Designer software.
Latest update 2021-09-28 by WAA.