ModSlaveSim help v3.07 - 4.4.6. Modelling propagation - a delay line

Download manual: HTML

4.4.6. Modelling propagation - a delay line

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
... ... ...