eeros_architecture:control_system:signals
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
eeros_architecture:control_system:signals [2015/03/30 14:49] – external edit 127.0.0.1 | eeros_architecture:control_system:signals [2021/03/03 08:29] (current) – [Reading from Unconnected Inputs] ursgraf | ||
---|---|---|---|
Line 3: | Line 3: | ||
A signal represents a succession of varying physical quantities over time as used in signal processing and control. It has certain properties, such as a value and a timestamp, indicating the exact time corresponding to the value of the represented physical quantity. This is usually when the value was captured or generated. | A signal represents a succession of varying physical quantities over time as used in signal processing and control. It has certain properties, such as a value and a timestamp, indicating the exact time corresponding to the value of the represented physical quantity. This is usually when the value was captured or generated. | ||
- | {{ signaluml.png? | + | ===== Properties ===== |
+ | Each element of a signal is characterized by a value, a high precision timestamp, a name and additional properties, depending on the type of signal, which will provide semantic information. Some examples are dimension (e.g. length, mass, current, etc.), SI-unit (e.g. m, m/s, kg, Nm, A, etc.), reference coordinate system or activation state (enabled/ | ||
- | It's important to note that a signal can carry a single value as well as a vector or matrix of values. For this purpose the field //value// is declared as type T. | + | [{{ signaluml.png?150 | //Signal type with its properties//}}] |
- | The example below shows a gain block being defined, where its input and output are set to a three dimensional | + | It's important |
- | <code c> | + | Signals are used to connect different blocks in the control system and share information between the control system, the sequencer and the safety system. |
- | Gain< | + | |
- | </ | + | |
+ | Supported types for signals are | ||
+ | * Arithmetic (int, double ...) | ||
+ | * Logic (bool) | ||
+ | * Vector (Vector2, Vector3, Vector4) | ||
+ | * Matrix | ||
+ | Each signal can be assigned a name and a unit. All dimensions of a signal share the same name and unit.\\ | ||
- | Each element of a signal is characterized by a value, a high precision timestamp, a name and additional properties, depending on the type of signal, which will prrovide semantic information. Some examples are dimension (e.g. length, mass, current, etc.), SI-unit | + | As an example we look at a block which does summation. Two signals, each of dimension 3, will be added together. |
+ | <code cpp> | ||
+ | Sum<2,Vector3> sum; | ||
+ | sum.setName(" | ||
+ | sum.getOut().getSignal().setName(" | ||
+ | </code> | ||
+ | This is shown in the following diagram: | ||
+ | [{{ sumblock.png?300 | //Summation block with threedimensional signals// | ||
+ | |||
+ | The functions //getIn()// and //getOut()// return an input or output. To access the signals on those in- or outputs, use // | ||
+ | |||
+ | ===== Timestamp ===== | ||
+ | Every signal carries a timestamp. The timestamp of a signal is usually set in input blocks. Block which read from an external source and deliver this value on a output signal will set its timestamp to the time of the acquisition of the value. \\ | ||
+ | Most blocks will not alter this timestamp. However, blocks which depend on the sampling time such as integrators | ||
+ | |||
+ | ===== Reading from Unconnected Inputs ===== | ||
+ | If you try to read from an input, | ||
- | Signals are used to connect different blocks in the control system and share information between the control system, the sequencer and the safety system. | ||
- | In order to access the individual dimensions of a certain signal, use functions like | ||
- | <code c> | ||
- | sum.getOut().getValue(); | ||
- | sum.getOut().getValue(0); | ||
- | sum.getOut().getValue(2); | ||
- | sum.getIn(1).getValue(2); | ||
- | </ | ||
eeros_architecture/control_system/signals.1427719744.txt.gz · Last modified: 2015/10/14 13:44 (external edit)