MultiSpeak Support
The MultiSpeak® communication protocol defines a web services-based standard for exchange of data between SCADA and various services required by electric utilities, such as outage management.
VTScada uses a subset of the MultiSpeak specification to support selected methods required by the Milsoft™ DisSPatch® outage management system and has received a MultiSpeak 4.1.6 Interoperability certificate from Milsoft for DisSPatch. It does not support all devices using the MultiSpeak protocol.
For a little bit of background, MultiSpeak is a service (not a driver, it does not have a tag). It uses SOAP services (Simple Object Access Protocol) over HTTP as a means of communicating between systems so it must use the HTTP available in VTScada. To this end, you must be prepared to configure your application for thin client access.
From there, it is your IO tags that you will be modifying to publish data to the outage management system with some MultiSpeak properties adjustable from your application configuration.
Configure your application and enable MultiSpeak:
You must complete each of the following actions to complete your MultiSpeak configuration:
Check that your license supports Remote Data Access
In the VAM, open the menu and select License Management to see which whether "Remote Data Access" is enabled by your license key.
Secure your application and grant thin client access
Secure Your Application and ensure that at least one account has the Thin Client Access privilege. You will be expected to provide this username and password to the outage management system (ie. Milsoft)
Configure a Realm and a Thin Client server
Configure a VTScada Thin Client Server and Configure a Realm. If you wish to communication over a secure connection you must install an SSL certificate for your server. This is optional but strongly recommended.
Once your thin client/server setup is complete, test it out. Click "test" next to the Anywhere URL in the Realms tab. A web browser should pop up and display a VTScada login screen. This is a quick and easy way to rule out a connection issue if there is troubleshooting to be done later.
Configure MultiSpeak properties in VTScada
-
Add the names of your Internet Realms to the application property MultiSpeakRealmNames.
-
Add the URL to which you intend to connect, to the application property MultiSpeakSubscriptionURL.
-
You may wish to limit the number of points sent at a time with MultiSpeakMaxMessagePoints
Provide directions to your I/O and Calculations tags
You must select the Publish option in each I/O and Calculations tag that will communicate with the outage management system.
For most tags, only the value is available directly. Driver tags contain seven variables in addition to the value. (Communication Driver Log-Enabled Variables) Other variables and properties can be monitored by creating an expression in an I/O and Calculations tag to mirror that variable, then publishing the calculation tag. For an example, refer to: Monitor the Alarm Status
MultiSpeakLegacyIOPublish can be enabled in applications that use legacy tags without the publish option, however, with this property enabled, all I/O tags in your application will publish. You will not be able to pick and choose.
Assuming that all of the above have been configured correctly and that there is a working connection between your VTScada server and the DisSPatch device, communication should now be enabled.
If notifications sent by VTScada have their responses successfully received from Milsoft but no outages / normalization events are reported, make sure that the Company name set in Milsoft matches the MultiSpeakMHCompanyAttribute if set or the default value "Trihedral Engineering Ltd." otherwise .
General MultiSpeak troubleshooting tools
All MultiSpeak messages can be captured in the VTScada Trace Viewer Application using the SOAP message Tracing data source.
VTScada can also maintain a diagnostics trace log for use by support staff. This has two components:
- An in-memory buffer of recent events that will be captured by a memory dump
- A log file of recent events that will never overflow (it regularly cuts out older records).
This is located at <Application Folder>\Data\TraceFiles\MultiSpeak.log
There are three settings that control the operation of the trace log:
- MultiSpeakTraceFileSize - How large the log file can get before older records are removed.
- MultiSpeakTraceLevel - How much detail to log.
- MultiSpeakTraceMemorySize - How many recent events to store in memory
This is lightweight and is designed to be left running so diagnostics can always be retrieved after a point of interest. Within the MultiSpeak service, various events are raised with a log level. If that level is at or below the MultiSpeakTraceLevel setting, the event is added to the file and the memory buffer.
In a multi-server environment, only the server sends out notifications. For support purposes, make sure the traces and logs are taken on the server and that the endpoint on the Multispeak client points mainly to the VTScada main server (and, if possible, the backup server)
Specific MultiSpeak Scenarios
In the case where your application runs on multiple workstations, VTScada will ensure that only the primary server maintains the notification queue. In spite of this there may be instances where the following can occur:
- A notification may be received multiple times by the Outage Management System.
- Some notifications may be lost.
If this is unacceptable, the configuration must specify MultiSpeakMaxMessagePoints to be exactly 1 (so that the queue length is 1) and MultiSpeakNotificationDelay to be as short as possible. This configuration will guarantee that every change in an I/O will immediately be sent to the outage management system.
If notifications sent by VTScada have their responses successfully received from Milsoft but no outages/normalization events are reported, make sure that the Company name set in Milsoft matches MultiSpeakMHCompanyAttribute if set or the default value "Trihedral Engineering Ltd.
MultiSpeakLegacyIOPublish - Set TRUE to enable MultiSpeak publishing for Legacy I/O tags
MultiSpeakMaxMessagePoints - Maximum number of ScadaPoints (tag values) to include in one message.
MultiSpeakMaxPointIDLength - Maximum number of characters for a MultiSpeak PointID.
MultiSpeakMessageRetries - Number of times a MultiSpeak notification should try again after timing out.
MultiSpeakMessageTimeout - Time for MultiSpeak notification messages to wait for a response.
MultiSpeakMHCompanyAttribute - Outgoing MultiSpeakMsgHeader Company attribute value.
MultiSpeakNotificationDelay - Time in seconds to wait before sending a notification message.
MultiSpeakPingURLProbingPeriod - Sets the frequency of checks to verify that a MultiSpeak endpoint remains available during long periods of inactivity.
MultiSpeakRealmNames - List of realm names that can accept incoming MultiSpeak messages.
MultiSpeakSubscriptionMethods - CSV list of methods for MultiSpeak notification messages.
MultiSpeakSubscriptionPassword - Password to use for MultiSpeak notification messages.
MultiSpeakSubscriptionURL - Destination for MultiSpeak notification messages.
MultiSpeakSubscriptionUsername - Username to use for MultiSpeak notification messages.
MultiSpeakTraceFileSize - Maximum size of the file trace for the MultiSpeak service in MB.
MultiSpeakTraceLevel - Diagnostic trace level for the MultiSpeak service.
MultiSpeakTraceMemorySize - Maximum size of the in-memory trace for the MultiSpeak service.