You are on page 1of 3

What is Enron Modbus?

Enron Modbus is a modification to the standard Modicon modbus communication


protocol. It was developed by Enron Corporation. The main differences between the
two protocols is the numbering of the register addresses, the support of 32 bit registers
as well as 16 bit, and the ability to transmit Event logs and Historical data.

How is data stored in Enron Modbus?

In Enron Modbus, there is a different table for each of the different data types.

Information is stored in the Slave device in four different tables.


One tables stores on/off discrete values (boolean variables) and three tables store
numerical values.

Each value in a table has a data address and a corresponding register number.

Data Addresses Register Numbers


Type Table Name
(hexadecimal) (decimal)
03E9 to 07CF 1001-1999 Read-Write Boolean variables
0BB9 to 0F9F 3001-3999 Read-Write 16 bit Short integer variables
1389 to 176F 5001-5999 Read-Write 32 bit Long integer variables
1B59 to 1F3F 7001-7999 Read-Write 32 bit Floating point variables

Unlike Standard Modbus, in Enron Modbus the Register Numbers are equal to the
Data Addresses. For example, Register Number 7001 has Data Address 1B59(7001 in
hexadecimal). The offset is 0 for all Enron Modbus Registers.

What function codes are used in Enron Modbus?

A Function code is sent by the master to select a table and command type (read or
write).

Function Code Action Table Name (and number)


01 (01 hex) Read Boolean variables (1000)
05 (05 hex) Set Single Boolean variables (1000)
03 (03 hex) Read Numeric variables (3000,5000,7000)
06 (06 hex) Set Single Numeric variables (3000,5000,7000)

What are the formats of Enron Modbus commands and responses?


Follow the links in this table to see examples of the requests and responses.

Data Addresses Read Set Single


Boolean variables 1000 FC01 FC05
Numeric Variables 3000,5000,7000 FC03 FC06

How are events transmitted?

There are two kinds of events, Operator events and Alarm events.

Operator events are changes to mapped items. Therefore, if you want to record an
event when a certain value changes, that value must be included in the map. Inversely,
you cannot define which mapped items create events because all mapped items create
events when they are changed.

Alarm events occur when mapped items exceed limits. The limits are defined in the
Enron Modbus slave device.

The Slave device will store at least 100 of the most current events, including both
operator and alarm events.. A numeric variable called the Event Index is typically
mapped to a 7000 series numerical variable so it can be read. The Event Index is the
number of events that have occurred since the event buffer was last read.

The response from the slave will contain all the events that have occurred since the
last collection. If more than 255 events have occurred, only the earliest 255 will be
transmitted. If no events have occurred, the slave sends a response containing no data
values.

After an event transmission, the master can send an acknowledgement message to the
slave to reset the Event Index and clear the event log.

What is the format of an event request and response?

There is only one command for both types of events. The type of event is shown in the
response.

This link shows an example of the request with an Enron operator event response.

This link shows an example of the request with an Enron alarm event response.
This link shows an example of the Enron event acknowledgement request and
response.

How is history transmitted?

The Daily and Hourly Archives are lists of historical item values with specific time
stamps.
The items included in the lists are defined in the modbus map.
There are two types of history tables, Daily History and Hourly History.
The tables sizes are also defined in the slave device.

A Daily Archive table records are the values for the historical items at the end of each
day.

A Hourly Archive table records are the values at the end of each hour. Therefore an
hourly table would contain 24 times more records than a daily table for the same time
period..

Each record is given a specific record number. This number wraps back to zero when
the table fills up and the device starts writing over old data. The most current record
numbers are recoded in variables called the Hourly Index and Daily Index. These
index variables are typically included in the map as 7000 series numerical variables so
they can be read.

What is the format of a historical record request?

This link shows an example of the Enron history request and response.

In conclusion, Enron modbus is very similar to standard Modicon modbus. The main
differences include using specific data types in defined blocks of the modbus map and
using zero offset between the register numbers and the data addresses. Some specific
commands were also added to facilitate the sending of events and historical records.

You might also like