## Introduction

The is a tool for advanced users that creates the files and software support necessary to display data from any Modbus device using the component of the product. The user interface sets up useful common Modbus parameters by default, but also allows you to configure all Modbus-specific and device-related parameters. The also has built-in error checking to validate the files you created, or those from other sources.

caution

unintended equipment operation

Do not use control objects for time-critical functions because delays can occur between the time a control action is initiated and when that action is applied.

Do not create a custom control object in for remote equipment operation without configuring it with the appropriate access level, and without configuring a status object to indicate the status of the control operation.

Failure to follow these instructions can result in injury or equipment damage.

#### Process overview

Creating a new Modbus device type involves the following steps:

Identify the new device type (device name, file name, etc.)

Create a Modbus map file for the device type:

Identify a Modbus register to be added.

Find an appropriate register to map to in the ION tree.

Select appropriate data format, scaling factors, etc.

Configure additional Modbus device functionality (if required).

Validate and check the device type.

Add the new Modbus device type to the database.

After it is defined in the database, the new Modbus device is available in just like any other device. Simply select the Modbus device type from the dropdown list.

#### Default modbus device types

is shipped with numerous pre-configured Modbus device types. For a list of these device types, navigate to Tools > View current Device Types from the main console. These pre-configured device types can also be modified as required, using the .

#### The ION tree file

The creates and edits ION tree files (.ion) for the device, which are then saved and entered into the , allowing the siftware to recognize and use the device. The tree file defines the organization of the ION managers, modules and registers.

#### The modbus map file

The creates and edits mapping files for the device, linking Modbus registers with ION registers. A Modbus map file is an XML file that must refer to the XML schema defined in /.../ config/translators/modbus-schema.xml.

It also defines how to convert the module register value into the value shown in the ION register.

##### Map file format

Each distinct Modbus device type has its own special address ranges and requires its own Modbus map file. Vln avg, on an , for example, is located at 40103. It could be in a different location on any other device. In either case, it would be most logically mapped to the Power Meter Module's Vln avg output register (0x5803) in the default tree.

The example map file shown below illustrates the map file format:

<?xml version="1.0" encoding="UTF-8"?>

<!--Created by Modbus Device Importer v 3.21.0 at: 3/22/2007 10:41:56 AM-->

<ModbusMap xmlns="x-schema:modbus-schema.xml">

<DeviceInfo Type="Example Device" MultiplePresetSupported="0" GlobalNotAvailable="NotSpecified" MaxRequestRegisters="125" LowSpeedUpdateRate="30" HighSpeedUpdateRate="5"/>

<ModbusInfo IONHandle="134217729" Name="Baud Rate" ModbusAddress="40001" RequestType="RW" Format="UINT16" Scale="1" Offset="0" Multiplier="1" DefaultEnumValue="Invalid Data">

<Enumeration Value="300 Baud"/>

<Enumeration Value="2400 Baud"/>

<Enumeration Value="9600 Baud"/>

<Enumeration Value="115200 Baud"/>

</ModbusInfo>

<ModbusInfo IONHandle="134217985" Name="VoltsA@!!DeviceName!!Meter01" ModbusAddress="40002" RequestType="R" Format="UINT16" Scale="1" Offset="0" Multiplier="1"/>

<ModbusInfo IONHandle="134217986" Name="VoltsB@Meter01" ModbusAddress="40003" RequestType="R" Format="UINT16" Scale="1" Offset="0" Multiplier="1"/>

<ModbusInfo IONHandle="134217987" Name="VoltsC@Meter01" ModbusAddress="40004" RequestType="R" Format="UINT16" Scale="1" Offset="0" Multiplier="1"/>

<CalcInfo IONHandle="135266304" Name="Averaging 1" Function="Averaging_Module"/>

<CalcInfo IONHandle="136314880" Name="Minimum 1" Function="Minimum_Module"/>

<CalcInfo IONHandle="137363456" Name="Maximum 1" Function="Maximum_Module"/>

<CalcInfo IONHandle="138412032" Name="Data Rec 1" Function="DataRecorder_Module"/>

<CalcInfo IONHandle="139460608" Name="Feedback 1" Function="Feedback_Module"/>

<CalcInfo IONHandle="140509184" Name="Periodic Tmr 1" Function="PeriodicTimer_Module"/>

<CalcInfo IONHandle="131072000" Name="Diagnostics 1" Function="Diagnostics_Module"/>

</ModbusMap>