ClearSCADA

ClearSCADA contains both a Modbus and SCADAPack Modbus protocol driver.  While both protocols can read from generic Modbus devices, there are differences in the polling methodology used in each.

Modbus (and Modbus Slave) are both simple drivers. The Modbus driver uses a specific polling methodology (the Modbus Slave driver does not poll data). SCADAPack Modbus is an advanced driver and uses a different polling methodology. Both polling methodologies are described below.

Modbus Driver Polling Methodology

The Modbus driver scans a defined range of registers. You can specify the range when you configure a Modbus scanner in the ClearSCADA database (in the Data Address and Data Length fields). Each Modbus scanner item instructs the Modbus driver to poll data.

The configuration of the Modbus scanner defines:

  • Which types of register are to be polled (the Location setting)
  • How many registers are to be polled (the Data Address and Data Length settings)
  • When the registers are to be polled (defined in the various Normal Scan Rate and Promoted Scan Rate fields).

By adjusting the configuration of the Modbus Scanner, you can control the amount of data that is polled and the frequency of polls.

The Modbus driver always polls the entire range of registers (the range defined by the Data Address and Data Length settings in the Modbus Scanner configuration). So, if the Location is Input Discretes, the Data Address is 10 and the Data Length is 15, the Modbus driver will poll 15 registers, starting from the 10th register in the Input Discrete range. As the Input Discrete range is 100001 to 165536, this means the Modbus driver will poll the address range 100011 to 100026.

For more information on Modbus configuration, see the ClearSCADA Help.

SCADAPack Modbus Polling Methodology

The SCADAPack Modbus driver is an advanced driver and uses different settings to determine what registers are polled and when they are polled.

Each SCADAPack Modbus point has a unique address that corresponds to a register in the Modbus outstation. The address is defined the point configuration, along with an association with a Retrieval Interval (the time scales for the Retrieval Intervals are defined in the configuration for the Modbus outstation). These configuration settings define which registers are polled and how often they are polled.

Unlike the simple Modbus driver, the SCADAPack Modbus driver dynamically creates the start register for the poll and the amount of data to poll, based on the configuration settings of the point. This means that it can poll individual registers and does not have to poll all registers in a range. For example, the SCADAPack Modbus driver can poll registers 30001 and 30050 without polling registers 30002, 30003, 30004 and so on. (Note that this can also be achieved with the simple Modbus driver, but it involves extra configuration work as you need to create and configure separate Modbus Scanners for each non-sequential register. For example, to poll registers 30003, 30004, 30009, you would need to configure 2 Modbus Scanners: 1 scanner for the sequential registers, 30003 and 30004, and another scanner for register 30009. With the SCADAPack Modbus driver, you only need to configure a single controller).

When the SCADAPack Modbus driver is required to poll sequential registers, it is more efficient to poll the entire range rather than poll each individual register. For this reason, the SCADAPack Modbus driver allows a maximum 'gap' of 4 registers or 40 coils depending on the type of data being polled. So, if the SCADAPack Modbus driver is to poll registers 30001, 30003, and 30004, it will poll them at the same time rather than individually as the 'gap' is less than 4 registers. If the SCADAPack Modbus driver had to poll registers 30001, 30003, and 30050, it would poll 30001 and 30003 together and poll register 30050 separately as the 'gap' between 30003 and 30050 is greater than 4 registers.

If the SCADAPack Modbus points are configured to use different Retrieval Intervals, the SCADAPack Modbus driver will poll each register individually according to the point's Retrieval Interval. However, if the 'gap' is less than 4 registers, and the registers are to be polled at the same time (despite having different Retrieval Intervals), the SCADAPack Modbus driver will poll both registers in a single request.

For example, Point A is configured with the Address 30002 and is associated with Retrieval Interval 2 (which is configured to be 2 seconds in the outstation configuration. Another point, Point B, is configured with the Address 30005 and is associated with Retrieval Interval 3 (which is configured to be 5 seconds).

After 2 seconds, the SCADAPack Modbus driver polls Point A.
After 4 seconds, the SCADAPack Modbus driver polls Point A.
After 5 seconds, the SCADAPack Modbus driver polls Point B.
After 6 seconds, the SCADAPack Modbus driver polls Point A.
After 8 seconds, the SCADAPack Modbus driver polls Point A.
After 10 seconds, the SCADAPack Modbus driver polls both Point A and Point B in a single request.

For more information on SCADAPack Modbus configuration, see the ClearSCADA Help.