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