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

This technical note describes the recommended settings for integrating Mettler-Toledo's Q.Impact Weighing System using the Generic Device Ethernet/IP driver for the Virtual IO Module.

Introduction

The Q-Impact allows class1 implicit and unconnected (UCMM) explicit connections via EthernetIP from the VIM (Virtual I/O Module) in a DeltaV IO rack. For class1, the Q-Impact acts as a server, with the DeltaV controller receiving from and writing data to locations in the Q-Impact Assembly tables. For UCMM, the Q-Impact also acts as a server receiving the UCMM messages and returning successful status (and data, if requested). The assembly areas are mapped in the Q-Impact to data that is used in the Q-Impact logic. These assembly areas are continuously updated between the Q-Impact and the VIM. The Q-Impact mapping is specific for the connection and may not be modified. Depending on the configuration in the Q-Impact, the size and location of the data used may vary. MYNAH supplies three connection definition files (vdf files) that may be imported and used as is, or as a start for configuring the actual connection definitions. Once these have been defined, then they may be added to the configuration of any VimNet Explorer vio definition. The three files define different types of connections: one class1 IO connection, one UCMM read, and one UCMM write.

Since these contain a mix of data types, the connection to DeltaV is “mapped” to allow the use several DeltaV datasets with different data types that hold values from different portions of the data buffers of the connection, dependent on the type of data in the buffer. The mapped connections are used to transfer complex data structures between the two systems.

VIM Configuration

This section provides information for configuring Q-Impact connections to the VIM. It assumes the user is familiar with configuring the VIM using the VimNet Explore utility.

Open the VimNet Explorer. If the appropriate configuration is not already loaded, create a configuration containing the VIM and Q-Impact Device. Right-click on the “EthernetIP Connection Library” leaf in the navigation panel on the left of the display. Select “Add Connection Definition” or “Import Connection Definition” to load one of our default vdf files.

Figure 1

Next, right click on the definition and select “Properties." This opens the “VIM_EtipBufferMapping” Utility shown in Figure 2. This is the utility that allows the configuration of the connection between the VIM and the Q-Impact. This figure shows the definition of the Q-Impact2.vdf (Class1 IO) module we supply as a starting point.

Figure 2

If you wish, you may enter a new name in the “Library Name” field. Then edit the Etip Buffer section below if necessary. Make sure the message type radio button (Class1) is checked, and the ENBT field is unchecked.

In the “Input” and “Output” fields, show the selected the number of bytes that will be included in the communications message buffers. The Input specified the size of the Q-Impact to VIM (target to originator or TO), which is the assembly data in the Q-Impact that will be transmitted to the VIM, while the Output specifies the bytes transmitted from the VIM to the Q-Impact (Originator to target or OT). The defaults for the Q-Impact are 496 and 0. These are fixed values for the Q-Impact.

Next, select the “MsgParameters” button to open the “SpecialData” utility (Figure 3). This utility allows you to enter or modify the necessary parameters to configure the actual Ethernet/IP Class1 connection.

In Figure 3, the PowerFlex 70 (0001007B00300200.eds) electronic data sheet is loaded and the “Discrete Exclusive Owner” connection is selected. When first imported only the editable fields are enabled, however if the properties are later examined all parameters are enabled. In either case, only modify the data size and RPI for output (Originator to Target) and input (target to Originator).

Figure 3

The input and output data sizes are configurable based on the user defined parameters configured in the module. The definition file supplied (PowerFlex70.vdf) has all parameters configured and requires output size of 20 bytes, input of 24 (to include the 4-byte header).

Both OT and TO connections should be to “Scheduled” and Inhibition “Default." The OT connection should be “Point to Point” while TO should be “MultiCast." Make sure the OT connection has the “Run/Idle Header” checkbox checked and the TO does not. Next, set the RPI (requested packet interval) to the required interval. These are the expected time for the PowerFlex (TO) and VIM (OT) to send data messages. The Data size for both of these was set using the “VIM_EtipBufferMapping” utility.

Finally, the overall connection parameters are the “Use Slot Addressing” (unchecked), Transport Trigger, “Cyclic," and Timeout Multiplier (4). Configuration Connection should be 0.

