174
Accessing I/O Data Via TruePort
Format of API Commands
There are two groups of commands:
zGet Commands—Retrieve values of the I/O channel registers
zSet Commands—Set values on the I/O channel registers.
Note: All commands need to be written to the COM port as a single write.
I/O Channel registers are all assigned unique addresses, which need to be referenced in all of the
commands. Please refer to the documentation specific you the applicable mode, for the list and
addresses of all the registers.
Model Go to...
A4 A4/T4 Registers
T4 A4/T4 Registers
A4D2 A4D2/A4R2 Registers
A4R2 A4D2/A4R2 Registers
D4 D4/D2R2 Registers
D2/R2 D4/D2R2 Registers
Get Commands
The following tables show the general structure to be used for Get commands.
Note: Numeric values provided in the API documentation are in Hexadecimal (Hex) format.

Command Format

Byte(s) # of Bytes Value
1 1 Command Code:
z0x01 – Get “coils” (Boolean register)
z0x03 – Get “holding registers” (R/W registers)
z0x04 – Get “input registers” (R only register)
2-3 2Starting register number (see A4/T4 Registers , A4D2/A4R2 Registers ,
or D4/D2R2 Registers for this value).
4-5 2Number of registers to read. If this value is greater than 1, the response
will contain the values of multiple consecutive registers.

Response Format

Byte(s) # of Bytes Value
1 1 Command that this is a response to. If an error has been detected, the
command value will have the high bit set (OR with 0x80). For
example: The command is 0x04, so the command field in the response
would be 0x84.
2 1 Length of data (in bytes) starting in next byte.
3-n nRequested register values.