Generic SCADA Adapter Configuration
RDBMS vs. File Mode
Each Generic SCADA Adapter instance can process input from either Network Management System RDBMS queuing tables (preferred) or from flat files, but not both. A Network Management System can support multiple file-based RTAdapter instances, but only one RTDBAdapter (configured for RDBMS input).
RDBMS mode: The external SCADA system writes SCADA updates to a set of RDBMS queuing tables. Updates are processed by RTAdapter on a first-in-first-out basis.
File mode: Each external SCADA system writes SCADA "scan files" to a dedicated directory that an appropriately configured RTAdapter can access in read/write mode. Incoming "scan files" are processed on a first-in-first-out basis.
Configure Adapter to Run as an NMS System Service
Configure the Generic SCADA Adapter to run as an Oracle Utilities Network Management System service by updating the $NMS_HOME/etc/system.dat file to include the Generic SCADA Adapter as a system service. There are three main sections of the system.dat file where a service needs to be defined: the service, program, and instance sections.
See the $NMS_BASE/templates/system.dat.template file for examples of how to configure the Generic SCADA Adapter. Search for RTAdapter in the file and copy those lines to $NMS_HOME/etc/system.dat file. Make sure all lines are uncommented so SMService will find them as active. You must either restart SMService or start SMService with a "-f system.dat" command line option to pick up changes to the $NMS_HOME/etc/system.dat configuration file (it looks in the $NMS_HOME/etc directory by default).
Notes: The adapter process is often given a configuration name adapted from the SCADA system from which it is receiving data. Reference the RTDBAdapter configuration option in the $NMS_BASE/templates/system.dat.template for an example of this type of configuration. The first parameter after the keyword program must match the -process_name parameter. The -scada option specifies the name of the SCADA for this instance of the RTAdapter (from the SCADA_IDS table) and often matches the -process_name option (though this is not required).
SRS_RULES Configuration for Generic SCADA Adapter
The Generic SCADA Adapter currently supports a few options that can only be configured via the Network Management System SRS_RULES mechanism. The Configuration Assistant tool provides rule specific details on what impact these SRS_RULES have on how the Generic SCADA Adapter responds to various forms of input. The adapter reloads SRS_RULES configuration when Service Recache button is clicked in Configuration Assistant.
Note: Only the rule names are listed here; use the Oracle Utilities Network Management System Configuration Assistant's Event Management Rules tab for details and to update the rules, if necessary.
RT_PLANNED_OUTAGE_QUALITY
RT_STALE_PROCESSING_CYCLE
RT_CALCULATED_POINTS
RT_CALCULATED_POINT
RT_CONDITIONS_IN
RT_CONDITIONS_OUT
RT_RESPONSE_IN
RT_IGNORE_TIMESTAMP
RT_HEARTBEAT_CYCLE
RT_LEC_KEY
Command Line Options for Generic SCADA Adapter
The command line for the Generic SCADA Adapter provides the following options:
Command Line Option
What it does
-cert_file <full path to certificate>
The private certificate used for incoming device/screen navigation messages from the SCADA system. This is the server's private key concatenated with its certificate, as used by GSOAP.
-client_cert
Whether to require public certificates for incoming screen navigation messages from the SCADA system. This is the client key concatenated with the certificate.
-controls <script name>
Tells RTAdapter to call this project/SCADA specific script when NMS outbound control requests (digital open/close or analog set point control) are made. This script is typically customized to trigger a SCADA specific action on the external system.
Note: this option MUST be set for RTAdapter to do any processing of outbound control requests.
-debug
Enable debugging. Other common facility specific debug options are also possible. Common options include:
-debug RT_NFY 1 # debug for notify messages
-debug RT_CALC 1 # debug for calculated points
-debug RT_CTRL 1 # debug for control msg processing
-debug RT_PROC 1 # debug for outage processing
-debug RT_WATCH 1 # debug to track high-level activity
-debug RT_COND 1 # debug for condition processing
-debug RT_STALE 1 # debug for stale processing
-delimiter <char>
Allows a project to override the default input delimiter character (|) with the specified character.Used for file based input and, potentially, for setting multiple external quality code strings, which must be mapped back to integers internally, via RDBMS‑based input.
-dir <directory>
For file based input this is the directory containing scada data export scan files.
For RDBMS based input this must be set to 'RDBMS'.
(Required)
-idle <cycles>
Number of processing cycles to wait without processing any data before sending an alarm.
-interval <interval>
Seconds between processing (polling) cycles.
(Required)
-lock
Use file locking to prevent file overwrite during file read (if scan file names are not unique). File based input only.
-no_analogs
Do not scan the scada_analog_in table or process analogs.
-noStaleProcessing
Do not generate stale quality codes. This is useful primarily in testing and training environments when you have two instances of the adapter configured to use the same SCADA points, and you do not want them to both generate conflicting stale quality flags.
-offline
For testing purposes - when a control request is received - simulate the external SCADA system and operate the device.
-offlineDelay <seconds>
Seconds between receiving a CONTROL request (in offline mode) and responding. Used to help simulate an actual SCADA system.
-operate
Operate (change status of) model devices, otherwise generates pseudo alarms only.
-process_name <name>
Network Management System message bus process name for this process. If the first parameter after the keyword program in the first column of the system.dat file is something other than the second parameter, then you must set the ‑process_name option to the same string as the first parameter. This is only necessary if you need to run more than one instance of RTAdapter or you want RTAdapter to be known as some other name within the Network Management System messaging bus. Network Management Process message bus process names must be unique.
-retain
For RDBMS input only. Retain data in the scada_digital_in, scada_condition_in, and scada_response_in tables after data is processed. Generally for validation/debug - not general purpose production use or long term logging.
-scada <scada>
External SCADA name. (Required). Must match an active SCADA entry in the scada_ids table (scada_ids.scada_name).
-watch <level>
Show data being processed, minimal info. <level> is an integer that maps to the RT_WATCH debug facility.
-config <scada>
When used to support the NMS MultiSpeak adapter we want RTAdapter and MultiSpeak to process the "same" measures from a scada_id perspective. This option allows specification of an alternate scada (which must still be an active scada_name entry in the scada_ids table). Using this option allows run-time configuration for the RTAdapter and MultiSpeak adapters in the scada_synonyms, scada_states and scada_links tables to NOT overlap.
-dbname <dbname>
Name of DBService process used by RTAdapter. Default is DBService.
 
