User`s manual

4.0 - Programming PMAC
Page - 35
PROGm
PROGn
PROGz
PLC0
PLC1
PLC31
GATHER
&1ROTARY
&8ROTARY
TBUF
#1BLCOMP
#8BLCOMP
#1TCOMP
#8TCOMP
#1COMP
#8COMP
UBUFFER
$1800
$9FFF
PMAC's processor is the Motorola 56001 DSP. The 56001 have dual data buses, each 24 bits wide, so that both operands in
a calculation may be brought in simultaneously. Each bus has access to a 16-bit address space (0000hex to FFFFhex),
which provides 65,536 24-bit words. One bus and address space is called 'X', and the other is called 'Y'. Therefore, when
specifying a single-word memory location, one must use 'X:' or 'Y:' with the 16-bit address. PMAC's input and output is
mapped into the same address space with the memory.
PMAC uses double-word memory for both extended fixed-point values and for floating-point values (single words are
always fixed point). The fixed-point double-word locations are specified by a 'D:' (double), and the floating-point double-
word locations are specified by an 'L:' (long). This matches the syntax of M-variable declarations for these registers.
The user may specify PMAC addresses with either decimal or hexadecimal values; the hex values must be preceded by a '$'
to be interpreted as hex. For example, Y:$FFC0 is the hexadecimal specification, and Y:65472 is the decimal
specification of the same word address.
M-variables are defined by providing the word address, the offset, the width, and the format (irrelevant for bits). Several M-
variables were defined at the factory to match to inputs and outputs. For instance, M11 thru M18 were assigned to Machine
Inputs 1 thru 8 (MI1-MI8), and M1 to M8 were assigned to Machine Outputs 1 thru 8 (MO1-MO8).
The PMAC architecture is very open, allowing the user to examine and use many internal registers for his own use. Usually
this is done through the use of M-variables, which point to locations in the memory-I/O space of the PMAC processor.
Once defined to point to the proper location, an M-variable can be treated as any other variable for reading and writing.
Warning: Certain registers that are under PMAC's automatic control, particularly those used in the servo calculations, can
cause problems if the user writes to them directly.
Range X-Memory Y-Memory Type
$0000 - $00FF Fixed-Use calculation Registers Fixed-Use calculation Registers Internal DSP Memory
$0100 - $17FF Fixed-Use calculation Registers Fixed-Use calculation Registers
External Static RAM
(Battery Backed)
$1800 - $BBFF User Buffer Storage Space User Buffer Storage Space
External Static RAM
(Battery Backed)
$BC00 - $BFFF User-Written Servo Storage M-Variable Definitions
External Static RAM
(Battery Backed)
$C000 - $C03F DSP-Gate Registers
$D000 - $DFFF Bits 0 to 15 Bits 0 to 15 Dual-Ported RAM
$E000 - $F000 VME Setup Registers (bits 0 to 7) Mailbox Registers (bits 0 to 7) VME bus registers
$F000 - $FFFF N / A I / O Registers
4.4.1 - User Buffer Storage Space
- 256 Motion Programs can be held. All programs must be stopped before any can be
opened.
- All programs must be stopped before any can run.
- A PLC program can be opened while others are running.
- Buffers must be defined from end of memory toward beginning. Buffers must be deleted
from beginning of memory to end.
4.5 - Encoder Conversion Table
DELETE
DEFINE