Enron Modbus I/O Addressing
Standard Values
For standard reads and writes, the address can be entered directly into the address field. Unlike with the standard Modbus driver there is no need to indicate the data type (e.g. /FLOAT) because each data type has its own predefined address range.
Register Numbers | Type | Table Name |
---|---|---|
1001-1999 | Read-Write | Boolean variables |
3001-3999 | Read-Write | 16 bit Short integer variables |
5001-5999 | Read-Write | 32 bit Long integer variables |
7001-7999* | Read-Write | 32 bit Floating point variables |
*Many devices allow floating point addresses above 7999.
History Logs
Note: The history logs can only be read in conjunction with an Enron History Log tag. See the Enron History Log Tag section for details on both the tag and the history storage methodology.
Analog Status tags, which store history information, should use the address structure:
HL:x:y
where x is the address of the history log (usually 701 or 702) and y is the variable's position in the returned history record (beginning with 0).
Alarm/Event Logs
An Enron Modbus device has a single log where both alarm and event information is stored. It should be noted that the alarms logged here are internal to the device and to the device's flow calculations, and as such are not necessarily related to alarms in VTScada.
Along with the timestamp, four pieces of information are returned as part of each event/alarm. Each of these pieces of information should be captured in its own analog status tag with the address:
EL:x:y
where x is the address of the alarm log (usually 32) and y is a value between 0-3 based on the chart following.
Address Index | Description | Comments |
---|---|---|
0 | Bitmap | Group of flags describing the event/alarm (see following) |
1 | Register | Register that was changed/that triggered the alarm |
2 | Data1 | Previous value (event) or current value (alarm) |
3 | Data2 | Current value (event) or not used (alarm) |
The Bitmap is a group of flags whose meanings change based on whether the record is an event or an alarm. Of particular importance is bit 9, which is always a 1 for an event and a 0 for an alarm.
Bit Number | Alarm Map | Operator Event Map |
---|---|---|
0 | unassigned | Fixed Value |
1 | unassigned | Zero Scale |
2 | unassigned | Full Scale |
3 | unassigned | Operator Entry Work Value |
4 | unassigned | Boolean Fixed Bit |
5 | unassigned | Fixed/Variable Flag |
6 | unassigned | Table Entry Change |
7 | unassigned | System Command Change |
8 | unassigned | unassigned |
9 | Operator Change Event Bit (Always 0) | Operator Change Event Bit (Always 1) |
10 | Lo-Lo Limit | Lo-Lo Limit |
11 | Lo Limit | Lo Limit |
12 | Hi Limit | Hi Limit |
13 | Hi-Hi Limit | Hi-Hi Limit |
14 | Rate of Change Limit | Rate of Change Limit |
15 | Set/Reset Alarm (1 = set, 0 = reset) | unassigned |
The diagram following details the tag setup. Contrasting this with the diagram of the historical log, you can see that no intermediary tag is necessary between the driver and the status tags. However, you may still choose to add a context tag to group the four analog status tags together.
Omni Flow Computers
The prefix of S8: can be used to denote that an address will return an 8 character string. For example, S8:4001 will interpret the data from address 4001 as an 8 character string.
You can read bit values from registers and history log entries by using a / or \ followed by the bit number to read.
Note that bit writes for non-boolean registers are NOT supported.