Delta Tau GEO BRICK LV Benutzerhandbuch
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.
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
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
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
of buffer as set in 0x105A
0x1058
(Y:$60416)
Size of Binary Rotary Buffer – in PMAC addresses (= host computer addresses
/ 4)
/ 4)
0x105A
(X:$60416)
Starting Binary Rotary Buffer PMAC Address Offset – from start of DPRAM
variable buffer space ($060450)
variable buffer space ($060450)