9 - 12 VM600 networking manual MAVM600-NET/E
Edition 9 - February 2018
MPC4 card
SETTING UP A MODBUS CONNECTION (CPUM SW VERSION 071 OR LATER)
Packing bits to a 16-bit unsigned integer is a special function. For example:
Address:Function:U=PACK($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l $m, 0, 0, 1)
As shown above, constants (that is, 0 or 1) can also be used.
The rules packing user defined variables are:
• The first parameter passed is the MSB ($a in the above example) and the last parameter
passed is the LSB ($p in the above example)
• Constants 0 and 1 are allowed
• A comma must be used as a separator between the variables
• A list of variables has to be in parentheses
• Valid functions are 3 or 4.
Unpacking bits from a 16-bit unsigned integer is a special function. For example, to unpack
bits from a 16-bit unsigned integer:
Address:Function:B=UNPACK(address, function, index)
$bitvariable=UNPACK(address, function, index)
Where:
• Address gives the register for the specified function code
• Function gives the Modbus function code
• The index gives the position in the 16-bit unsigned integer and should be between 1 and
16. The value 1 corresponds to the LSB.
• Valid Modbus functions for accessing the unpack operation are functions 1 and
functions 2.
Assigning values to Modbus addresses: For example:
Address:Function:B =$Value
As the data type is B, only bit values are allowed.
Assigning constants to bit variable. For example:
$Variable = 0
The valid values are 0 and 1.
9.4.2 Discrete values (coils, discrete inputs)
In addition to the existing Modbus discrete values (see 8-14), CPUM cards running firmware
version 071 or later provide additional values.
9.4.2.1 Channel status register
The discrete values available for the MPC4 channel status register are mapped as shown in
Table 9-10. (This table includes the eight discrete values available with CPUM cards running
firmware version 067 or earlier. See Table 8-6 in 8.6.2 Definition of outputs.)