If any value has been changed, the last step in the SpecialData words is to select “OK” to save these parameters into the current connection definition in the VIM_EtipBufferMapping” utility. To exit without modifying the definition, select “Cancel."

In the VIM_EtipBufferMapping” utility, select the datasets to map these connections. Since the data is all either unsigned 16 bit register discrete data only one dataset is required. This is the “Base DataSet” as displayed in figure 4. This dataset is configured as a 16-bit unsigned integer output (with read-back). This allows the connection to read discrete and unsigned integer data to one set of values and floating point to the second set.

Figure 4

Next, you can see that specific registers are mapped to the transfer buffer. Double click (or select “edit” button) in the EthernetIP Input Buffer Definition (Adapter to VIM) to add the Input Definition. Note the first set does not show a dataset or offset. This is an “unmapped” element to allow the first bytes of the buffer to be ignored.

This dialog allows the user to select the dataset (1: UINT16_WITH_STATUS for integer, and 1: FLOAT_WITH_STATUS for the floating-point inputs) for each section of the buffer to be used. Each element points to a specific range of bytes in the buffer and maps these to the specific dataset registers for that type (or specifies them as unmapped).

Selecting the “Fields” button will open a dialog (Ethernet/IP Buffer Fields) shown in Figures below that will allow the you to enter a series of field definitions. Each field may specify a Q-Impact tag definition assigned to the assembly table(s) for the connection. These have no effect on the communications between the Q-Impact and DeltaV; however, the field definitions allow you to document the format of the transfer buffer and will show the specific DeltaV dataset registers associated with the specified fields. Each field is added by selecting the “Add” button, then filling out the parameters (including the data type of the field), the starting byte in the field, and bit (if a bit field). Also, the size (elements) may be set if the field is an array of the data type.

Finally, you select “OK” on all of the dialog boxes to accept the configured values or “Cancel” to leave them unmodified. You are returned to the VimNet Explorer “Ethernet IP Connection Library” with the new definition added. To add this to the VIM configuration, select the Node, the specific VIM, card, port and device for the connection, then right click on the device and select “Add Connection.” In the dialog box, add a description and select the specific connection definition from the “Ethernet Device Definition” combo box. The connection is added to the list and the next available dataset(s) in DeltaV are assigned. You can open this connection by selecting the plus (+) in front of it, and examine the definition of each assigned dataset here. When configuring the actual DeltaV datasets (DeltaV Explorer), you may use these definitions as a reference.

DeltaV Configuration

The actual connection between the Q-Impact and DeltaV is configured in VimNet Explorer. The DeltaV dataset(s) assigned in DeltaV Explorer may be on any card (57-60) / port(1-2) and device, but they must match the definition as specified in VimNet Explorer. One or more datasets are assigned to a connection as necessary. The first dataset defines the connection; the remaining datasets for the connection (if required) must immediately follow the first.

To start, use DeltaV Explorer to select the device. Right click, and select “New Dataset” to open the Dataset properties dialog. Select the data direction of the connection data for this dataset. If you are assigning an output assembly instance (AO) to the data this would be “Output," if the assembly instance was input (AI), then use “Input”. Refer to the VimNet Explorer definition of the dataset for actual requirements.

The DeltaV tab of the dataset property box is used to select the data type of the data that will be presented. This should be appropriate for the data that will be accessed in the Q-Impact. If the data in the assembly table is floating point, only a floating point dataset in DeltaV is appropriate as noted above. Mapping of datasets in the connection will allow this to be assigned separately from integer and bit registers.

On the PLC tab, the “Device data type” may be specified, but is not required. If specified, the first dataset associated with the connection is specified with a device data type of 39 (mapped EthernetIP Class1 client) or 41 (mapped UCMM client) on the PLC tab. The remaining datasets are assigned 36 (EthernetIP extension data). In addition, the number of values on this tab will determine the size of the connection data read/written from this dataset. The number of registers in the associated datasets mapping elements determines the total data in both directions, by the data direction, type, and size in each dataset.

