User's Manual

PMAC Dual-Ported RAM User Manual
Dual-Ported RAM Automatic Functions 23
Each background cycle, between each scan of each PLC program, PMAC will try to copy data into each
variable in the buffer. Bit 15 of each variable’s data type specifier controls whether or not PMAC is
allowed to update that particular variable’s value. PMAC will skip updating any variable that has bit of its
data type specifier set to 1. Any variable that has bit 15 set to 0 will be updated.
When PMAC is done servicing the buffer, it copies 16 bits of the servo timer register (X:$0000) into the
DPRAM at 0x07EA (X:$D1FA). This is not dependent upon updating any variables in the buffer.
When the host wants to read a register, it should check to see that Bit 15 of the data type specifier (the
Data Ready bit) has been set. If it has, the host can begin reading and processing the data from that
register. When it is done, it should clear the Data Ready bit to let PMAC know that it can update that
register the next cycle.
Data Format
Each 24-bit (X or Y) register is sign-extended to 32 bits. For a 48-bit (Long) register, each 24-bit half is
sign-extended to 32 bits, for a total of 64 bits in the DPRAM. This data starts immediately after the last
address specification register.
Disabling
To disable this function, you can set the size register 0x07EC (Y:$D1FB) to 0, or simply leave the
individual Data Ready bits set.
Register Map
Background Variable Data Buffer -- PMAC to Host Transfer
Address Description
0x07E8
(Y:$D1FA)
PMAC to HOST (Bit 0 = 1 for single user mode) Data Ready.
PMAC done updating buffer - Host must clear for more data.
0x07EA
X:$D1FA
Servo Timer (Updated at Data Ready Time)
0x07EC
(Y:$D1FB)
Size of Address Buffer (measured in long integers of 32 bits each)
0x07EE
(X:$D1FB)
Start of Address Buffer (Ex. $D400; must be $D200 to $DFFD)
Variable Address Buffer Format (2x16-bit words)
X:Mem Bits 15: Data
Ready (multi-user mode)
X:Mem Bits 0 - 2:
Variable type to read
Y:Mem
Variable address
Dual Port
Data Length
1 = PMAC data ready
0 = Host request data
0 = PMAC Var. Y:Mem. PMAC Address of Variable 32 bits
1 = PMAC data ready
0 = Host request data
1 = PMAC Var. Long PMAC Address of Variable 64 bits
1 = PMAC data ready
0 = Host request data
2 = PMAC Var. X:Mem. PMAC Address of Variable 32 bits
1 = PMAC data ready
0 = Host request data
4 = Special (Firmware 1.16)
PLCC Function Block
PLCC Function Block
Number. Y:$9FFF has the
base address of the function
blocks.
64 bits