Access from the user program
KL3311, KL3312, KL3314 and KL3302
46
Version: 4.2
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 (0x0CF0 corresponds to unsigned integer 3312)
Byte
Byte 3
Byte 2
Byte 1
Byte 0
Name
DataIN 1
DataIN 0
Not used
Status byte
Value
0x0C
0xF0
0x00
0x88
Example 2:
Writing of register 31 in the BK2000 with an intelligent terminal and the end terminal:
If the following bytes (code word) 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
0x12
0x35
0xXX
0xDF
The code word is set, and the terminal returns the register address with bit 7 for register access as
acknowledgment.
Byte
Byte 3
Byte 2
Byte 1
Byte 0
Name
DataIN 1
DataIN 0
Not used
Status byte
Value
0x00
0x00
0x00
0x9F
5.6
Examples of Register Communication
The numbering of the bytes in the examples corresponds to the display without word alignment.
5.6.1
Example 1: reading the firmware version from Register 9
Output Data
Byte 0: Control byte
Byte 1: DataOUT1, high byte
Byte 2: DataOUT1, low byte
0x89 (1000 1001
bin
)
0xXX
0xXX
Explanation:
• Bit 0.7 set means: Register communication switched on.
• Bit 0.6 not set means: reading the register.
• Bits 0.5 to 0.0 specify the register number 9 with 00 1001
bin
.
• The output data word (byte 1 and byte 2) has no meaning during read access. To change a register,
write the required value into the output word.
Input Data (answer of the bus terminal)
Byte 0: Status byte
Byte 1: DataIN1, high byte
Byte 2: DataIN1, low byte
0x89
0x33
0x41
Explanation:
• The terminal returns the value of the control byte as a receipt in the status byte.
• The terminal returns the firmware version 0x3341 in the input data word (byte 1 and byte 2). This is to
be interpreted as an ASCII code:
◦ ASCII code 0x33 represents the digit 3