## ION object descriptions

ION objects are software items that are recognized by software. ION objects consist of device managers, modules, and registers. Managers separate different module types and groups together modules of the same type. Modules group registers into convenient or logical groups. Registers are the objects that actually hold the Modbus register information.

For more information on ION architecture, refer to the ION Reference.

### Managers

Managers organize the Modbus map file into a formatted structure. There are three different types of managers supported in the :

External Boolean Manager: holds Boolean type registers

External Numeric Manager: holds Numeric type registers

External Pulse Manager: holds Pulse type registers

You can create up to 127 managers. After you create a manager, you cannot change its manager type.

### Modules

Similar to managers, modules also help organize the map file structure. You can create up to 4095 modules inside a given manager. Use modules to arrange registers into logical groupings or similar register types. When naming a module, choose a name that is relevant to the type of registers it contains. Modules inherit the class type of their parent manager, so you cannot change a module type after is has been created.

### Registers

A register is an object that can be linked to a physical register on a Modbus device, where data is read from or written to. You can map registers to a Modbus address, then use to read and write data to this Modbus device.

When you create a register, it inherits the type of its parent module. You can create up to 255 registers per module.

There are three different register types:

##### Boolean Registers

Boolean registers hold Boolean data, i.e., a logical True or False (1 or 0). You can attach a label to the register to indicate an ON or OFF state. If a numeric register is mapped to a Boolean register, a value of “0” (zero) puts the Boolean register in an OFF state, while any other value turns the Boolean register ON (unless a mask is applied).

If any of the bits exposed by the mask are set, the value is interpreted as a ‘True’. Otherwise it is interpreted as ‘False’. MaskedBool can be used to sift out individual Booleans that are stored as arrays of bits in Modbus. If no mask is specified, all bits are relevant. Boolean registers can be 16 or 32 bits long.

##### Numeric registers

Numeric registers hold numeric data.

##### Pulse registers

Pulse registers are used in to send a pulse to the specified address. They are used specifically to write values to a device. The user can specify the exact value to send out as a pulse for each register. Pulse registers can only write 16 bits worth of data.

##### Factory registers

You cannot add or remove Factory objects but you can edit them. All Factory registers are initially set to a default constant value. You can change these constant values, or map the registers to a valid Modbus address (see "Editing a Register" on page 1). There are four user defined factory registers that you can change if the required registers are not already present in the default list.