Delta Tau GEO BRICK LV Benutzerhandbuch

Seite von 440
Turbo PMAC User Manual 
Writing a Host Communications Program
 
411
 
The binary rotary program transfer buffers in DPRAM are simply pass-through buffers to the internal 
rotary program buffers.  When Turbo PMAC receives a binary-format motion program command in the 
DPRAM buffer from the host computer, it copies this data into the rotary buffer in internal memory.  The 
end result is the same as if an ASCII program command had been sent to Turbo PMAC through any of 
the ports, but the transmission is quicker for several reasons: 
1.  There is no handshaking of individual characters. 
2.  There is no parsing of an ASCII command into internal binary storage format. 
3.  Multiple command lines can be processed in a single communications cycle. 
If I45 is set to the default value of 0, Turbo PMAC checks the binary rotary buffers in DPRAM every 
background cycle, transferring any new contents to the internal rotary program buffers.  If I45 is set to 1, 
it checks the binary buffers as a higher-priority foreground task, every real-time interrupt. 
Routines in Delta Tau’s PCOMM32 communications library provide automatic support for the binary 
rotary-program transfer buffer. 
General Description: Each coordinate system’s binary rotary transfer buffer has two parts.  The first part 
is the header, at a fixed address in DPRAM.  The header for each binary rotary transfer buffer occupies 
six 16-bit words, and contains the key information on the size and status of the second part of the buffer. 
The second part of the buffer is at a location in DPRAM specified by the user in the header.  It contains 
the actual binary-format motion-program commands.  The size of this part is also specified by the user in 
the header. 
Registers: The following table shows the structure of the header.  The addresses given are for the first 
coordinate system.  Headers for the other coordinate systems follow immediately after.  Those addresses 
can be found in the memory map in the Software Reference Manual. 
Binary Rotary Transfer Buffer Control 
Address for first 
C.S. Rotary 
Buffer 
Description 
0x1050 
(Y:$60414) 
PMAC to HOST Binary Rotary Buffer Status Word 
 
Bit 15  = 1:Error (Stops processing commands) 
 
Bit 14  = 1 :Internal Rotary buffer full (Busy flag) PMAC Index stops updating. 
 
Bits 7-0 = Code       Error 
 
                ------         ------------------------------------ 
 
                   1            Internal Rotary Buffer size = 0 
 
                              or DPRAM Rotary Buffer Size = 0 
 
These flags are set and reset by the PMAC.  The Busy flag is 
 
Set when the PMAC internal rotary buffer is full.   
 
This however does not mean the DPRAM Binary 
 
Rotary buffer is full.  The Busy flag is  
 
Reset when the PMAC internal rotary buffer is  
 
Not full or the DPR binary rotary buffer is empty. 
0x1052 
(X:$60414) 
Coordinate System Number and Enable Control 
Bits 0 – 4 represent C.S. #; buffer enabled if 0 < C.S.# < 17 
0x1054 
(Y:$60415) 
Host Binary Rotary Buffer Index – PMAC address offset from start address of 
buffer as set in 0x105A 
0x1056 
(X:$60415) 
PMAC Binary Rotary Buffer Index – PMAC address offset from start address 
of buffer as set in 0x105A 
0x1058 
(Y:$60416) 
Size of Binary Rotary Buffer – in PMAC addresses (= host computer addresses 
/ 4) 
0x105A 
(X:$60416) 
Starting Binary Rotary Buffer PMAC Address Offset – from start of DPRAM 
variable buffer space ($060450)