Information Model
Database Schema
SCADA_POINTS Database Table
The SCADA_POINTS table is an optional table that can either be populated via the model build process or via a project specific mechanism. It can be used to populate the scada_measurements_st staging table via the scadapop executable.
The schema for this table is defined in the file ces_retain_scada.sql.
SCADA_IDS Database Table
The SCADA_IDS table identifies a specific SCADA name with a numeric ID that is used for RTAdapter (and other) SCADA adapter configuration.
The script, OPAL_scada.sql, populates generic SCADA sources for the OPAL model. A source is any SCADA system that can provide information to the adapter. There could be one SCADA source defined for each of multiple SCADA vendors, or a utility may choose to divide their territory into multiple regions, with each region acting as a separate SCADA source. Each SCADA source must have a name as well as a unique integer ID.
SCADA_SYNONYMS Database Table
The SCADA_SYNONYMS table contains all the synonyms for attribute name or values (e.g., KV_3, AMP_A, and CLOSE) used by RTAdapter in processing SCADA data input.
For each implementation, define the customer specific <project>_scada.sql file to specify the required synonyms.
SCADA_STATES Database Table
This table exists to allow for entering a character string in place of a more obscure integer. For example 'DEVICE_CLOSE' instead of 2, ABC instead of 7 for phases, etc.
OPAL_scada.sql defines commonly used entries .
SCADA_DIGITAL_IN Database Table
The scada_digital_in table can be used by RTAdapter to queue incoming digital SCADA updates. RTAdapter, if configured to do so, will periodically poll this table and check for unprocessed rows (status='N'). If unprocessed rows are found, RTAdapter will attempt to update the model according to data provided. Note that the database sequence scada_digital_in_sequence must be set up properly to create the primary key (scada_digital_in.id) value on insert.
If the -retain option is not used, records are always deleted after they are processed and the only record of any failure is in the RTAdapter log itself. It is generally recommended that production systems run this way (i.e., without the -retain option).
If the -retain option is used all rows are retained in the SCADA_DIGITAL_IN table. Processed records have scada_digital_in.status column set to "S" after they are processed. If an error occurs the scada_digital_in.status column will be set to 'E', and the scada_digital_in.error_code and scada_digital_in.error_description columns should be populated with some indication of the problem.
Note that use of the -retain option is not generally intended as a production option; rather it is a temporary mechanism to help validate/test the interface. With the -retain option, a busy (noisy) SCADA system can cause the scada_digital_in table to grow without bound. This (size of the scada_digital_in table) must in turn be managed by the customer, which creates a maintenance issue.
If scada_digital_in.attribute is a numeric, it must match a valid NMS attribute number (for example, 0 is topology status). If non-numeric, both the scada_digital_in.attribute and scada_digital_in.operation values must be properly defined in the scada_synonyms and scada_states tables.
One of three methods can be used to identify a specific NMS attribute measurement.
SCADA_ANALOG_IN Database Table
The scada_analog_in table can be used by RTAdapter to queue incoming analog SCADA updates. RTAdapter, if configured to do so, should periodically poll this table and check for data that has changed since the last update of the scada_analog_in.capture_date column. If potential updates are found RTAdapter will attempt to update the model according to the data provided. If an error occurs an error is written to the RTAdapter log file. If the update is successful no changes are made to the scada_analog_in table. This is to support the idea of continuous update of the scada_analog_in table from an external entity. The scada_analog_in table can be updated many times between RTAdapter scans. RTAdapter will "harvest" whatever appears to have changed since the last scan. It is expected that some form of merge statement would be used to update the scada_analog_in table - inserting if a record does not exist and updating otherwise - which triggers an update on the capture_date column.
One of three methods can be used to identify a specific NMS attribute measurement.
SCADA_MEASUREMENTS_ST Database Table
SCADA_MEASUREMENTS_ST is a staging table used to capture relevant information for each measurement attribute. It can be populated via the scadapop executable (discussed previously in this document) or via project specific means. It can be completely rebuilt at will as it is NOT a run-time table. The "updateDDS -recacheMeasures" utility sends a message to DDService to merge measurements defined in this table with the run-time analog_measurements and digital_measurements tables.
ANALOG_MEASUREMENTS Database Table
The ANALOG_MEASUREMENTS table is a run-time table generally maintained by DDService.
DIGITAL_MEASUREMENTS Database Table
The DIGITAL_MEASUREMENTS table is a run-time table generally maintained by DDService.