Mapping of physical I/O points to BACnet objects is shown below. Mapping of uncommitted objects is also listed. The uncommitted objects are used to pass data to and from the user program. The mapping of objects to registers as accessed by the user program is listed in the table below, followed by a summary of the general mapping rules.
Object Allocation - AddMe Lite
Function Objects PL/i Registers Data Format
Analog Input AI 1..12 0001..0012 REAL (getf)
Discrete Input AI 13..14 0013..0014 REAL (getf)
Discrete Output BO 1..2 4001-4002 ENUMERATED (seti/geti)
Uncommited AI 15..40 0015..0040 REAL (setf/getf)
Uncommitted MI 1..60 13001-13060 Unsigned (seti/geti)
Object Allocation - AddMe III
Function Objects PL/i Registers Data Format
Analog Input AI 1..18 0001..0018 REAL (getf)
Discrete Input AI 19..20 0019..0020 REAL (getf)
Analog Output AO 1..4 1001-1004 REAL (setf/getf)
Discrete Output BO 1..8 4001-4008 ENUMERATED (seti/geti)
Uncommited AI 21..40 0021..0040 REAL (setf/getf)
Uncommitted MI 1..60 13001-13060 Unsigned (seti/geti)

Register numbers for PL/i access: Object type x 1000 + offset
analog-input 0
analog-output 1
analog-value 2
binary-input 3
binary-output 4
binary-value 5
multi-state-input 13
multi-state-output 14
multi-state-value 19
Registers accessed using getf/setf (float/real)
Analog Input 0001-0999
Analog Output 1001-1999
Analog Value 2001-2999
Registers accessed using geti/seti (integer/enumerated)
Binary Input 3001-3999
Binary Output 4001-4999
Binary Value 5001-5999
Multistate Input 13001-13999
Multistate Output 14001-14999
Multistate Value 15001-15999