User's Manual
Turbo PMAC User Manual
Turbo PMAC Computational Features 243
Value Assignment
Values assigned to an I-variable may be either a constant or an expression. The commands to do this are
on-line (immediate) if no buffer is open when sent, or buffered program commands if a buffer is open.
Examples:
I120=45
I120=I120+5
I(P1*100+20)=10
Limited Range
For I-variables with limited range, an attempt to assign an out-of-range value does not cause an error.
The value is automatically rolled over to within the range by modulo arithmetic (truncation). For
example, I3 has a range of 0 to 3 (4 possible values). The command I3=5 would assign a value of (5
modulo 4) = 1 to the variable.
Non-Volatile Storage
When a value is assigned to an I-variable, the value in an active memory register that is volatile (does not
retain its value when power is removed) is being removed. Copy all of these active values to non-volatile
flash memory with the SAVE command. On a power-up or reset, the last values saved into flash memory
are copied back into active memory automatically for use.
Default Values
Default values for all I-variables are contained in the manufacturer-supplied firmware. They can be used
individually with the I{constant}=* command, or in a range with the
I{constant}..{constant}=* command. Upon board re-initialization by the $$$*** command
or by a reset with the re-initialization jumper in the non-default setting, all default settings are copied
from the firmware into active memory. The last saved values are not lost; they are just not used.
See the I-variable description section for the functions of individual variables.
P-Variables
P-variables are general-purpose user variables. They are 48-bit floating-point variables at fixed locations
in Turbo PMAC’s memory, but with no pre-defined use. There are 8192 P-variables, from P0 to P8191.
A given P-variable means the same thing from any context within the card; all coordinate systems have
access to all P-variables (contrast Q-variables, which are coupled to a given coordinate system, below).
This allows for useful information passing between different coordinate systems. P-variables can be used
in programs for any purpose desired: positions, distances, velocities, times, modes, angles, intermediate
calculations, etc.
Type of Memory Used
P-variables can be located in either the main memory, or in the supplemental battery-backed parameter
memory (if Option 16 is ordered). If I46 is set to 0 (default) or 2, the P-variables are located in the main
memory, which has fast access (1 wait state) but whose values are not retained without a SAVE command
copying the values to flash memory. On power-up/reset, the last saved values are copied from flash
memory into the active variable registers in RAM.
If I46 is set to 1 or 3, the P-variables are located in the Option 16 battery-backed RAM, which has slow
access (9 wait states) but whose values are retained automatically by the battery when power is removed.
Special-Use P-Variables
Generally, Turbo PMAC firmware has no automatic use of P-variables. However, it can make special use
of variables P0 – P32 and P101 – P132, as described below.