All words on the special data tab should be 0 (any values here are ignored).

Reading Data from the Matroller (Class1 IO Data)

Class1 Input Field Xreferences

This section details the input fields supplied by the Class1 Input connection. These are all read-only data values. These are updated at the selected RPI (requested packet interval) for the connection.

Data

Buffer

Offset (Size)

DeltaV Register

Element(s)

S1 Channel Number

0(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R1.CV'

Low Byte

S1 PAC Data Integrity Bit

1:0

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R1.CV'

bit 8

S1 Instrument data integrity OK

1:1

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R1.CV'

bit 9

S1 Scale over capacity

1:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R1.CV'

bit 10

S1 Scale under zero

1:3

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R1.CV'

bit 11

S1 Scale Motion

1:4

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R1.CV'

bit 12

S1 Material Transfer Cycle Active

1:5

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R1.CV'

bit 13

S1 Final Control Element Output

1:6

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R1.CV'

bit 14

S1 Waiting for Ack

1:7

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R1.CV'

bit 15

S1 Feed Type

2:0(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

2 bits starting at bit 0

S1 Manual-Not Auto-Mode

2:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 2

S1 Gross Weight Feed

2:3

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 3

S1 Feed Override Active

2:4

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 4

S1 Feed Failed

2:5

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 5

S1 Communications Error

2:6

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 6

S1 Device Stability Warning

2:7

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 7

S1 Very Unstable Device

3:0

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 8

S1 Too High or Low Flow

3:1

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 9

S1 3x Average Flow At Cuttoff

3:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 10

S1 Fast Feed Rate Alarm

3:3

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 11

S1 Wait for All Overlap Requests

3:4

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 12

S1 Waiting to Start Primary

3:5

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 13

S1 Primary Overlapped Feed

3:6

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 14

S1 Secondary Overlapped Feed

3:7

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

bit 15

S1 Feed Weight

4(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R1.CV'

1 Registers

S1 Gross Weight

8(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R2.CV'

1 Registers

S1 Rate of Change Weight

12(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R3.CV'

1 Registers

S1 Slow Step Time Remaining

16(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R3.CV'

1 Registers

S1 Est Time to Complete

18(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R4.CV'

1 Registers

S2 Channel Number

20(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R5.CV'

Low Byte

S2 PAC Data Integrity Bit

21:0

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R5.CV'

bit 8

S2 Instrument data integrity OK

21:1

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R5.CV'

bit 9

S2 Scale over capacity

21:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R5.CV'

bit 10

S2 Scale under zero

21:3

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R5.CV'

bit 11

S2 Scale Motion

21:4

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R5.CV'

bit 12

S2 Material Transfer Cycle Active

21:5

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R5.CV'

bit 13

S2 Final Control Element Output

21:6

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R5.CV'

bit 14

S2 Waiting for Ack

21:7

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R5.CV'

bit 15

S2 Feed Type

22:0(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

2 bits starting at bit 0

S2 Manual-Not Auto-Mode

22:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 2

S2 Gross Weight Feed

22:3

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 3

S2 Feed Override Active

22:4

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 4

S2 Feed Failed

22:5

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 5

S2 Communications Error

22:6

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 6

S2 Device Stability Warning

22:7

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 7

S2 Very Unstable Device

23:0

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 8

S2 Too High or Low Flow

23:1

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 9

S2 3x Average Flow At Cuttoff

23:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 10

S2 Fast Feed Rate Alarm

23:3

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 11

S2 Wait for All Overlap Requests

23:4

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 12

S2 Waiting to Start Primary

23:5

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 13

S2 Primary Overlapped Feed

23:6

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 14

S2 Secondary Overlapped Feed

23:7

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R6.CV'

bit 15

S2 Feed Weight

24(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R4.CV'

1 Registers

S2 Gross Weight

28(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R5.CV'

1 Registers

S2 Rate of Change Weight

32(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R6.CV'

1 Registers

S2 Slow Step Time Remaining

36(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R7.CV'

1 Registers

S2 Est Time to Complete

38(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R8.CV'

1 Registers

S3 Channel Number

40(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R9.CV'

Low Byte

S3 PAC Data Integrity Bit

41:0

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R9.CV'

bit 8

S3 Instrument data integrity OK

41:1

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R9.CV'

bit 9

S3 Scale over capacity

41:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R9.CV'

bit 10

S3 Scale under zero

41:3

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R9.CV'

bit 11

S3 Scale Motion

41:4

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R9.CV'

bit 12

S3 Material Transfer Cycle Active

41:5

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R9.CV'

bit 13

S3 Final Control Element Output

41:6

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R9.CV'

bit 14

S3 Waiting for Ack

41:7

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R9.CV'

bit 15

S3 Feed Type

42:0(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

2 bits starting at bit 0

S3 Manual-Not Auto-Mode

42:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 2

S3 Gross Weight Feed

42:3

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 3

S3 Feed Override Active

42:4

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 4

S3 Feed Failed

42:5

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 5

S3 Communications Error

42:6

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 6

S3 Device Stability Warning

42:7

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 7

S3 Very Unstable Device

43:0

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 8

S3 Too High or Low Flow

43:1

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 9

S3 3x Average Flow At Cuttoff

43:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 10

S3 Fast Feed Rate Alarm

43:3

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 11

S3 Wait for All Overlap Requests

43:4

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 12

S3 Waiting to Start Primary

43:5

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 13

S3 Primary Overlapped Feed

43:6

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 14

S3 Secondary Overlapped Feed

43:7

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R10.CV'

bit 15

S3 Feed Weight

44(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R7.CV'

1 Registers

S3 Gross Weight

48(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R8.CV'

1 Registers

S3 Rate of Change Weight

52(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R9.CV'

1 Registers

S3 Slow Step Time Remaining

56(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R11.CV'

1 Registers

S3 Est Time to Complete

58(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R12.CV'

1 Registers

S4 Channel Number

60(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R13.CV'

Low Byte

S4 PAC Data Integrity Bit

61:0

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R13.CV'

bit 8

S4 Instrument data integrity OK

61:1

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R13.CV'

bit 9

S4 Scale over capacity

61:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R13.CV'

bit 10

S4 Scale under zero

61:3

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R13.CV'

bit 11

S4 Scale Motion

61:4

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R13.CV'

bit 12

S4 Material Transfer Cycle Active

61:5

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R13.CV'

bit 13

S4 Final Control Element Output

61:6

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R13.CV'

bit 14

S4 Waiting for Ack

61:7

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R13.CV'

bit 15

S4 Feed Type

62:0(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

2 bits starting at bit 0

S4 Manual-Not Auto-Mode

62:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 2

S4 Gross Weight Feed

62:3

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 3

S4 Feed Override Active

62:4

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 4

S4 Feed Failed

62:5

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 5

S4 Communications Error

62:6

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 6

S4 Device Stability Warning

62:7

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 7

S4 Very Unstable Device

63:0

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 8

S4 Too High or Low Flow

63:1

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 9

S4 3x Average Flow At Cuttoff

63:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 10

S4 Fast Feed Rate Alarm

63:3

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 11

S4 Wait for All Overlap Requests

63:4

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 12

S4 Waiting to Start Primary

63:5

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 13

S4 Primary Overlapped Feed

63:6

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 14

S4 Secondary Overlapped Feed

63:7

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R14.CV'

bit 15

S4 Feed Weight

64(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R10.CV'

1 Registers

S4 Gross Weight

68(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R11.CV'

1 Registers

S4 Rate of Change Weight

72(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R12.CV'

1 Registers

S4 Slow Step Time Remaining

76(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R15.CV'

1 Registers

S4 Est Time to Complete

78(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R16.CV'

1 Registers

Communications Buffer Definition (Cyclic Data Content)

(Definitions are from METTLER TOLEDO Q-IMPACT Matroller Technical Manual (7-02))

Words 00 to 07 reserved for system data

Words 08 to 17 Channel 1 data

Words 18 to 27 Channel 2 data

. . .

Words 98 to 107 Channel 10 data

Words 108 to 117 zeroes (if installed it would have been channel 11 data)

Word 0

16-bit checksum of all the channel data. Sum all data from word 9 to 248 ignoring overflows.

Word 1

Exact logical inverse of word

Word 8 (low byte)

Channel number

Word 8 (high byte)

0. PAC Data Integrity Bit alternates polarity every 5 seconds.

1. Instrument Data Integrity OK

2. Scale Over Capacity

3. Scale Under Zero

4. Scale Motion

5. Material Transfer Cycle Active

6. Final Control Element Output, 0 = Off, 1 = On

7. Waiting for Controller to Acknowledge Last Material Transfer/Hand Add complete

Word 9 (word)

1. Feed Type

2. Feed Type, 0=Gain In Weight, 1= Loss In Weight, 2= Flow Meter, 3 = Hand Add

3. Manual-Not Auto-Mode

4. Gross Weight Feed

5. Feed Override Active – external logic inhibited from removing feed permissive

6. Feed Failed

7. Communication Error

8. Device Stability Warning

9. Very Unstable Device

10. Too High or Too Low Flow at cutoff

11. Three Times Average Flow at cutoff

12. Fast Feed Rate Alarm

13. Wait for All Overlap Requests

14. Waiting to Start Primary” Overlapped Feed

15. Primary Overlapped Feed” In Progress

16. Secondary Overlapped Feed” In Progress

Word 10 Float (2x word)

“Feed Weight.” This field is reset to zero at the beginning of a feed. During most

feeds, this field contains the Net Accumulated Weight for the single feed. During

Primary Overlapped feeds, this field contains the combined weight of all feeds. At

completion of the feed, it contains the Delivered Weight for this feed.

METTLER TOLEDO Q-IMPACT Matroller Technical Manual

6-6 (7-02)

Word 12 Float (2x word)

“Gross Weight.” For scales, this is the gross weight. For flow meters, this field is the

same as Feed Weight.

Word 14 Float (2x word)

Rate of Change of Weight

Word 16 Word

Time until Slow Step Timer Expires in Seconds. 0 = Alarm.

Word 17 Word

Estimated Time to Complete in Seconds

Cyclic Read Landing module example

This is the example for reads of channel (scale) 1 using buffer words 8 to 17. For other scales, the user must modify the input register assignments to access the appropriate input words.

Where the CALC block (CALC9) uses the expression

OUT2 := (IN1 & 65280) / 256;

OUT1 := IN1 & 255;

to split the input word into bytes.

Writing Data to the Matroller (UCMM)

Using ControlNet class 84h a block of data is read from the Q-IMPACT Matroller. The structure of the data block is as follows. Descriptions follow at the end. This is included in the definition(QI_UCCM_TriggeredWrite.vdf)

Output Field Xreferences. These are all write only data values. These are updated when the value in the ”WriteTrigger” is changed (incremented) in DeltaV logic. If the value is not incremented, no writes occur. If you wish a continuous update of the values in this buffer, then delete the last element (#4) in the output buffer definition. This will remove the “WriteTrigger” field as well as the mapping element for this, in this case the updates will be written at the update period specified.

Data

Buffer

Offset (Size)

DeltaV Register

Element(s)

Channel Number

0(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R1.CV'

Low Byte

Sequence Number

1(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R1.CV'

High Byte

Material Path

2(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R2.CV'

1 Registers

Command

4(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R3.CV'

Low Byte

Group Number

5(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R3.CV'

High Byte

Overlapping Feed #

6(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R4.CV'

Low Byte

Setpoint

8(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R1.CV'

1 Registers

Pos Tolerance

12(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R2.CV'

1 Registers

Neg Tolerance

16(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R3.CV'

1 Registers

Material ID

20(20)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS01/R5.CV'

10 Registers

WriteTrigger

60(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS02/R4.CV'

1 Registers

Communications Buffer Definition (Definitions are from METTLER TOLEDO Q-IMPACT Matroller Technical Manual (7-02))

Word 0 low byte Channel number

Word 0 high byte Sequence number

Word 1 word Material Path

Word 2 low byte Command

Word 2 high byte Group number

Word 3 low byte Number or overlapping secondary feed

Word 3 high byte reserved

Word 4 float Setpoint, (target weight)

Word 6 float pos tolerance (enter a positive number)

Word 8 float neg tolerance (enter a positive number)

Word 10 ASCII Material ID. This string is included in the material transfer report. (string length = 20 bytes)

Explanation

Channel number Channel to be used

Sequence number An incrementing number used to separate and track commands

Material Path Desired Material Path to be used

Command The actual task/command that the Q-IMPACT Matroller will perform.

Group number During an overlapping feed an arbitrary number is assigned to

the “group”. In this way multiple “groups” of overlapping feeds

can be done simultaneously. ScaIe A scale and 2 flow meter

feeds are all part of group “1”. Another scale and 3 flow meter

feeds could be part of group “2”

# overlapping feeds The Q-IMPACT Matroller must be informed of how many

secondary overlapping feeds there will be. It needs this

information in order to know when the final command has been

received as it will only start the transfers once all commands

associated with the group have been received. This is the case

as the Q-IMPACT Matroller must perform various feasibility

checks before it actually starts the transfers.

Setpoint The actual target weight required.

Tolerances The actual maximum absolute error that is allowed.

Material ID A name for the Material

Command List

1 Start material transfer.

2 Start material transfer with Gross Weight Target. This command is only valid for a scale device.

3 Start Hand Add

4 Acknowledge material transfer or Hand Add Complete

5 Abort material transfer

6 Reset Slow Step Timer

7 Start Manual mode

8 Turn on FCE (Final Control Element) in Manual mode

9 Turn off FCE (Final Control Element) in Manual Mode

10 Restart Auto mode

11 Complete feed in Manual mode

12 Master Reset – Instrument channel

13 Report last status

14 Master Reset – Cluster

15 Validate aggregate secondary feeds

30 Reset the ControlNet Board

31 Reset the Channel

NOTE: Misuse of the two commands above will interfere with the process.

Write Landing Module example:

Where the CALC blocks (CALC4,CALC5, and CALC6) use the expression

iValue := IN1 + (IN2*256);

OUT1 := iValue;

to join the output bytes into the output word.

Reading Data from the Matroller (UCMM)



Using ControlNet class 85h a block of data is read from the Q-IMPACT Matroller. The structure of the data block is as follows. Descriptions follow at end. This is included in the definition (QI_UCCM_Read.vdf)

Input Field Xreferences. These are all read only data values. Updated at the selected interval (Update Period) in the connection definition.

Data

Buffer

Offset (Size)

DeltaV Register

Element(s)

Channel Number

0(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS04/R1.CV'

Low Byte

Sequence Number

1(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS04/R1.CV'

High Byte

Material Path

2(2)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS04/R2.CV'

1 Registers

Command

4(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS04/R3.CV'

Low Byte

Command Status

5(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS04/R3.CV'

High Byte

Transfer Status

6(1)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS04/R4.CV'

Low Byte

Over tolerance

8:0

'//VIMCTRL1/IO1/C57/P01/DEV01/DS04/R5.CV'

bit 0

Under tolerance

8:1

'//VIMCTRL1/IO1/C57/P01/DEV01/DS04/R5.CV'

bit 1

Power Failure

8:2

'//VIMCTRL1/IO1/C57/P01/DEV01/DS04/R5.CV'

bit 2

Delivered Weight

12(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS05/R1.CV'

1 Registers

Material Transfer error

16(4)

'//VIMCTRL1/IO1/C57/P01/DEV01/DS05/R2.CV'

1 Registers

Communications Buffer Definition (Definitions are from METTLER TOLEDO Q-IMPACT Matroller Technical Manual (7-02))

Word 0 low byte Channel number

Word 0 high byte Sequence number

Word 1 word Material Path

Word 2 low byte Command

Word 2 high byte Command Status

Word 3 low byte Transfer Status

Word 3 high byte Reserved

Word 4 word Material Transfer Status Qualifiers

0 Over Tolerance”

1 “Under Tolerance”

2 “Power Failure” during feed

3-15 Reserved

Word 5 word Reserved

Word 6 Float Delivered weight

Word 8 Float Material Transfer error

Explanation

The first four bytes of the received data are identical to the first four bytes of transmitted

data. This enables you to compare the sent with the received. If they match, then your

last command was received by the Q-IMPACT Matroller.

Command Status – this is the response to your command. By analyzing this number you will be able to determine whether your command was received accepted, rejected. The various responses are listed below. As you can see a response in the range 0 to 5 is desirable!

Command Status codes

0 SUCCESS Start Gain-In-Weight Material Transfer Command Complete

1 SUCCESS Start Loss-In-Weight Material Transfer Complete.

2 SUCCESS Start Flow Meter Material Transfer Complete.

3 SUCCESS Start Validate Aggregate Feed Complete.

4 SUCCESS Start Hand Add Command Complete.

5 SUCCESS Command Complete

6 Command Not Complete Request status again after a short delay

7 ERROR Communications Error

8 ERROR Invalid Instrument Channel Number

9 ERROR Invalid Command

10 ERROR Invalid Material-Path Table Index Number

11 ERROR Invalid Algorithm in Material-Path Table Entry

12 ERROR Invalid Feed Type in Material-Path Table Entry

13 ERROR Invalid Measuring Device Channel Table Index in Material Path Table

14 ERROR Invalid Gain in Weight Feed and Dump to Empty Algorithm Combination in Material Path Table

15 ERROR Invalid Destination in Material Path Table Entry.

16 ERROR Other invalid data in Material Path Table Entry

17 ERROR Overlap Feed Request Error, including invalid Loss in Weight Feed in Material Path Entry and Overlapping Feed Command.

18 ERROR Invalid data In Measuring Device Channel Table Entry

19 ERROR Invalid Mode for Command, e.g., Controller is requesting to start a new material transfer before the last feed is complete or before the controller has acknowledged that the last material transfer is complete.

20 ERROR Requested add amount too small

21 ERROR Requested add amount would bring Scale Device over capacity

22 ERROR Scale Device Currently over Capacity

23 ERROR Scale Device Currently under Zero

24 ERROR Instrument Malfunction

25 ERROR Target Weight is less than Spill

26 ERROR Response Timeout

27 ERROR Too many overlapping feeds

28 WARNING Delayed start to feed due to overlapping feed.

29 WARNING Abort ignored since Time to Complete was less than Feed Override Time

30 ERROR Invalid overlap group number

31 WARNING Waiting for All Secondary Requests.

32 WARNING Waiting for Measuring Device Stability.

33 ERROR Not Enough Material.

34 ERROR Device not configured or calibrated properly.

Transfer Status At the end of the Material Transfer, this code will indicate the status of the Transfer.

0 Successful Material Transfer - K1, K2 parameters updated

1 Successful Material Transfer - Spill Only

2 Successful Material Transfer - Dump to Empty

3 Successful Hand Add

4 Material Transfer Complete - Parameters NOT updated

5 Material Transfer Complete - Parameters reset.

6 Material Transfer Complete with Manual Operation

7 Failed Unstable Scale

8 Failed Overlapping Feed Error Corrupted Flow

9 Failed Erratic Flow Error

10 Failed Low Flow Error

11 Failed High Flow Rate Alarm Error

12 Failed Communication Error

13 Failed Instrument Error

14 Failed Scale Device Capacity Error

15 Failed Predictive Algorithm Error

16 Failed Material Transfer with Manual Operation

17 Failed Amount of material transferred did not match in source and destination.

18 Failed Controller Aborted Material Transfer

19 Failed Controller Reset Channel

20 Failed Controller Reset Cluster

21 Failed Reserved

22 Failed Slow Step Timer Timeout

23 Failed Secondary Requests Timeout

24 Failed Power Failure During Feed

25 Failed Start Material Transfer Command Failed Immediately Transfer Did Not Start

26 Status Only Material Transfer Is In Progress.

Read Landing Module example:


Where the CALC blocks (CALC4,CALC5, and CALC6) use the expression

OUT2 := (IN1 & 65280) / 256;

OUT1 := IN1 & 255;

to split the input word into bytes.