-noStaleProcessing
Do NOT generate stale quality code for measurements.
 
 
Scripts Used by the Generic SCADA Adapter
The Generic SCADA Adapter calls various scripts to communicate and coordinate with an external SCADA system. Example scripts are provided. The example scripts use curl and expect the external SCADA systems will support some form of RESTful Web Service integration. You can create project-specific versions/variations of these scripts that are appropriate for a specific SCADA system.
 
Script
Description
rti‑notify‑start
Notifies the SCADA system that the Generic SCADA Adapter has restarted. Call from RTAdapter on restart.
rti‑operate
Example script for use with the RTAdapter controls option (for example, ‑controls rti‑operate). This script can either forward to SCADA or simulate a SCADA positive response when device control requests are sent from NMS. The rti-operate-curl script is a simplified version of the rti-operate script. It is an example of how to use curl to call an external system to propagate NMS initiated device operation requests to an external system. Either script (or a project alternative) can be specified via the "-controls <script>" command line option.
rti-pseudo
pseudo measures are not actually telemetered from the field but may be maintained manually within a SCADA system. NMS identifies a pseudo measurement as having the corresponding scada_measurements_st.ttl=2. If a pseudo measure is changed by an NMS operator this script will be called to support optional propagation of the update to the external SCADA system.
scada‑reload
Notifies the SCADA system that the set of measurements has changed due to an NMS model build.
rti‑operate‑curl
Another example script for use with the RTAdapter controls option. Sends the control request to the SCADA system as a RESTful web-service request via curl.
rti-condition
If RTAdapter is configured to propagate conditions (via the RT_CONDITIONS_OUT srs_rule) and a new/updated NMS condition inherits from the scada_out_tag abstract NMS class, this script will be called to propagate the condition.
rti-emulator
Another example -controls <script> that can be used in conjunction with EMService to help simulate an external SCADA system.
 
CES_PARAMETERS Configuration
The adapter needs to be restarted for CES_PARAMETERS configuration changes to take effect.
Parameter
Description
SCADA_URL
Used to identify the external SCADA. RTAdapter will send navigation and SCADA controls to the SCADA system via this URL. The SCADA_URL should be the root URL. The scripts will add instruct, reload, navigate, etc. to the URL as needed. This is a site‑specific parameter. Legacy support only; not typically used.
SCADA_CERT
The certificate to connect to the SCADA system. This is the client piece of a certificate generated by the SCADA system. This is a site‑specific parameter. Legacy support only; not typically used.