Motor setup
Several I variables must be set up to use motors properly.
Ix00 must be set to 1 to activate software for motor ``x''.
Ix01 must be set to 0 since PMAC is not commutating our
motors.
Ix02 is command output address and it tells PMAC
where to write output data. Channels 1 and 2 for analog output are
$C002 and $C00A and can be used for piezo motor control. For
streaming we use PLC program to read output of the servo loop so we
use $89000 and $89010 memory locations as ouputs. Channel 3 is
set up to use stepper motor so address has to use ``C'' output
register $C014.
Ix03 tells PMAC where to look to get its
position for feedback. These variables point to encoder output
registers. For laser interferometer position bit 16 has to be set to 1
to set position capture on homing to be done through
software. Following address are encoder outputs from laser
interferometer: $10721, $10723, and $10725. Encoder 4 is
optical encoder from stepper motor $726. Encoders 5 and 6 read
positions from NI board $728 and $72A.
Ix04 is used for velocity feedback and should be set to Ix03.
Ix05 is position address of the master encoder for motor x -
these will be positions given by NI board (encoders 5 and 6).
Ix06 if set to 1 enables following otherwise 0.
Ix07-9 give a method to scale positions.
Ix10 has to be set to 0 for incremental encoder.
Ix11-19 are motor safety variables.
Ix20-23 are motor movement variables which set homing speed,
jog speed etc.
Ix25 is home/limits address - to disable limits bit 17 has to
be set to 1 ($2xxxx).
Ix29 is bias output for analog drivers, has to be set to 0 for
stepper driver.
Ix30-39 are servo control variables they set PID gains and
filters.
Ix69 is output command limit which limits voltage output for
analog driver and maximum pulse frequency for stepper driver.
I9n6 has to be set to 3 where ``n'' is channel number.
Holger Fleckenstein
2008-07-08