Simply Modbus logo

 


Home

About
MODBUS


About
Enron
MODBUS
fc01
fc03
fc05
fc06
op event
alm event
event ack
history

RTU Master

RTU Slave

TCP Client

Download

Purchase

Contact

 

Enron Modbus

What is Enron Modbus?

How is data stored in Enron Modbus?

What function codes are used in Enron Modbus?

What are the formats of Enron Modbus commands and responses?

How are events transmitted?

What is the format of an event request and response?

How is history transmitted?

What is the format of a historical record request and response?

 

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
(hexadecimal)

Register Numbers
(decimal)

Type Table Name

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.

What else?

If you read this page, We would love to hear your comments.  Please send an email to info@simplymodbus.ca and let us know what you found helpful and what topics we could add, expand or clarify.

HomeFAQ • Enron • DownloadPurchaseContact

Copyright © 2020 Simply Modbus. All rights reserved