Reference Guide

PMAC Quick Reference Guide
32 Programming PMAC
A coordinate system is addressed by a &n command, where n is the number of the coordinate system,
with a range of 1 to 8, inclusive. This coordinate system stays the one addressed until another &n
command is received by the card. For instance, the command line &1B6R&2B8R tells Coordinate
System 1 to run Motion Program 6 and Coordinate System 2 to run Motion Program 8. There are a
variety of types of coordinate-system-specific commands. Axis definition statements act on the addressed
coordinate system, because motors are matched to an axis in a particular coordinate system. Since it is a
coordinate system that runs a motion control program, all program control commands act on the
addressed coordinate system. Q-Variable assignment and query commands are also coordinate system
commands, because the Q-Variables themselves belong to a coordinate system.
Some on-line commands do not depend on which motor or coordinate system is addressed. For instance,
the command P1=1 sets the value of P1 to 1 regardless of what is addressed. Among these global on-line
commands are the buffer management commands. PMAC has multiple buffers, one of which can be open
at a time. When a buffer is open, commands can be entered into the buffer for later execution.
Control character commands (those with ASCII values 0 - 31D) are always global commands. Those that do
not require a data response act on all cards on a serial daisychain. These characters include carriage return
<CR>, backspace <BS>, and several special-purpose characters. This allows, for instance, commands to be
given to several locations on the card in a single line, and have them take effect simultaneously at the <CR> at
the end of the line (&1R&2R<CR> causes both Coordinate Systems 1 and 2 to run).
Buffered (Program) Commands
As their name implies, buffered commands are not acted on immediately, but held for later execution.
PMAC has many program buffers – 256 regular motion program buffers, eight rotary motion program
buffers (1 for each coordinate system), and 32 PLC program buffers. Before commands can be entered
into a buffer, that buffer must be opened (e.g. OPEN PROG 3, OPEN PLC 7). Each program command is
added onto the end of the list of commands in the open buffer; to replace the existing buffer, use the
CLEAR command immediately after opening to erase the existing contents before entering the new ones.
After finishing entering the program statements, use the CLOSE command to close the opened buffer.
Computational Features
I-Variables
I-Variables (initialization, or setup variables) determines the personality of the card for a given
application. They are at fixed locations in memory and have pre-defined meanings. Most are integer
values, and their range varies depending on the particular variable. There are 1024 I-Variables, from I0 to
I1023, and they are organized as follows:
I0 -- I79: General card setup
I80 -- I99: Geared Resolver setup
I100 -- I184: Motor #1 setup
I185 -- I199: Coordinate System 1 setup
I200 -- I284: Motor #2 setup
I285 -- I299: Coordinate System 2 setup
I800 -- I884: Motor #8 setup
I885 -- I899: Coordinate System 8 setup
I900 -- I979: Encoder 1 - 16 setup
I980 -- I1023: Reserved for future use
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+P25*3)