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.
The following register properties can be configured:
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.
If this check box is cleared, then the ION register is mapped to a Modbus register and, when viewing it in
You can configure any register to be an ION setup register. Setup registers do not appear in the
Note
This does not affect the read/write capabilities of a valid Modbus register; it is a feature specific to
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
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.
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.
This tells the system whether or not it can read (R), write (W) or do both (RW) actions to the specified register.
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.
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.
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.
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.
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.
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
This option is only available for Boolean registers. It allows you to set default labels for Status Objects in
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
A constant for manipulating data retrieved from the device.
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 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
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.