Software Configuration
Configuration for the Oracle Utilities Network Management System MultiSpeak Adapter comes from the following sources:
• CES_PARAMETERS database table;
• SCADA_IDS database table;
• SCADA_LINKS database table;
• SCADA_LINK_OPS database table;
• SCADA_SYNONYMS database table.
CES_PARAMETERS
Entries in the CES_PARAMETERS database table for the SCADA component of the Oracle Utilities Network Management System MultiSpeak Adapter should have the value
SCADAInterface in the APP column. Column
ATTRIB should contain the name of the configuration parameter and column VALUE its value. See
“Overriding Configuration Parameters” for more information.
Common Configuration Parameters
The following table describes the common configuration parameters.
Per SCADA System Configuration Parameters
The following configuration parameters are configured individually for each SCADA system the adapter is communicating with. Names of such parameters are prefixed with the name of the SCADA system they apply to (value from the SCADA_NAME column in the SCADA_IDS table).
Authentication with the SCADA System
The SCADA component of the Oracle Utilities Network Management System MultiSpeak Adapter passes credentials to the SCADA system in the UserID and Pwd fields of the MultiSpeak message header.
Note: Other MultiSpeak message header fields can be set by using desired field name in the parameter name.
JNDI Name for JMS Connection Factory
When JMS transport is used this parameter defines JNDI name of the JMS connection factory used for NMS to SCADA data flows.
JMS Connection Credentials
These parameters are used if credentials are required to establish connection to JMS server. They are passed to the createConnection method of JMS connection factory.
SCADA System Plugin Class
Plugin class is a Java class, which encapsulates functionality of the adapter, which is specific to a particular SCADA system.
Support for Tags
These parameters control tag-related data flows.
<idx> - suffix used to make parameter name unique; any value can be used as long as resulting configuration parameter name is unique.
Synchronization Sequence Timeout
This parameter limits how long synchronization sequence can last. If this value is exceeded then link failure is declared.
Automatic Synchronization of Measurements Values
SCADA systems can have large number of analog measurements and synchronizing those can be a lengthy task. This configuration parameter allows analog measurements to be excluded from automated synchronization sequence, which is executed when connection to SCADA system is established.
It is always possible to manually trigger synchronization of analog measurements regardless of the value of this parameter.
Adapter Status Alarm Messages
NMS MultiSpeak adapter can generate system alarms to alert NMS operator about following conditions:
• Adapter has been started
• Adapter has been stopped
• Connection to SCADA system has been established
• Connection to SCADA system has failed
• Synchronization sequence has finished
If alarm text is not configured then corresponding alarm will not be generated.
Dynamic SCADA Point Configuration
When SCADA system has knowledge of NMS device aliases or device handles it is possible to have process of SCADA point configuration to be performed by the adapter as part of integrity check. New SCADA points are added to the database tables ANALOG_MEASUREMENTS, DIGITAL_MEASUREMENTS and SCADA_MEASUREMENTS_ST. Orphaned SCADA points can be removed from the SCADA_MEASUREMENTS_ST database table.
No additional actions are required for new SCADA points to take effect (users may have to refresh SCADA Summary to see new points). Command 'UpdateDDS -recacheMeasures' need to be executed to propagate record deletions to runtime tables (ANALOG_MEASUREMENTS and DIGITAL_MEASUREMENTS).
In order for dynamic SCADA point configuration to be possible SCADA system plugin must implement buildScadaPointId and parseScadaPointId methods.
Sending Device Status Information from NMS to SCADA
The adapter can be configured to send NMS device status information to SCADA system. List of NMS devices classes has to be configured to enable this functionality (<scada name>.outgoing_status.class.<idx> parameter).
Class inheritance is taken into account so if a device class is configured to have status changes to be sent to SCADA system then status changes for all the child classes would also be sent out.
For conductors quality value in the outgoing message is set to Other. In all other cases quality value is not set.
Status information for inline jumpers is reported as status on the underlying conductor.
Point-to-point jumpers are not supported.
<idx> - suffix used to make parameter name unique; any value can be used as long as resulting configuration parameter name is unique.
Synchronization Method
The SCADA component of the Oracle Utilities Network Management System MultiSpeak Adapter supports two methods of synchronizing device statuses and measurements with the SCADA system: synchronous and asynchronous.
Device Operation Time During Synchronization
When synchronizing device statuses with the SCADA system the SCADA component of the NMS MultiSpeak Adapter can use either device operation time reported by SCADA or the synchronization time to report device operations to NMS. .
SOAP Protocol Version
Oracle Utilities Network Management System MultiSpeak Adapter can use SOAP protocol versions 1.1 or 1.2.
Outbound Controls
The SCADA component of the Oracle Utilities Network Management System MultiSpeak Adapter supports sending control requests to the SCADA system.
Heartbeat Interval
The SCADA component of the Oracle Utilities Network Management System MultiSpeak Adapter periodically sends PingURL message to the SCADA system to check status of the link. Heartbeat failure causes adapter to switch to alternate link (if available).
Support for Operating Non-SCADA Devices in the NMS Model
If set to 'true' this configuration parameter allows SCADA system to operate devices, which are not SCADA-telemetered, in NMS model. For this to be possible the adapter must be able to derive NMS device handle from SCADA point id. In addition if dynamic point configuration is enabled, then SCADA plugin must implement 'isScadaPoint' method to allow adapter to distinguish between status updates for SCADA and non-SCADA devices.
Obtaining a List of Configured SCADA Points
SCADA system can retrieve list of SCADA points configured in NMS for that particular SCADA system using the GetAllSCADAPoints MultiSpeak operation. The information is returned in blocks and the caller may have to invoke this operation multiple times to retrieve all configured points.
Own Web Service URL
There are cases when the SCADA component of the Oracle Utilities Network Management System MultiSpeak Adapter needs to send an URL of its own web service to the SCADA system. For example, when sending asynchronous request to the SCADA system, it needs to provide a URL where the response should be sent when the results become available.
SCADA_IDS
This database table is used to configure the list of SCADA systems that the adapter will be communicating with. For SCADA systems compatible with this adapter, the column ADAPTER_TYPE should have value MULTISPEAK.
Example
INSERT INTO scada_ids (id, scada_name, adapter_type, active)
VALUES (200, 'SCADA1', 'MULTISPEAK', 'Y');
INSERT INTO scada_ids (id, scada_name, adapter_type, active)
VALUES (201, 'SCADA2', 'MULTISPEAK', 'Y');
SCADA_LINKS
This database table is used to configure communication links to the SCADA systems. It is allowed to configure multiple links to a single SCADA system. If one link fails the adapter will switch to another one in the order determined by the PRIORITY field (only one link is active at any given time). HTTPS and JMS links are supported.
• For HTTP links, the WS_URL column is used to specify the URL of the SCADA system web service.
• For JMS links, the columns REQUEST_QUEUE and RESPONSE_QUEUE are used to specify the JNDI names of the JMS queues used to send requests to and receive responses from the SCADA system.
• The value in the TIMEOUT column controls how long the adapter should wait for a response from the SCADA system (in seconds). This is only applicable to JMS links. The maximum allowed value is 3600 (1 hour).
• The value in the PERSISTENT column defines the delivery mode for JMS messages. If set to 'Y' then JMS messages are persistent, otherwise they are not persistent. By default messages are not persistent. This is only applicable to JMS links.
• The value in the SITE column should contain the site name, as also used in the CES_PARAMETERS table.
Example
INSERT INTO scada_links (id, scada_id, ws_url, timeout, priority,
active, site)
VALUES (1, 200, 'http://scada-server1:8088/SCADA', 30, 1, 'Y', 'SiteA');
INSERT INTO scada_links (id, scada_id, ws_url, timeout, priority,
active, site)
VALUES (2, 200, 'http://scada-server2:8088/SCADA', 30, 2, 'Y', 'SiteA');
INSERT INTO scada_links (id, scada_id, request_queue, response_queue,
timeout, persistent, priority, active, site)
VALUES (3, 200, 'queue/ScadaRequest', 'queue/ScadaResponse', 30, 'N',
3, 'Y', 'SiteA');
SCADA_LINK_OPS
This table can be used to configure communication parameters differently for individual outgoing web service operations. If an operation does not have a record in the SCADA_LINK_OPS table then values from the parent SCADA_LINKS record are used.
• Column LINK_ID is the foreign key into the SCADA_LINKS table.
• Column OPERATION is used to specify web service operation name. Supported operation names:
• PingURL
• GetMethods
• InitiateAnalogReadByPointID
• InitiateStatusReadByPointID
• InitiateTagReadByPointID
• InitiateControl
• GetAllSCADAAnalogs
• GetAllSCADAStatus
• GetAllSCADATags
• SCADAStatusChangedNotification
• SCADAStatusChangedNotificationByPointID
• StatusChangedNotificationByPointID
• HighlightObjectInDisplay
• SCADATagChangedNotification
• TagChangedNotificationByPointID
For HTTP links, the WS_URL column is used to specify the URL of the SCADA system web service. For JMS links, the columns REQUEST_QUEUE and RESPONSE_QUEUE are used to specify the JNDI names of the JMS queues used to send requests to and receive responses from the SCADA system.
• Value in the TIMEOUT column controls how long the adapter should wait for response from SCADA system (in seconds). Maximum allowed value is 3600 (1 hour).
• Value in the PERSISTENT column defines delivery mode for JMS messages. If set to 'Y' then JMS messages are persistent, otherwise they are not persistent. By default messages are not persistent.
• The value in the SITE column should contain the site name, as also used in the CES_PARAMETERS table.
Example
INSERT INTO scada_link_ops (id, link_id, operation, request_queue,
response_queue, timeout, persistent, site)
VALUES (31, 3, 'PingURL', 'queue/ScadaRequest_PingURL',
'queue/ScadaResponse_PingURL', 30, 'N', 'SiteA');
INSERT INTO scada_link_ops (id, link_id, operation, ws_url, timeout,
persistent, site)
VALUES (32, 4, 'GetMethods', 'http://scada-server:8080/GetMethods',
30, 'N', 'SiteA');
SCADA_SYNONYMS
This database table is used configure mapping of different data elements between SCADA and NMS systems. The SCADA_ID column should always be populated with the id of the SCADA system (value of the ID column in the SCADA_IDS table) the mapping applies to.
Device Status Mapping
By default the adapter maps MultiSpeak device status values 'Open' and 'Closed' to the corresponding device statuses in NMS and ignores all other device status values defined by MultiSpeak 4.1 specification. SCADA_SYNONYMS table allows customization of device status mapping by associating MultiSpeak device status value to a combination of NMS device status and quality code.
The MultiSpeak device status value should be entered into the KEYWORD column. The NMS device status value should be entered into the STATUS_VALUE column. Valid values are 'Open', 'Closed' or NULL.
If this column is NULL, the device status in NMS will not be affected.
The NMS quality code should be entered in the INT_VALUE column. It will be combined with the quality code received in the MultiSpeak message. The PROCESS_TYPE should be 'S'.
The following example maps the 'Travel' device status received from SCADA to quality code 8192 and keeps device status in NMS unchanged.
INSERT INTO scada_synonyms (id, scada_id, keyword, status_value, int_value, process_type)
VALUES (tmp_seq.nextval, 200, 'Travel', null, 262144, 'S');
Attribute Mapping
Attribute mapping is used when SCADA point ID does not uniquely identify both NMS device and attribute. SCADA attribute name/key should be entered into the KEYWORD column. NMS attribute key should be entered into the INT_VALUE column. PROCESS_TYPE should be 'D' for digital measurements and 'A' for analogs.
Example
INSERT INTO scada_synonyms (id, scada_id, keyword, int_value, process_type)
VALUES (1, 200, 'faultIndicator', 23, 'D');
INSERT INTO scada_synonyms (id, scada_id, keyword, int_value, process_type)
VALUES (2, 200, 'Amps', 1012, 'A');
An additional method for configuring mapping for digital measurements is available. It applies specifically to the case when digital measurement is submitted to NMS via SCADAStatusChangedNotification, SCADAStatusChangedNotificationByPointID or StatusChangedNotificationByPointID operation. This is only possible when SCADA point id uniquely identifies digital measurement in NMS.
SCADA attribute name/key should be entered into the KEYWORD column.
NMS attribute name should be entered into ATTRIBUTE_ALIAS column.
Status value received from SCADA should be entered into STATUS_VALUE column.
Corresponding NMS attribute value should be entered into INT_VALUE column.
PROCESS_TYPE should be 'D'.
Column VALUE is not used.
Example configuration for AutoReclose digital attribute. Receiving status 'Open' from SCADA would set AutoReclose attribute for a device to 1. Receiving status 'Closed' from SCADA would set AutoReclose attribute for a device to 0.
INSERT INTO scada_synonyms (id, scada_id, keyword, int_value, process_type,
attribute_alias, status_value, value)
VALUES (247, 200, 'AutoReclose', 1, 'D', 'AutoReclose', 'Open', 'On');
INSERT INTO scada_synonyms (id, scada_id, keyword, int_value, process_type,
attribute_alias, status_value, value)
VALUES (248, 200, 'AutoReclose', 0, 'D', 'AutoReclose', 'Closed', 'Off');
Quality Code Mapping
The SCADA quality value should be entered into the KEYWORD column. The MultiSpeak 4.1 specification defines the following quality values: Measured, Default, Estimated, Calculated, Initial, Last, and Failed.
The NMS quality code should be entered into the INT_VALUE column (lower 11 bits are reserved for NMS-specific quality codes).
The PROCESS_TYPE should be 'Q'.
Example
INSERT INTO scada_synonyms (id, scada_id, keyword, int_value, process_type)
VALUES (3, 200, 'Measured', 4096, 'Q');
Tag Type Mapping
For incoming SCADA tags:
The SCADA tag type should be entered into the KEYWORD column.
The NMS condition class name should be entered into VALUE column.
For outgoing NMS conditions:
NMS condition class name should be entered into the KEYWORD column.
SCADA tag type should be entered into the VALUE column.
The PROCESS_TYPE should be 'C'.
Examples
Incoming
INSERT INTO scada_synonyms (id, scada_id, keyword, value, process_type)
VALUES (11, 200, 'Hold', 'hold', 'C');
INSERT INTO scada_synonyms (id, scada_id, keyword, value, process_type)
VALUES (12, 200, 'Tag', 'tag', 'C');
INSERT INTO scada_synonyms (id, scada_id, keyword, value, process_type)
VALUES (13, 200, 'Clear', 'clear', 'C');
Outgoing
INSERT INTO scada_synonyms (id, scada_id, keyword, value, process_type)
VALUES (21, 200, 'hold', 'Hold', 'C');
INSERT INTO scada_synonyms (id, scada_id, keyword, value, process_type)
VALUES (22, 200, 'hot', 'Hot', 'C');
INSERT INTO scada_synonyms (id, scada_id, keyword, value, process_type)
VALUES (23, 200, 'note', 'Note', 'C');
CORBA Publisher Configuration for Outbound Controls
If the SCADA component of the Oracle Utilities Network Management System MultiSpeak Adapter is configured to allow outgoing controls to SCADA system, the 'scada-controls' source should be present and active in the PUBLISHER_SOURCES database table.
Example
INSERT INTO publisher_sources(source_id, source, active)
VALUES(16, 'scada-controls', 'Y');
SCADA Point Configuration
The SCADA component of the Oracle Utilities Network Management System MultiSpeak Adapter loads SCADA point configuration from the ANALOG_MEASUREMENTS and DIGITAL_MEASUREMENTS database tables. It normally happens during initialization. The adapter can be forced to reload the SCADA point configuration during runtime using the following command:
Action -java multispeak.SCADA reload
The synchronization sequence will be automatically started after the SCADA point configuration is reloaded.
SCADA Configuration for Bellwether Meters
In order for the reading from bellwether meters to be reflected in NMS they need to be configured as SCADA measurements in the SCADA component of the NMS MultiSpeak adapter. The following set of steps should be used to perform such configuration.
1. Add entry to the SCADA_IDS table. The entry should match the 'config.bellwether_scada_name' configuration parameter of the AMR component of the NMS MultiSpeak adapter.
2. Add entries to the SCADA_MEASUREMENT_ST table for the measurement values coming from bellwether meters. The RTI_ALIAS field must be populated using format "<meter id>-<field name>", where <meter id> is the NMS meter identifier (AMR_CU_METERS.METER_ID) and <field name> is the meter reading field name coming from the AMR system (e.g., "Voltage").
3. Populate SCADA_SYNONYMS table with attribute mappings.
4. Populate SCADA_SYNONYMS table with quality code mappings. The quality code for meter readings is always "Measured."
Note: Do not populate SCADA_LINKS table to indicate that this is "input-only" SCADA system. It will prevent MultiSpeak adapter from attempting to send heartbeat requests to the AMR system.