Knowledge Base /
Integration Guides
DeltaV Integration with Mettler Toledo IND780 Terminal Using Ethernet/IP
By Geoff Nash
Product: DeltaV Virtual IO Module - VIM2

This technical note describes the recommended settings for integrating a Mettler Toledo IND780 Terminal with DeltaV using Class1 of the Generic Device Ethernet/IP driver for the Virtual IO Module.

Introduction

The IND780 terminal allows class1 implicit connections to gather data and send control information. This requires the Ethernet/IP option card to be installed in the unit, and a configuration uploaded to the VIM that matches the configuration in the terminal. This TechNote details the procedure for creating the class 1 connection.

There are several connection definitions structures that are possible depending on the configuration of the terminal. In order to determine or modify the terminals configuration, use the navigation down arrow key from the main menu to display the setup icon.

Select this for the menu, then expand “Communications” then “PLC Interface," then “Data Format." This displays the current format (Integer, Divisions, or Floating Point).

This also contains the Byte order (the VIM expects this to be “Word Swap”). The output data size that is transmitted to the terminal (from the VIM) is specified in the PLC >> IND780 field--this is the originator to target in the VIM configuration dialogs. The input data size that is transmitted to the VIM from the terminal (IND780 >> PLC), or target to originator, is displayed below the output. The options in this are:

The PLC Message Slots View

This view displays the current configuration of the message buffer (order of scales in the message slots of the buffer).

In this dialog, you may:

Changes here will change the message buffer sizes (both TO and OT).

2. Configuration of VIM

The first step in configuration the VIM connection is to select an input a VDF file. Each VDF file contains a default configuration definition. There are files several supplied, two for the integer data type and two for the floating point selection. This allows the user to select either a configuration containing a single scale (*_Scale1.vdf) or all possible scales (*_All_Scales.vdf) as a starting point. If a single scale is connected, then the simplest way to begin is to use the Scale1.vdf. If multiple scales are configured with the terminal, then the *_AllScales.vdf files contain mapping for all 12 message slots in the scales. After Importing this file, the definition must be edited to remove any unused scale mapping elements/fields and the and the EtipBuffer size changed to match the definition in the terminal.

To import the file, right-click on the “Ethernet IP Connection Library” tree element in VimNet Explorer, then select “Import Connection Definition." From the dialog select the starting vdf file.

The connection definition is added to the tree, select this and right-click to get the connection menu. Selecting “Properties” will open the VIM Ethernet/IP buffer mapping utility.

The buffer structure for Integer and Divisions is the same and requires the use one of the “IND780_Class1_Integer_*” vdf file as a starting point. If Floating Point format is selected, use one of the IND780_Class1_FloatingPt_*.vdf files.

2.1. Integer Format

Once the file is imported (the first example is for the integer format), it may be opened by right-clicking on the file title in the library list and selecting “Properties." This opens the mapping dialog. The example shown is the single scale mapping.

This definition has 4 input and 4 output bytes configured in the EtipBuffer segment and all 4 of each mapped to the DeltaV datasets.

Note: there are no configuration bytes (Cfg1 or Cfg2) configured for this connection, all configuration is done through the IND780 user interface.

If more scales are configured, these values should be changed to match the number of bytes required for the message slots configured (see IND780 PLC Data Format dialog above).

For this configuration, two datasets have been configured as output with read-back. The first dataset is a 16-bit unsigned integer set to hold command and status words. This is required as the data will need to be access by individual bits (or groups of bits) using Boolean fans in DeltaV. The second dataset is configured as 16-bit signed integer and will hold the actual data value. The mapping of outputs and inputs is defined as below. Both input and output mapping starts at etip buffer position 0, and each element is sequentially located in the buffer but may be mapped to any location in any defined dataset in DeltaV.

Both input and output mapping elements are displayed if there are more in the definition than are required. For each grid, click on the bottom definition, then click “delete” until the buffer matches that required (matched to the table above).

If the first element shown here (or any other element) of the input map is edited (double clicked or the “Edit” button is selected), then the Etip Input/Output Buffer map dialog is opened.

If the “fields” button in the element dialog is selected, the field names may be viewed. These definitions are displayed in VimNet Explorer to aid in accessing the variables in DeltaV datasets; they are not used by the VIM or DeltaV.

The following table shows the starting locations for each parameter for each slot as configured in the “IND780_Class1_Integer_All.vdf” file:

2.2. Floating Point format

Floating point formatted data from the input and output buffers are accessed via two datasets. The size of the buffers is determined by the table below. Each message slot requires 8 bytes of input data and 6 bytes of output data. There are also two bytes of output data at the beginning of the buffer that are un-mapped.

