## Editing a register

To edit a register, right-click the register in the ION Map Information pane and select Advanced Properties to open a dialog displaying the register information. Depending on the type of register being edited, different data fields may appear.

You can also double-click the register in the Modbus Register Information pane to edit it. This is a faster way to edit basic register properties. When the Edit Mode is initiated in the Modbus Register Information pane, the selected register opens up into an edit mode:

To scroll through the list in Edit mode, use the PAGE UP and PAGE DOWN keys. After editing the values, press ENTER to save the changes.

Note

If you use the PAGE UP and PAGE DOWN keys, the changes made are saved as if ENTER was pressed.

To cancel any changes, press the ESC key.

### Register properties defined

The following register properties can be configured:

##### Register Label

The label is a description attached to the register. You can change this value at any time; it is only an identifier for the register.

Note

The register label string has a maximum character limit of 50, including spaces. Keep this in mind especially when creating labels for downstream devices since they may require additional space in the label name.

##### Make this Register a Constant Value

If this check box is cleared, then the ION register is mapped to a Modbus register and, when viewing it in , you see the real values from the meter. If this check box is selected, then it is set to a constant value. You can use a constant value to hold dynamic constant values, device identification or other values.

##### ION Setup Register

You can configure any register to be an ION setup register. Setup registers do not appear in the register list unless you select to view the setup registers.

Note

This does not affect the read/write capabilities of a valid Modbus register; it is a feature specific to .

##### Data Type

This data type is used for decoding the values returned from the meter. The selected data type format must match the format delivered by the device. Each supported data type is explained in "Additional Information" on page 1.

##### Register Type

This is a convenient way to change the Modbus register type. It only changes the most significant number in the Modbus address to correspond to the specified register type. This register type must match the register type specified by the device documentation. The register type also determines the Modbus function code used when talking to the device.

##### Modbus Address

This is the physical address of the specified register. You can find this number in the device documentation, and you can enter the number in either decimal or hexadecimal format. Address ranges correspond to register types as follows:

COIL STATUS = 0xxxx
INPUT STATUS = 1xxxx
INPUT REGISTER = 3xxxx
HOLDING REGISTER = 4xxxx

Note

When entered in hexadecimal format, the value is only the register offset and does not include the Register Type identification.

##### Request Type

This tells the system whether or not it can read (R) the specified register.

This tells the system whether or not it can read (R), write (W) or do both (RW) actions to the specified register.

##### Register Mask

This mask is applied to the raw data received from the register. The mask is applied in an AND fashion.

For example, if the mask “0x4” is applied, then the register value displayed is only nonzero if the 3rd least significant bit in the register is a 1.

You can apply masks to both numeric and Boolean data types. To apply custom masks, scroll down the list and select Custom. When prompted, enter the value in Decimal, Binary, or Hexadecimal format.

Note

For integer values, the bit order of the mask corresponds to the bit order of the actual data and NOT the order in which the bytes representing the data are returned over Modbus. The high-order nibble of a 32-bit value is selected as ‘0xf0000000’ regardless of whether the format is U32_4321 or U32_2143. It should also be noted that the resulting value of a masked integer is NOT bit shifted. A mask of ‘0xf000’ applied to a 16-bit value of ‘0x1234’ results in ‘0x1000’ (4096 decimal) and NOT 1.

##### Register Scale and Register Multiplier

This specifies what the scale factor of the data being requested should be. The scale can be set to any constant decimal value within the range of -3.402823466 E + 38 to 3.402823466 E + 38. If you can obtain the scale for a specific register from the device, then you can map the scale value to another register. You can only map the scale factor to registers already created in the .

The mapped register used can be a valid Modbus mapped register or a register with a constant value. Mapping the scale to a constant register is a convenient feature; you can change the scale for many registers by changing the constant value in one location.

##### Mapping the scale factor to another register

Select the Reference another register for the scale check box to open the Select Register for Reference dialog.

Use the dropdown lists to navigate to the required register. Click OK.

The scale to be used now appears in the Register Scale field.

##### Register Offset

The register offset is used if the register value returned must be offset by a value.

The scale can be set to any constant decimal value within the range of -3.402823466 E + 38 to 3.402823466 E + 38

Note

If “10” is entered, then 10 is subtracted from the received value. To add 10, enter “-10”.

Scale / Multiplier and Offset applied:

Modbus value = scale * ION value + offset / multiplier

OR

ION value = (Modbus value - offset) * multiplier / scale

If the offset for a specific register can be obtained from the device then you can map the offset value to another register. You can only map the offset factor to registers already created in the .

The mapped register used can be a valid Modbus mapped register or a register with a constant value.

Mapping the offset to a constant register is a convenient feature; you can change the offset for many registers by changing the constant value in one location.

##### Mapping the offset factor to another register

Select the Reference another register for Offset check box.

Use the drop-down menus to navigate to the required register. Click OK.

The offset to be used now appears in the Register Offset field.

##### Register Not Available Value

If the register has a control signal value to indicate that the register is currently not available, then you can set the value here. The value must match the data that is received from the register on the device. If a value is received that matches this property value, the string “Not Available” is displayed when viewing the register in .

##### Boolean Labels

This option is only available for Boolean registers. It allows you to set default labels for Status Objects in .

##### Value to Send Out as a Pulse

This option is only available for pulse registers. It allows you to specify the exact Modbus value sent to the device when a pulse register is activated in .

##### Constant String Value

A constant for manipulating data retrieved from the device.

##### Number of Registers to Request

This option is only available if the data type is set to ASCII, ASCII-Reverse or Packed BCD. It allows you to specify the number of registers to retrieve from the device on a request.

##### Enumeration

Enumeration is useful for converting numeric value representation into human readable string values.

For example, you can use enumeration on a Baud rate register. The value is represented as a number from 0 to 3, where 0 = 300 Baud and 3 = 115200 Baud. With enumeration you can map the return values to corresponding string values. In , when you view the register, it displays the corresponding string value instead of the actual return value.

You can also use enumeration to generate non-contiguous scaling values for other registers. For example, a Modbus scale register returns -2, -1, 0, +1 and +2, which indicate scaling of 10-2, 10-1, 1, 101 and 102 respectively. In this case, use an enumerated ordinal of -2 through +2 with enumerated labels “0.01” through “100”.

You can access enumeration for a register from the register properties window, the Edit Mode window and also from the toolbar.

When selected, the Edit Enumeration Labels dialog opens.

To add or remove enumeration values, select them and click Add New or Remove. When new enumerations are added, they are appended to the bottom of the list and are given the next sequential ordinal value. You can relocate values up and down with the up and down arrow and buttons.

To change the ordinal value for the enumerations, double-click in the Ordinal Values list. The change propagates down to the bottom of the list, ensuring that the list goes from smallest number to largest number.