ModSlaveSim help v3.07 - 4.2. Language: Quick Start Guide

Download manual: HTML

4.2. Language: Quick Start Guide

This is a quick overview of features specific to the ModSlaveSim language, as well as features common to other languages.

The main variables are slave registers. In ModSlaveSim an identifier for a slave register consists of the register address preceded by '$', as in $3058.

There is also an alternative form $$ that can be used to refer to 'this register' (the register associated with the statement). Note that the 'this register' notation $$ is useful if you want to enter a block of registers with essentially the same behaviour, but where the behaviour varies through a reference to the associated register. It saves having to refer to each register by address.

Conditionals are available in the form if then else and may be nested. All arithmetic and logic operators are available, and, additionally, bit-manipulation operators.

Assignment of a value to a variable (a slave register) is implicit in the statement that is entered for the slave register . That is to say, when the value of the expression for a register is computed, it is automatically assigned to the register for which it has been entered, at the end of each cycle. So, the value of the expression in a statement for register $5010 will be assigned to $5010 (and displayed in the main dialog in the Value column of $5010).

CycleTime and TimeNow are two predefined variables in the language, neither of which can be modified directly from your program. Both values are represented as floating point numbers with millisecond precision. CycleTime is the actual time between runs, that is, the actual time between computing the values of the registers. (The Run Interval is the specified target time between runs.) The value of CycleTime may differ slightly from the Run Interval during the simulation since the operating system may vary in how fast it allocates resources for each run. As we shall see in the Techniques section later, CycleTime can be used to ensure the computation frequency does not influence the outcome. The TimeNow variable holds the current time in seconds (since 1970-01-01), and this, of course, changes throughout the simulation.

This concludes the quick guide, full detail is provided in the reference section ModSlaveSim Language