ModSlaveSim help v3.07 - 4.4.6. Modelling propagation - a delay line
Download manual: HTML
The Timers section contains examples of delaying the turn-on or turn-off of an output.
But if you need to model a delay in a value due to propagation (e.g. temperature change propagated by conduction, or composition change propagated by flow through a pipe), then a "delay line" is needed.
A delay line is a sequence of registers, through which a value is shifted, one step per cycle.
Table 18. Delay line
Register Address | Register Name | Statement |
---|---|---|
$100 | Value | |
$101 | Value 1 | $100 |
$102 | Value 2 | $101 |
$103 | Value 3 | $102 |
$104 | Value 4 | $103 |
$105 | Value 5 | $104 |
... | ... | ... |
$101 contains the Value delayed by CycleTime, $102 contains the Value delayed by 2 * CycleTime, and so on.
Using thermal conduction as an example, register $105 might contain the temperature of the external surface of a container that was the temperature of the inner surface of the container, in $100, 10 seconds earlier (where CycleTime = 2 seconds).
If required, the value could be attenuated as well as being delayed - one might do this, for example, to model some heat dissipating as it is conducted from the inner to the outer surface of the container:
Table 19. Delay line with attenuation
Register Address | Register Name | Statement |
---|---|---|
$100 | Value | |
$101 | Value 1 | $100 * 0.96 |
$102 | Value 2 | $101 * 0.96 |
$103 | Value 3 | $102 * 0.96 |
$104 | Value 4 | $103 * 0.96 |
$105 | Value 5 | $104 * 0.96 |
... | ... | ... |