1
P94MOD01B
To access the <variable index> as EPM-float, use the following formula to calculate this register address
(maximum address allowed is 2047):
<register address> = 1536 + 2 * <variable index> + 1;
Two special methods are created for those terminals that can omly handle 16-bit registers:
To access the <variable index> as a RAM- 16 bit integer register (the RAM copy of a variable that is represented
as a 16 bit integer) use the following formula to calculate this register address (maximum address allowed is
2303):
<register address> = 2048 + <variable index> + 1;
For these terminals the values are represented only as integers. The variable index is not multiplied by 2
because one variable is mapped to one register only. If the variable, which is represented as a 32 bit value
internally, is out of range (lower than minimum or higher than maximum value for 16 bit integers), then the
return value is truncated to the closest value supported by the 16 bit signed number. The access to a variable
using this register address range will only read/write the RAM copy of a variable.
To access the <variable index> as an EPM -16 bit signed integer register (the EPM copy of a variable that is
represented as a 16 bit integer) use the following formula to calculate this register address (maximum address
allowed is 2560):
<register address> = 2304 + <variable index> + 1;
For these terminals the values are represented only as integers. The variable index is not multiplied by 2
because one variable is mapped to one register only. If the variable, which is represented as a 32 bit value
internally, is out of range (lower than minimum or higher than maximum value for 16 bit integers), then the
return value is truncated to the closest value supported by the 16 bit register. The access to a variable using
this register address range will read only the RAM copy of a variable and write both the RAM and EPM copies
of a variable.
Register and variable addresses and their mapping based on the type of access are illustrated in Figure 9.
5.2 Register Reading
Use the function code “03 (0x03) Read 4X Holding Registers” to read an adjoining block of holding registers in
a remote device. The request PDU (protocol data unit) specifies the starting register address and the number
of registers. PDU registers are addressed beginning with 0 (i.e. Register #1-16 would be numbered 0-15). The
response is packed two bytes to a register with the binary contents right justified in each byte.
5.3 Register Writing
No discrete register access is provided for PositionServo Drive. Use the “16 (0x10) Write Multiple Registers”
function to write binary values. This requires the user programming to pack bits into user registers.
The function code “16 (0x10) Write Multiple Registers” is used to write a block of adjoining registers (1-123,
Master device dependent) in a remote device. Specify the the requested written values in the request data
field. Data is packed two bytes to a register. A normal response returns the function code, starting address
and number of registers written.