Note: there are no configuration bytes (Cfg1 or Cfg2) configured for this connection, all configuration is done through the IND780 user interface.

If more scales are configured, these values should be changed to match the number of bytes required for the message slots configured (see IND780 PLC Data Format dialog above).

Message Slots Floating Point
Input Output
1 8 8
2 16 14
3 24 20
4 32 26
5 40 32
6 48 38
7 56 44
8 64 50
9 72 56
10 80 62
11 88 68
12 96 74

Note: while each output requires 6 bytes of data, the scale requires 2 bytes at the beginning of the buffer resulting in 8 output bytes for the first slot, then 6 more bytes for each additional.

This example for floating point format uses the same single scale definition as the input, but with the data format converted to floating point. The terminal displays 8 input and 8 output byte buffers. For this, the VIM configuration is set to match. However, as the first two (2) bytes are reserved, the mapping of the first two bytes in the EtipBuffer are set to “un-mapped”. This means the “Configured” output bytes for DeltaV datasets is only 6.

If any mapped element (element 4 of “IND780_Class1_FloatingPt_All.vdf” shown here) of the input map is edited (double clicked or the “Edit” button is selected), the Etip Input/Output Buffer map dialog is opened.

If the “fields” button in the element dialog selected, the field names may be viewed. These definitions are displayed in VimNet Explorer to aid in accessing the variables in DeltaV datasets; they are not used by the VIM or DeltaV.

The first buffer is configured as for 16-bit unsigned integer access for the command and status words (to allow bit access) while the second is floating point (for scale data values). Adjust the number of mapping elements in the input and output maps to account for the required bytes (and starting locations) in the table below:

If deleting elements, note the input buffer is captured as two field element per map element except for the first (starts with “MsgSlot 1 Scale Cmd Rsp”) and last (ends with “MsgSlot 12 Scale Status”). If a scale is removed, the last UINT16 mapping element must have the “Cmd Rsp” field deleted and the element size changed from 4 to 2 bytes.

In this instance, the output buffer is configured to map to DS1 offset 2 (register 2) for the command word and DS2 offset 0 (register 1) for the floating point data word. The input mapping is therefore started at DS1 offset 0 (registers 2) for the command response word and offset 4 (register 3) for the status word. The input data is mapped to DS2 offset 4 (register 2).

2.3. Class1 Connection Parameters

Class 1 connection parameters are set by selecting the “Msg parameters” button in the mapping dialog. The following should default from loading any of the provided VDF files: (This configuration should be the same for all IND780 class1 connections except for the “Data Size” fields, as defined in the sections above).

The originator (VIM) to target (IND780) [OT] uses connection point 150 while the target to originator [TO] uses 100. These are used by all data formats (format of buffers is dependent on data format selected).

The Run/Idle header should be check for the OT while the TO does not use this.

Both message directions use “Point-To-Point” connections, although the Target to Originator may be set to Multicast if it is necessary for other devices to read the scale values.

The priority may be set to "Scheduled" and "Inhibition" to default.

If the default RPI is set to 1000, this may be modified as required for the individual installation; however both directions should usually use the same RPI.

The configuration connection parameter is set to 1 (this is the default for the IND780) as the configuration connection is not used.

All other parameters should be left at their defaults unless tuning is required by specific circumstances.

3. Data mapping by data format types

The data formats define in the IND780 require different maps for the transmission buffers both to and from the unit. The two formats described here are the integer/divisor and the floating point formats. The integer and divisor use the same map structure and will be referred to as Integer. This section details the mapping for the transmission buffer.

3.1. Integer data format

For the integer format, we have defined two datasets: one for input data and the second for output data. Both of these are 16 bit unsigned integer format. Both Input and output buffers may contain between 4 and 48 bytes of data, depending on how many scales are configured in the unit. This must match the actual number of bytes defined in the terminal or the connection forward open will fail with the “INVALID CONNECTION SIZE” (value 0x109) error. This is defined as the origination node requested a connection size that the target node cannot accommodate.

3.1.1. Input data

For data sent from the IND78 to the VIM, the input buffer is organized as a sequence of 16 bit integer registers. There are two registers (4 bytes) per scale configured in the terminal. The number of bytes configured for the VIM connection must match the number specified in the "Data Format" page of the terminal configuration screen.

3.1.1.1. Message Slot Weight Input Data

The 16-bit signed integer values may represent the scale’s gross, net, tare, target, rate or displayed weight. Three bits, set by the PLC in the output word, designate what data is sent by the terminal in this word. When number is negative, bit 15 is high and is the least significant bit. Otherwise, when the number is positive, Bit 15 is the most significant bit.

3.1.1.2. Message Slot Scale Status Bits

