Register communication
Register access via process data exchange
- Bit 7=1: Register mode
If bit 7 of the control byte is set, the first two bytes of the user data are not used for process data exchange but written into the register set of the terminal or read from it. - Bit 6=0: read, bit 6=1: write
Bit 6 of the control bytes is used to specify whether a register should be read or written. - Bit 6=0: A register is read without changing it. The value can be found in the input process image.
- Bit 6=1: The user data are written into a register. The process is complete once the status byte in the input process image has returned an acknowledgment (see example).
- Bit 0 to 5: Address
The address of the register to be addressed is entered in bits 0 to 5 of the control byte
Control byte for register communication
Bit | CB.7 | CB.6 | CB.5 | CB.4 | CB.3 | CB.2 | CB.1 | CB.0 |
Name | RegAcc | R/W | Reg. no. |
Bit | Name | Function |
---|---|---|
CB.7 | RegAcc = 1 | Register access |
CB.6 | R/W | Bit 6=0: read, Bit 6=1: write |
CB.5 | Reg. no. | Register number of the register to be read or written |
… | ||
CB.0 |
Status byte for register communication
Bit | SB.7 | SB.6 | SB.5 | SB.4 | SB.3 | SB.2 | SB.1 | SB.0 |
Name | RegAcc | R/W | Reg. no. |
Bit | Name | Function |
---|---|---|
SB.7 | RegAcc = 1 | Acknowledgment for register access |
SB.6 | R/W | Bit 6 = 0: read |
SB.5 | Reg. no. | Register number of the register read or written |
… | ||
SB.0 |
Examples for the register communication
The control or status byte occupies the lowest address of a logical channel. The corresponding register values are located in the following 2 data bytes. (The BK2000 is an exception: here, an unused data byte is inserted after the control or status byte, and the register value is therefore placed on a word boundary).
Sample 1
Reading register 8 in the BK2000 with a KL5111 and the end terminal:
If the following bytes are transferred from the controller to the terminal,
Byte | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
Name | DataOUT 1 | DataOUT 0 | Not used | Control byte |
Value | 0xXX | 0xXX | 0xXX | 0x88 |
The terminal returns the following type identifier (0x13F7 corresponds to unsigned integer 5111).
Byte | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
Name | DataIN 1 | Data In 0 | Not used | Status byte |
Value | 0x13 | 0xF7 | 0x00 | 0x88 |
Sample 2
Writing of register 31 in the BK2000 with an intelligent terminal and the end terminal:
If the following bytes (user code word) are transferred from the controller to the terminal,
Byte | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
Name | DataOUT, low byte | DataOUT, high byte | Not used | Control byte |
Value | 0x35 | 0x12 | 0xXX | 0xDF |
the user code word is set and the terminal returns the register address with the bit 7 for register access as acknowledgement.
Byte | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
Name | DataIN 1 | DataIN 0 | Not used | Status byte |
Value | 0x00 | 0x00 | 0x00 | 0x9F |