Delta Tau GEO BRICK LV User Manual

Page of 440
 
Turbo PMAC User Manual 
404 
Writing a Host Communications Program 
Addresses of Data: For details as to the exact registers used for each of these values for each motor, 
consult the Turbo PMAC Memory Map in the Software Reference Manual. 
Foreground Handshaking: If foreground transfer is used (I48 = 1), Turbo PMAC will set Bit 15 of 
0x006E (X:$06001B) to 0 while it is copying motor data into the DPRAM, and it will set this bit to 1 as 
soon as it is finished.  The host computer should not try to read the data if this bit is 0.  If I47 is set to 0 
for on request transfers, the host computer should set this bit to 0 after reading the data to indicate to 
Turbo PMAC that it is time to provide the next set of data. 
If foreground transfer is used, Turbo PMAC also copies the 24-bit servo-cycle counter value into 0x006C 
(Y:$06001B) and Bits 0 – 7 of 0x006E (X:$06001B) to “time-stamp” the data. 
The host computer can set Bit 15 of 0x006A (X:$06001A) to 1 while it is reading the data.  If Turbo 
PMAC sees that this bit is 1 when it is ready to transfer more data into the DPRAM, it will skip this cycle.  
The host must be sure to set this bit to 0 when it is done reading, to permit Turbo PMAC to transfer new 
data. 
Background Handshaking: If background transfer of motor data is used (I57 = 1 and I49 = 1), the 
handshaking is the same as for the background coordinate system and global data buffers.  Turbo PMAC 
will set Bit 15 of 0x067A (X:$06019E) to 0 while it is copying coordinate-system and global data into the 
DPRAM, and it will set this bit to 1 as soon as it is finished.  The host computer should not try to read the 
data if this bit is 0.  If I50 is set to 0 for “on request” transfers, the host computer should set this bit to 0 
after reading the data to indicate to Turbo PMAC that it is time to provide the next set of data. 
If background transfer is used, Turbo PMAC also copies the 24-bit servo-cycle counter value into 0x0678 
(Y:$06019E) and Bits 0 – 7 of 0x067A (X:$06019E) to time-stamp the data. 
The host computer can set Bit 15 of 0x0676 (X:$06019D) to 1 while it is reading the data.  If Turbo PMAC 
sees that this bit is 1 when it is ready to transfer more data into the DPRAM, it will skip this cycle.  The host 
must be sure to set this bit to 0 when it is done reading, to permit Turbo PMAC to transfer new data. 
DPRAM Background Data Reporting Buffer
 
Turbo PMAC can provide key global and coordinate-system data as a background function to the 
DPRAM, where it can be accessed easily and quickly by the host computer.  If this function is enabled, 
Turbo PMAC will copy key global and coordinate-system registers into fixed registers in the DPRAM.   
Enabling Copying: Setting I49 to 1 enables this copying of global and coordinate-system data into 
DPRAM as a background function.  I50 sets the update period.  If I50 is greater than 0, each background 
cycle, Turbo PMAC will check to see if more than I50 servo cycles have elapsed since it last copied this 
data into DPRAM.  If so, it will copy the present data.  With I50 at 0, Turbo PMAC will check every 
background cycle to see if the host computer has taken the previous data.  If so, it will copy the present 
data, for an “on request” transfer. 
Coordinate System Specification: Bits 0 – 4 of 0x0676 (Y:$06019D) specify the number of highest-
numbered coordinate system in the Turbo PMAC whose data will be copied into DPRAM.  The data for 
C.S. 1 through this coordinate system will be copied each time.  If this value is set to 0, the transfer of 
coordinate-system data will be stopped. 
Data Copied: For each coordinate system whose copying is enabled, the following data will be transferred: 
• 
C.S. feedrate / move time 
• 
C.S. time-base value (feedrate override) 
• 
C.S. override source address 
• 
C.S. status words 
• 
C.S. axis target positions (ABCUVWXYZ) 
• 
C.S. program status 
• 
C.S. program lines remaining in rotary buffer