Reference Manual
×
Menu

Applications and Modbus

 
SCADASuite applications all share a common DNA. One of the features that this commonality bestows is in how the various applications interact with Modbus registers on the RTU. Each application can be considered to be a collection of configuration, control and status parameters. All parameter types are mapped to Modbus registers in a predictable and consistent way.
 
Control parameters are used to make run time changes, like invoking a manual override, or changing the operating point of a pump. Control parameters are always assigned a Modbus register, since they are required to control the application. Control parameters are writable, and as such are only assigned to holding registers (4xxxx) and coils (0xxxx);
 
Status parameters are used to monitor the state of the application. Status parameters are always assigned a Modbus register, since they are required to monitor the application. Status parameters are read only values, and as such are only assigned to input registers (3xxxx) or contacts (1xxxx).
 
Configuration parameters are used to change the configuration of an application. Configuration parameters are organized into configuration groups, and each configuration group can have multiple instances. For example, the Well Test program stores a number of gas compositions. Each gas composition group contains the same configuration parameters, where each configuration parameter is some fraction of the gas composition.
 
With versions of SCADASuite released after March 2018, each configuration group instance can be configured to export its configuration values to read only registers (Modbus input and contact registers) and can also be configured to allow configuration over Modbus via holding registers and coils. Each configuration group has its own offsets from the application's Modbus base addresses, which allows each instance to be individually located within the RTU's Modbus register space.
 
Turning these options off for a configuration group instance, which is the default option, means that the configuration group instance will not consume any Modbus registers.
 
Modbus Settings Example
 
Each application has overall Modbus settings, as shown above. If the Enable Modbus Config option is not enabled, no configuration registers will be used and no configuration group instances will be available over Modbus. This setting is a global enable for configuration of the application via modbus.
 
The base addresses specify the starting addresses for the Modbus registers used by the application. Control Parameters will automatically be assigned addresses starting at the Holding Base Address and Coils Base Address. Status Parameters will automatically be assigned addresses starting at the the Inputs Base Address and Contacts Base Address. For each configuration group instance that has interaction with Modbus enabled, registers will be assigned starting from these base addresses plus the configuration group's address offsets.
 
 
Care must be taken when changing an application's Modbus base addresses. It is possible to overwrite the Modbus map of other applications, or to locate the application's map to nonexistent registers. Use the Register Overlap Report feature to avoid conflicts.
 
Modbus settings for an application cannot be changed via Modbus. Modbus settings, like base addresses, offsets and so on can only be changed via the PC Configuration program
 
Modbus Settings - Configuration Group Instance
 
Starting in March 2018, each configuration group instance in an application has the settings shown above.
 
When the Export Configuration to Read Only Registers option is selected the current value for every parameter in the configuration group instance will be copied to read only Modbus registers. Boolean values will be exported to contacts and other values will be exported to input registers. Registers will be assigned based on the application's base address configuration and the configured offset on this instance. The values in these registers will always match the current configuration regardless of whether the configuration is changed via Modbus or via the PC Configuration program and are updated once per second.
 
 
Make sure that the Enable Modbus Config in the Modbus Settings group is enabled if you want to use configuration over Modbus. If this setting is not enabled no configuration will be available over Modbus. Configuration options must be enabled globally and on a per instance basis.
 
When the Allow Configuration Changes via Modbus option is selected a new value for every parameter in the configuration group instance will be read from Modbus registers. Registers will be assigned based on the application's base address configuration and the configured offset on this instance.
 
When configuration is enabled the program on the RTU will scan Modbus registers once per second and compare the value in the register against the currently configured value. If the values are different, the new value will be checked against the allowable range for the value. If this check fails, the current value will be copied back out to Modbus.
 
If the check is successful, the configuration group instance validation functions will be executed. An example of a group validation error would a gas composition where every component is between 0 and 1, but where the sum of all of the components is not 1. Configuration changes are not accepted until there are no validation errors. If this check is successful, the new value will be accepted and an entry will be made in the application's configuration change log.
 
Two additional coils will also be used for each configuration group instance that is configurable over Modbus. The first coil is called Export Configuration allows the user to copy the current configuration of the instance to registers. The second coil is called Validation Error and is set when a group validation error occurs.
 
To see exactly which registers are used by an application, go to the Export/Import Tab and choose the Export Modbus Register Definitions to CSV option.
 
View the application's configuration change log to see what changes are being made to the application's configuration.