Create remote client's custom view of local registers. This page sets up the register map for the virtual Modbus/TCP server. This map is also referred to as the "user map". This allows you to remap the default server register map to match any layout you wish, including matching the map found in other equipment.
Showing to 2 of 2
Map
#
Mapped
Register #
Mapped Register Format
Local
Register #
Scale Factor
Offset
Bit Field
Fill
Name
1
2
# Custom Registers Enabled: User Map Enabled Map is Exclusive
Swap Double Registers Zero fill null registers
Use Modicon mapping
Quick Help

For each register to be mapped into the custom map, enter the server address where this register should appear, the format it should be presented in, and the source of the data. Scale factor is optional. The source data will be multiplied by this to produce the data in the mapped server register. Offset is optional. This value will be added to the source data after multiplying by the scale factor.

Bit field and fill allow compiling register contents derived from multiple sources if the bit field is defined (nonzero). The source data will be limited to the number of bits represented in the bit field (which is a hexadecimal value), and shifted into the position represented by '1' bits in the field. Fill bits will be logically OR'ed into the result before being presented by the server. Consecutive server map entries that reference the same server address will all be OR'ed together and presented at that address. Duplicate map entries that reference the same server address but are not listed in consecutive order following the first instance will be skipped. No special bit field processing takes place if the bit field is set to zero. Bit fields apply to 16-bit integer or unsigned integer server registers only.

The name is optional and is used for display purposes only.

Delete will remove the rule number shown in the "Showing" box. Insert will insert a new rule before the rule number shown, and is used for placing rules between existing rules. It is not necessary to use Insert to add rules to the bottom of the list or to define any rule presently having "none" for register format.

Selecting "none" as the register format effectively deletes the rule even though it will still appear in the list until deleted. Unused rules at the end of the list will always show "none" as the format. If you wish to prevent these from being displayed, reduce the number of rules enabled.

Enter the number of Modbus registers that should be available in your customized register mapping and check "User Map Enabled" to begin using a customized map. Check "Map is Exclusive" if access to registers outside of this map should be prohibited. If exclusive is not selected, all local registers not overlapped by the custom map will also be accessible to the remote client.

By default, double registers in Control Solutions products are "big endian" meaning the most significant bytes are in the first register and least significant bytes are in the second register. If remote clients accessing this server at this IP address expect "little endian", check the swap box. Modbus protocol by definition is "big endian" within each register, but the "endian" order of the registers for 32-bit values is less standardized.

Normally an attempt to read an undefined register will return an exception (error) code. To enable reading of large data packets without nuisance errors, you have the option of zero filling null registers. This means that reading an undefined register in between valid defined registers will simply return zero data rather than an error.

Check "Use Modicon mapping" to map 0X, 1X, 3X and 4X registers anywhere in i.CanDoIt register space. When you use Modicon mapping, the Mapped Register number should be in the following ranges:

Mapped Register #Read (Write) asFunction codes expected
0-9999Coil1, 5, 15
10001-19999Discrete Input2
30001-39999Input Register4
40001-49999Holding Register3, 6, 16

Any of the Modicon register types may be mapped to any local register, except that coils and discrete inputs cannot map to floating point registers. When a local register is read as coil or discrete input, any nonzero value in the local register will return a set bit, and zero in the local register will return a clear bit. Local registers written as coils will be set to 0 or 1.

To use Modicon mapping, you must check the Use Modicon box, and also check User Map Enabled. It is also highly recommended that you check the Map is Exclusive box when using Modicon mapping. Remember to go to the Config File page and save your changes.