Get MBLogic at SourceForge.net. Fast, secure and Free Open Source 
	software downloads

Help Topics

Topic Details for General

Help - Data Table


Overview:

The "System Data Table" is a central array of memory which all data servers and clients and other components read or write from or to as the source or destination for each of their operations. You need to understand the system data table in order to know how to configure and use the system.


Address Range:

The system data table has both bit (digital) and word (register) addresses. It is laid out according to standard Modbus convention. Alternative protocols may label the addresses differently according to their individual requirements, but the data table remains the same (note though that the soft logic system has its own independent data table). The system data table has the following address ranges:

Each address type occupies a separate and independent block of memory.

Data Table


Expanded Holding Register Map:

Holding registers have an expanded register map. This does not affect the Modbus server protocol, which is still limited to a maximum address of 65,535. This is the system data table, which is the internal memory. The expanded holding register map is intended for applications which need to store large amounts of data in the data table.

Most sub-systems are able to access the expanded addresses directly as they have no inherent address limits. The Modbus/TCP server can access the expanded register addresses by using address offsets based on the unit ID. Details of this feature are discussed in the section on server configuration.


Reserved Addresses:

Some addresses are reserved for special functions. This includes the fault monitoring system that reserves the upper 256 coils for resetting client faults.


Reporting Communications Faults Via the Data Table:

In the communications configuration, the user can specify a set of addresses for each communications client to be used for reporting client communications errors. Each time an error is detected, these addresses are updated to indicate the error. The same error is reported all four discrete input, coil, input register, and holding register addresses. The system repeats this information to several different addresses to allow for more convenient reading of this information (the addresses can be located to be adjacent to other information which is already being read).

For discrete inputs and coils, an "off" ("0") value indicates no fault, while an "on" ("1") value indicates a fault. For input and holding registers, a "0" value indicates no fault, while a non-zero value indicates a fault. The actual value used to indicate a fault will be protocol dependent. For Modbus, the fault number is stored in the upper byte, and the exception number is stored in the lower byte.

Fault information will be overwritten by later faults, but it will not be reset unless specifically requested.

Fault indication can be reset by writing to a special set of coil addresses. In the data table, a range of coil addresses is regularly monitored to see if any of them have been turned on. If one or more has been turned on, the system will look to see if they have been associated with a particular client fault configuration. If so, the associated fault indication addresses will be reset, and the reset coils will also be reset.

Any coils which are in the monitored range will be turned off regardless of whether or not they are associated with a fault configuration. This means that coils which are not used for fault reset may still not be used for any other purpose. Writing to a coil in the monitored range but which is not configured will not result in an error, but it will result in that coil being automatically reset.

The monitored coils are located in the upper 256 coil addresses (65279 to 65535). They are monitored once every few seconds (approximately every 2 seconds). This means that it may take up to approximately 2 seconds for a fault reset to complete once it has been requested.