16 bit integer register contains status of specified scale.

3.1.2. Output Data

For data sent from the VIM to the IND78, the output buffer is organized as a sequence of 16 bit integer registers. There are two registers (4 bytes) per scale configured in the terminal. The number of bytes configured for the VIM connection must match the number specified in the "Data Format" page of the terminal configuration screen.

3.1.2.1. Message Slot Weight Output Data

The 16-bit signed integer values may represent the scale’s tare or target value to be downloaded. Bit 3 or bit 15 is then triggered to instruct the terminal to load the value into either the tare or target register.

3.1.2.2. Message Slot Scale Command Bits

The 16 bit integer register contains commands sent to specified scale.

Register Bit IND780 Value Explanation
0 Select 1 A 3 bit binary value that selects the data that will be sent by the terminal in Discrete Read WORD 0. 0 = gross weight, 1 = net weight, 2 = displayed weight, 3 = tare weight, 4 = target, 5 = rate, 6 and 7 = reserved. Any value greater than 7 will cause gross weight to be sent.
1 Select 2
2 Select 3
3 Load Tare A transition from “0” to “1” loads the value from WORD 0 into the tare register of the IND780; the IND780 will use the loaded value as the tare.
4 Clear A transition from “0” to “1” initiates a CLEAR command.
5 Tare A transition from “0” to “1” initiates a TARE command.
6 Print A transition from “0” to “1” initiates a PRINT command.
7 Zero A transition from “0” to “1” initiates a ZERO command.
8 Abort/Start Target Set to “0”, all of the scale’s target logic is aborted. Setting bit 8 to “1” again restarts the terminal’s target logic.
9 Display mode Controls Display Mode. A command is written to pd0119. Note that pd0119=48 for normal, 49 for 1, 50 for 2, etc. Note: Until these bits are used pd0119 will be set at 0.
10 Display mode
11 Display mode
12 Output 1 Used to control the state of the first three discrete outputs on the terminal’s internal I/O board in slot 5. These are addressed as 0.5.1, 0.5.2, and 0.5.3. Setting the bit to a “1” state causes the output to be turned ON. This action will occur regardless of the discrete output assignment within the IND780.
13 Output 2
14 Output 3
15 Load Target When bit 15 is changed from “0” to “1” the value in WORD 0 is loaded into the target register in the terminal and loaded into the target logic.

3.2. Floating Point data format

The floating point format requires two datasets: a floating point and an unsigned 16 bit integer format for status and command bit data. Both input and output data are in the same dataset (configured output with read-back). The first dataset holds 16 bit unsigned integer values, and the second holds a floating point.

3.2.1. Buffer Organization

Data sent from both the VIM to the IND78 (output) and the IND780 to the VIM (input) is organized in the same datasets. Two datasets are required: one is an integer register dataset and the second is a floating point set. Each dataset contains registers that are input and those that are output. The number of bytes configured for each direction of the the VIM connection must match the number specified in the "Data Format" page of the terminal configuration screen.

3.2.2 Message Slot Scale Command Word

The command is used to instruct the IND780 what data to send in the discrete read data, to load the floating point data in the write command, and to control the IND780 discrete outputs or display. See Table 4-11 in IND780 PLC Interface manual, the PLC Output Command Table, for a list of the available commands and their respective decimal or hex value. Not all commands will require a value in the floating point load value words.

3.2.3. Message Slot Weight Output Data

This is a single-precision floating point value (four bytes). This value is used with the command word to instruct the terminal to download the floating point value into the field specified in the command.

3.2.4. Message Slot Scale Command Response

3.2.5. Message Slot Scale Status Bits

This register is updated with a bit string that contains the current state of the terminal. This must be split into bits and bit group.

4. DeltaV Configuration

The following example is included (“IND780_INTEGER_ACCESS_MODULE.fhx”). This fhx module is exported from a DeltaV 9.3 system, and it may be imported (migrated for future versions) or entered manually as a starting point for scale landing modules.

4.1. Integer formatted data for Scale 1

4.2. Floating Point formatted data for Scale 1

The following example is included (“IND780_FP_ACCESS_MODULE.fhx”). This fhx module is exported from a DeltaV 9.3 system, and it may be imported (migrated for future versions) or entered manually as a starting point for scale landing modules.

5. Ethereal Captures

Ethereal was used to capture the opening and an example packet to the IND780 and from it. This is provided as an example of what to expect from a working connection. These captures were triggered by uploads to the VIM from VimNet explorer.

5.1. Floating Point definition:

This information (and display tables) were obtained from the IND780 Terminal PLC Interface Manual 64057518 (01/08) R02, www.mt.com. Use this manual for further detailed information.