EasyManua.ls Logo

RMF Systems CMS 2 - Page 61

Default Icon
84 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
60
As a policy of continual improvement, RMF reserves the right to alter the specification without prior notice.
201.028 REV 1 Date of Issue: 18 June 2018
They may be simple numeric quantities such as ``test time in seconds’’. They can also be enumerations such as
``result format’’ where ``0’’ means ISO4406, ``1’’ means NAS1638 etc.
Signed Integers - These are used for quantities that may become negative, such as °C. They are also used for
result codes using formats similar to NAS1638, where we have to represent the NAS ``00’’ class as -1, and ``000’’
as -2.
Signed integers are represented in single Modbus registers using the ``twos complement’’ standard, as usual in
computing. If a user-written program incorrectly interprets a signed integer as unsigned, then positive numbers
will still be interpreted correctly. However, small negative numbers will appear as large positive ones. In
particular, -1 appears as 65535 and -2 as 65534. These might be seen when interpreting the NAS codes
mentioned above.
Take care when writing software dealing with NAS codes or Temperature measurements.
32 Bit Unsigned Integers - Some quantities are (or may become) too large to fit into a single 16-bit register. For
example the Test Number could eventually increment to more than 65535. These items are represented using
two consecutive registers; the combination makes up a 32-bit integer. For example, the value of such a 32 bit
unsigned integer stored in registers 8-9 may be calculated using the formula:
𝑣𝑎𝑙𝑢𝑒 = (65536 × (𝑟𝑒𝑔𝑖𝑠𝑡𝑒𝑟 8)) + (𝑟𝑒𝑔𝑖𝑠𝑡𝑒𝑟 9)
Bitmaps - Bitmaps are again single 16-bit Modbus registers, but they have a special interpretation. Each ``bit’’ in
the register has a separate function. The most important example is the ``status flags’’ register (31). Each register
bit encodes a separate function, for example ``result valid’’, ``new result’’, ``over temperature alarm’’ etc. In this
document bits are numbered starting with bit 0 = least significant bit.
A user programming environment such as a PLC programming system or a high level computer language will
normally have functions that allow easy access of individual bit values in a register.
Arrays - An Array is simply a sequence of objects packed in consecutive registers. For example the ``result codes’’
are in an array of 8 registers. Code [0] is in register 56; code [1] is in register 57 etc.
In the case of an array of 32-bit integers, each element itself takes up 2 registers, so there are twice as many
registers used as elements in the array. In the case of the particle counts array, there are 8 particle sizes counted
so these are stored in 8 × 2 = 16 registers.
Packed Characters - These are used to encode the user-settable ``test reference’’ string, used to label each test.
Characters are packed two per Modbus register. This will probably not be used in a user-written Modbus
program, but in principle the test reference could be set to a different value for each test. The test reference
string consists of 16 characters packed into an array of 8 consecutive registers.
Date/Time - A ``Date’’ represents a calendar date and time as a 32 bit unsigned integer (it is the number of
seconds since Jan 1 1970). User programs will not generally have to deal with this, but in principle they could e.g.
read or set the real time clock from registers 24-25. It can be useful during development to be able to read the
clock and see a continuously incrementing value of seconds.

Table of Contents