Scada 1
Scada 1
Scada 1
Multispeak
Installation and Editing Guide
____________________________________________
This manual describes how to install and use the Multispeak interface for
Survalent SCADA.
The content of this manual has been carefully checked for accuracy. However, if you find
any errors, please notify Survalent Technology Corporation.
Revisions
Date Description
September 7, 2006 Initial version.
March 16, 2009 Added affected relay parameter (Parameter 2) to the power factor control
interface.
February 19, 2010 Added User ID and Password fields in Virtual RTU definition (sections
4.1.15, User ID, and 4.1.16, Password).
Added new transmission options in Virtual RTU (sections 4.2.9.2, Send
All at Startup, and 4.2.9.3, Send All at Reconnection, and 4.2.9.4, Send
All Transitions).
Added parameter 7 (Send All Transitions for This Point) and parameter 8
(Time to Live) for status points in the SCADA-OA interface (Parameters in
section 4.3.3, Status Points).
July 27, 2012 Added section 5.3.3, Capacitor Control via Load Shed Commands, to
describe use of load shed commands in power factor control.
October 11, 2012 Added applicationPoint parameter for load shed commands that use
strategy names (section 5.2.1, Load Shed Points in a Load Management
Dataset).
March 23, 2013 Use Parameter 5 for start time of load shed command (section 5.2.1,
Load Shed Points in a Load Management Dataset).
Add “/lm=localtime” configuration switch to specify use of local time (as
opposed to UTC) in Multispeak shed commands (section 4.1.7,
Configuration Switches).
1 Introduction 1-1
This document describes how to install and set up the database for the Survalent Multispeak interface.
Multispeak is a family of standard interfaces between various applications from different vendors. The
purpose of these interfaces is to make it easier and less expensive for users to buy software from
different vendors and have these software packages exchange data.
The development of the Multispeak specification was a collaboration of many software vendors. The
project was sponsored by the NRECA. Information about this project and the specification itself can be
obtained at the Multispeak web site: www.multispeak.org.
Batch
Realtime
Whether the interface is batch or realtime, the data that is exchanged consists of XML. In the realtime
interfaces, the realtime communication between the applications is based on web services.
Outage Management
Engineering Analysis
Dynamic GIS Viewer
Load Management (includes Power Factor Control)
Chapter 2 describes the basic installation for Multispeak on the SCADA server.
Chapter 3 describes the installation and setup for Multispeak failover between redundant SCADA servers.
If you have only one SCADA server, you do not need to perform any of the steps described in this
chapter.
Note: The Survalent Multispeak interfaces are an implementation of the current version of the
Multispeak specification, which is version 3.0. In earlier versions, the realtime communication is
based on either SOAP or sockets. Earlier versions of the realtime interfaces are not compatible
with version 3.0.
This chapter describes how to use the Survalent Multispeak interface for Windows SCADA.
j2sdk-1_4_2_08-windows-i586-p.exe
jakarta-tomcat-4.1.31.exe
apache-ant-1.6.5-bin.zip
axis-bin-1_2_1.zip
jaf-1_0_2-upd2.zip
javamail-1_3_3.zip
soap-bin-2.3.1.zip
xalan-j-current-bin.zip
xerces-J-bin.2.6.2.zip
xmlbeans-2.1.0.zip
MSPK.zip
Multispeak Update XXXXXXXX.zip (where XXXXXXXX is a date)
Java_Mspk_Environment.txt
xmlsec-1.2.96.jar
mspk.reg
Note: Before doing the installation, stop the SCADA system and close any other applications. If
you are reinstalling or updating Multispeak, stop Apache Tomcat too.
C:\> MD J
Double-click on j2sdk-1_4_2_08-windows-i586-p.exe, and when you are asked for the destination
directory, press “Change…”.
Replace the default destination (C:\ j2sdk1.4.2_08) by "C:\J\j2sdk1.4.2_08” (i.e. insert a “J” between the
C:\ and the folder name). The final screen should look like this:
Now, double-click on the program jakarta-tomcat-4.1.31.exe. The following screen will come up:
Check the “NT Service” and “Developer Resources” checkboxes, and press Next. The following dialog
In this dialog, modify the initial part of the installation path by “C:\J”, so that the path looks as shown
below:
Set the port number to 8080. You can enter any password you want, since it will be overwritten later by
the password “scada” when the MultiSpeak component is installed. Press Finish.
After this, you can verify that your Tomcat webserver is running by opening Internet Explorer and typing in
the address "http://localhost:8080".
In order to install the Axis framework, we have to stop Tomcat and all the programs (including Scada).
The easiest way to do this is to open your Services application (under Start->Administrative Tools-
>Services in Windows 2003), select Tomcat and then press "Stop".
soap-bin-2.3.1.zip
apache-ant-1.6.5-bin.zip
axis-bin-1_2_1.zip
jaf-1_0_2-upd2.zip
javamail-1_3_3.zip
xalan-j-current-bin.zi
xerces-J-bin.2.6.2.zip
xmlbeans-2.1.0.zip
For each zip file, select the file and do a right-click. Then select “Extract All…”. The following dialog will
appear:
For each zip file listed above, change the extraction directory to “C:\J”.
MSPK.zip
Multispeak Update XXXXXXXX.msi
where the X’s represent the last update date in year-month-day format (e.g. 20061130)
For the MSPK.zip file, set an extraction path of “C:\”. Accept all of the modifications.
Execute the Multispeak Update XXXXXXXX.msi file by double-clicking on it. Use the default install
directory of C:\Program Files (x86)\Quindar\ScadaServer\.
Important:
When you extract the “MSPK.zip” file and execute the “Multispeak Update XXXXXXXX.msi”
file, some files that are used by SCADA and other programs will be overwritten. Make sure
that the SCADA system is not running and that no other application window is open in the
desktop either, including Scada Manager. Otherwise, the extraction and installation will fail.
Note that you will end up having another directory named “C:\JP”.
Now, restart the Tomcat service, and press the Tomcat Manager button in the welcome page obtained by
entering http://localhost:8080 in your browser. The following login dialog will appear. You must now use
the password “scada” (this password has overridden the one that you defined during the installation of the
MSPK.zip file).
If you scroll this screen, you should see the following Web Services:
EA_SCADASoap
OA_SCADASoap
SCADA_DGVSoap
AdminService
Version
SCADA_OASoap
SCADA_EASoap
LM_SCADASoap
SCADA_LMSoap
If all of these are present, the Java, Tomcat, Axis and MultiSpeak packages have been correctly installed.
To install the environment variables in each machine, perform the following procedure:
CD \JP
Then type:
MspkFoEnv
Alternately, you can set the variables manually. The easy way to do this is to open the
“Java_Mspk_Environment.txt” text document in Notepad, and copy and paste the directory information in
the newly created environment variables. First, select “Start >> Control Panel >> System”, and you will
see this dialog or something similar:
As you can see, there are two areas, one for the User variables and another for the System variables. In
the text document, these are also separated in this fashion. Now, press the “New” button in the User
area and you will see this dialog:
In this dialog, you must enter the variable’s name and its value. You can copy both from the text file.
NOTE: For System variable PATH, use the one that is already defined and only append the portion from
the text file, using a semicolon (“;”) as separator between the two parts.
Locate the “Mspk.reg” file in your installation CD, and right-click on it.
In the context menu that appears, select “Merge”, and then press OK.
This will define an entry in the Windows registry that will allow SCADA to start and stop Tomcat.
Edit the Tomcat service definition in the Services dialog, and change it from Automatic startup to
Manual.
To do this, go into the Services Dialog (Start -> Administrative Tools -> Services). You will see the
following dialog:
Select the Apache Tomcat 4.1 service, as shown above, right-click, and select Properties. The
following window will appear:
The test described here should be performed on the active SCADA host computer. If you have redundant
servers, you should test on each host computer while it is the active host.
To begin the test, reboot the computer you want to test and then make it the active SCADA host
computer. For the test, it doesn't matter whether the other hosts are synchronized or not.
http://localhost:8080/axis/services/SCADA_OASoap
Type the names exactly as shown, since the WebServices framework is case sensitive. Be sure that the
correct interface selection is made in the right-hand panel.
The Point IDs frame contains three fields for point names.
If you enter the name of a status point that is in your test dataset into the Status field, the interface will
use the Multispeak getSCADAStatusBySCADAPointID method to retrieve the value of the specified
status point.
If you enter the name of an analog point that is in your test dataset into the Analog field, the interface
will use the Multispeak getSCADAAnalogBySCADAPointID method to retrieve the value of the
specified analog point.
The “Last” field is used for the MultiSpeak getAllScadaPoints method. If you leave this field blank,
this method retrieves all SCADA points in the dataset up to a maximum of 100 points. To get more
st
points, you have to enter the name of the next point that you want (e.g. the 101 ) and press Test
again.
After entering the desired point names, press the Test button. The test program will call the following
Multispeak methods:
PingURL
GetMethods
GetAllScadaPoints
GetSCADAStatusBySCADAPointID
getSCADAAnalogBySCADAPointID
The Multispeak communication that is logged in the text pane will look similar to what is shown below.
The contents of the text pane can be copied and pasted into a document file if you want to generate a
hardcopy.
Any errors that occur that are associated with either the sendGetSCADAStatusBySCADAPointID or
sendGetSCADAAnalogBySCADAPointID method are most likely because of a typographical error in the
point name(s). In this case, just correct the mis-spelling and press Test again.
If you get an error message with any of the other Multispeak methods, please call Survalent customer
service for help.
This chapter describes the setup of the failover capability of the MultiSpeak interface.
If you have only one SCADA server, you can skip this chapter.
The failover component of MultiSpeak consists of a system driver (that Survalent provides) and the
Network Load Balancing (NLB) component of Windows 2003.
MultiSpeak failover operates by maintaining a single IP address as the entry point for WebServices
communication, no matter which actual SCADA server is the active host. In order to accomplish this,
Survalent created a system driver that enables or disables a computer from the NLB cluster depending on
its SCADA status.
The first two of these steps are described in section 3.1, Setup of Windows NLB. The last two steps are
described in section 3.2, MultiSpeak Failover Service.
The first step is to enable NLB in each of the SCADA host computers. Note that in the case of systems
with multiple network cards, only one network must be setup as a NLB cluster. Also, the address in this
network must be assigned as a static address. We suggest using the LAN B in case of multiple cards.
Also, is important that the addresses used for the installation of the NLB components must be static
defined (not DHCP), and defined and tested before doing this procedure.
From Start >> Control Panel >> Network Connections on the first SCADA host computer, double-click on
the desired network. The following dialog will appear:
If the “Network Load Balancing” checkbox is unchecked, check it now. This will allow the use of a shared
cluster IP address by the computers that will be brought into the cluster.
Now you have to decide on the cluster IP address and server name. We suggest using a number in the
hundreds for your cluster address. For example, if your servers are x.x.x.141, x.x.x.142 and so on, use
x.x.x.100 or x.x.x.200 for your cluster address.
Before continuing, be sure that your card has already a static IP address assigned. Open the Network
Load Balancing setup dialog by pressing the Properties button and you will see the following dialog:
In the Host Parameters page, set the static IP address and Subnet mask of the computer itself, and set
the Default state to Started.
In the Port Rules page, you will set the port rules for operation of the NLB. There will be a rule here
already, so select Edit…
When you finish, press the OK button. Repeat for each remaining SCADA host machine.
It’s advisable to use a separate computer (running Windows 2003) to set up the NLB Cluster itself, rather
than using one of the SCADA hosts. The reason for this is that running the “Network Load Balancing
Manager” application on one of the computers that will become part of the cluster can lead to some steps
not occurring automatically, and you would then have to define some of the parameters manually. This
separate computer must be on the same subnet as the SCADA host computers, and can be used for
other purposes (such as running WorldView or SCADA Web Server) since after the initial setup, the NLB
manager will not be often used. Also, is recommended to contact your IT department and enable
Multicast traffic in any router or switch in the sub-network where the cluster will be.
To create the NLB Cluster service, run the application Start >> Administrative Tools >> Network Load
Balancing Manger. The following screen will appear (if an alert dialog appears, just click Ok):
Enter the same cluster definition that you entered on each host computer in section 3.1.1, Enabling NLB
in Each SCADA Host Computer, and then press Next. The following window will appear:
In the following dialog that appears, enter the IP address of one of the SCADA host computers, and press
Connect.
When you click on Connect, the interface name that you previously defined for that host computer will
appear in the list, along with the interface IP and cluster IP. Select the interface and press Next. A dialog
similar to the following will appear:
Note the Priority (unique host identifier) parameter. Set this number to be unique for each computer in
the NLB Cluster.
At the end, press OK. A screen like the following will appear:
When you finish, in the Network Load Balancing Manager dialog, all your cluster hosts should show a
status of “Converged”. If this is not the case, call Survalent customer service for help.
Note: If later you wish to edit the cluster definition, right-click on the root node, Network Load Balancing
Clusters, and select “Connect to Existing”. This will bring up the Cluster Parameters dialog that
will show you the existing clusters. Pressing Next a few times will take you to the Connect dialog
where you can type in the IP address of any of the SCADA computers in the cluster.
We have now a cluster of computers that are all capable of answering client requests. Which one will
actually answer depends on the NLB Cluster software, whose job it is to distribute the client requests
equally to the various hosts that are available. Of course, that’s not exactly what we want. What we want
is for the NLB Cluster to send all client requests to only the active host computer. This is the job of
Survalent’s Multispeak Failover service, which will force the NLB Cluster to only consider the active host
computer as being available, and not make use of any of the other hosts. But this is the subject of a later
step (section 3.2, MultiSpeak Failover Service). Right now, we’re just going to test the action of the NLB
Cluster to distribute client requests to all available hosts (which at the moment, is all hosts).
Then type the following very carefully, taking care again on the use of lower case:
java org.apache.axis.utils.tcpmon
This monitor window will be used to observe the communication between the client and this host
computer. Type 8081 into the “Listen Port#” field, and then press the Add button. Then select the Port
8081 tab, and the screen will look as follows:
Now, on some other computer in the network (this can be the same computer where the NLB Manager is
running), open an Internet Explorer window, and in the URL path, type (using the case as show):
http://xxxxxxx:8081/axis/services/SCADA_OASoap?wsdl
where xxxxxx is the static IP address of one of the SCADA host computers.
This is the requested wsdl file that was transmitted from the selected SCADA host computer.
The data displayed here represents the web services communication associated with the transfer of the
wsdl file from the SCADA host to your browser.
Repeat the same procedure for each SCADA host computer. At the end (if everything completed
successfully), press the Remove All button in the TCP Monitor window of each SCADA host computer.
To test the NLB Cluster itself, change the IP Address in your Internet Explorer to the Cluster IP Address,
and press Enter. By inspecting all of the TCP Monitor windows, you will be able to see which SCADA
host was chosen by the NLB cluster to service this request. If you press the “Refresh” button in your
browser, you will see that a different host is made to service the next request. This shows that the NLB
Cluster is working correctly.
Now that we have successfully tested the MultiSpeak Web Services server and the NLB Cluster, the next
step it to install Survalent’s Multispeak Failover service. The following procedure must be done on each
SCADA host.
Open a command console as described above (Start >> Command Prompt). Type:
CD \Program Files\Quindar\ScadaServer
Setpath_hsb
and press enter. This executes a batch file that adds a path for some Microsoft .NET utilities to your
PATH environment variable. Then type:
Installutil MspkHsbSv.exe
and press Enter. The final dialog will look like this:
Now type:
MspkSvDlg
In this window, type in the number of servers, the static IP of each SCADA host computer and the interval
(in milliseconds) at which the service is to check the active status of this SCADA server. An interval of
10,000 milliseconds is suggested. When you finish, press the Save button. Do this on each SCADA host
computer.
Now, in each SCADA host computer, open the Services application (Start >> Administrative Tools >>
Services) and scroll the list until you see MspkHsbSv:
Do this on each SCADA host and then reboot all the computers.
When the host computers are back online, start the TCP Monitor on each SCADA host as described
above.
In the other (non-SCADA) computer, open the Internet Explorer, and type in the Cluster IP address. Now
press Enter (or Refresh) and confirm that just the computer that is the active SCADA host answers. You
can press Refresh several more times, but each time, just the active host responds.
Now, force a failover to another host. Within the time interval you specified in the MspkSvDlg application,
the MultiSpeak Failover Service will redirect the cluster IP address to the new active host computer. If
you now press Refresh in your Internet Explorer, you will see that the new active host is the computer that
responds to your web services requests.
This chapter describes how to use the Data Exchange tree of the SCADA Explorer in Windows SCADA
to:
The Data Exchange tree of the SCADA Explorer is illustrated in Figure 4-1.
The Servers editor allows you to define links to other systems. For each link, you specify the type of
interface (e.g. Multispeak, ICCP etc), the communication ports or IP addresses used to access the
other system, and other communication parameters.
The Virtual RTUs editor is used to create one or more Virtual RTUs for each server. Each Virtual
RTU references a group (called a dataset) of SCADA points whose values are to be reported to the
client.
The Datasets editor is used to create sets of points that are referenced by the Virtual RTUs. Each
dataset contains blocks of status, analog, control, setpoint, and accumulator entries to which SCADA
points can be mapped.
When you assign a dataset to a Virtual RTU, you are specifying what SCADA points are to be transmitted
to the client via that Virtual RTU. You can assign the same dataset to multiple Virtual RTUs if you wish.
This means that the same data can easily be sent to more than one client system without having to
maintain duplicate dataset definitions.
4.1.1 ID
Enter a name to identify the server. For example, it may be named for the client system that the server is
communicating with. Since you are later going to choose this server by name from a list of servers, you
should make all the server names unique.
4.1.3 Description
This field must contain the name of a status point that will be maintained by the server to indicate the
Connected or Disconnected status of the communication link. This Link Status point is mandatory, and
the database point must be defined before you can create a new server. This status point must be non-
4.1.5 Protocol
Select “Multispeak” from the pull-down list to create a Multispeak data exchange server.
Set this flag if you want the server to start automatically whenever the SCADA system starts up or fails
over.
This field allows you to specify certain “command line” switches to control the behavior of the server.
Specify each switch you need by entering /name=value in this field. You do not need to add a space or
other punctuation between switches. The switch names or values are not case sensitive.
The command line switches that are presently supported are as follows:
/lm=localtime
This switch is used by the Load Management interface type (see section 4.1.10, Interface Type), for
load shed commands. If present, this switch causes load shed commands to be issued with start
times expressed in local time. If this switch is absent, load shed commands are issued in UTC time
format, in accordance with the Multispeak specification.
Clicking on the Start Server pushbutton will cause the server to start. If the server was already active, it
will first exit, and then restart.
Clicking on the Stop Server pushbutton will cause the server to exit (stop).
This is a menu of Multispeak interface types. Select the desired type from the list below:
Outage Analysis
Engineering Analysis
Dynamic GIS Viewer
Load Management
Enter the URL of the client. This URL is used by the Multispeak interface to connect to the client in order
to publish data to it. This field is usually case sensitive, so be sure to enter the URL correctly.
This is the interval, in milliseconds, at which the Multispeak server is to publish status changes to the
client.
Note: For the load management interface, this is interval at which the interface is to check for
requirements to issue load shed and power factor controls defined in the datasets. See chapter
5, Load Management.
This is the interval, in milliseconds, at which the Multispeak server is to publish analog changes to the
client.
Enter the interval, in seconds, at which the Multispeak server is to issue PingURL requests to check that
the client is still alive. When the Multispeak server detects that the client is not alive, it sets the Link
Status point identified above.
4.1.15 User ID
Some systems (e.g. systems that accept load management or power factor control commands) need a
user ID and password to be included in the MultiSpeak header of incoming messages. For such systems,
you can enter the user ID in this field.
4.1.16 Password
Some systems (e.g. systems that accept load management or power factor control commands) need a
user ID and password to be included in the MultiSpeak header of incoming messages. For such systems,
you can enter the password in this field.
Each Virtual RTU connects a dataset to a server. In some cases, it may be sufficient to have just one
Virtual RTU (and therefore just one dataset) per server. However, you may prefer to organize your points
in multiple Virtual RTUs, particularly if you intend to make use of the Enable/Disable Publish feature (see
below).
4.2.2 Description
Add a more detailed description of the Virtual RTU to explain its purpose.
4.2.3 Address
This is a numeric address of the Virtual RTU, and is used only by servers that implement RTU or PLC
protocols. The Multispeak interface does not use this field, so you can just leave it set to zero.
This is a checkbox that allows you to specify that the client is allowed to write into the points contained in
the associated dataset.
Checking this checkbox doesn’t mean that the client has write access to all of the points. Write access
must also be granted, on a per-point basis, in the dataset editor. The reason for this two-step approach is
This is a checkbox that gives permission to the client to issue controls to the points contained in the
associated dataset. The Multispeak interface does not support incoming controls, so leave this checkbox
unchecked.
4.2.6 Server
This drop-down menu is a list of all the data exchange servers presently defined in your Data Exchange
database. Select the server to which this Virtual RTU is to be attached. A server must be defined before
you can add Virtual RTUs to it.
4.2.7 Dataset
This drop-down list shows all of the currently defined datasets. Select the desired dataset for this Virtual
RTU. The dataset must exist before creating the Virtual RTU, although the database points in the dataset
may actually be added to the dataset at a later time if that is more convenient.
4.2.8 Protocol
This is a display-only field that indicates the type of data exchange server that this Virtual RTU is on.
4.2.9 Multispeak
This field contains the name of a status point that you can use to disable publishing of changes. This can
be used to temporarily inhibit publishing of changes while work or testing is being done on the substation
whose points are in the associated dataset. In this case, it’s useful to create a separate dataset for each
substation (so that you can inhibit changes on a per-substation basis).
To inhibit publishing of changes, manually set the Enable/Disable Publish point to 1. To re-enable
publish, manually set the point to 0.
If this field is left blank, the system will assume that publishing is always Enabled.
If this checkbox is checked for an OA interface, the MultiSpeak server will send the current value of all
status points in this virtual RTU at every startup of the server.
If this checkbox is checked for an OA interface, the MultiSpeak server will send the current values of all
status points in the virtual RTU every time there is a new connection or recovery from a series of
unsuccessful PingURLs.
Enabling this feature will override the time-limiting functionality of the “Time to Live” parameters of the
status points in this virtual RTU. See Parameter 8 in section 4.3.3, Status Points.
NOTE: If you’re not sure that your OA system can support this initialization, leave this checkbox
unchecked.
Normally, at every publish interval, the MultiSpeak OA interface sends the current value of each status
point along with the number of transitions since the last publish.
If you check the “Send All Transitions” checkbox, the server sends, in separate messages, all the
transitions that occurred since the last publish. Enabling this option can lead to a lot of messages being
sent to OA, and can even create problems in the OA server. This feature is included in the interface to
support OA systems that keep track of operations for maintenance purposes. So enable this feature only
if you want it and you know that your OA server can handle it.
Each dataset may be assigned to multiple Virtual RTUs, if you wish to send the same data to multiple
clients.
Enter a name to identify the dataset. The names of the datasets appear in the Dataset pull-down list in
the Virtual RTU editor, so make sure that your dataset names are unique.
4.3.2 Description
Each dataset contains lists of status, analog, accumulator, control, and setpoint point entries. Once you
create a new empty dataset, you can populate these lists by selecting the desired list in the left-hand
pane, and then right-clicking and selecting New in the right-hand pane.
The Multispeak interface only makes use of the status and analog points lists in the datasets. These are
described below.
This is a list of status points that can be transmitted to or received from the client via this Virtual RTU.
The fields of each status point entry are described below.
Identity
This area of the dialog contains radio buttons and data fields that specify how the entry is identified
to the client. There are four possible choices:
Address
Selecting this option causes the point to be identified to the client by means of a numeric
address. The Multispeak interface does not support this option.
Name
Selecting this option causes the point to be identified to the client by means of the name that
you enter in the field beside this radio button. In the name, do not include any characters that
are illegal in XML (e.g. < > & ’ ”).
Type
Set this field to 0 (unless the interface is a load management interface – see chapter 5, Load
Management).
Selecting this option causes the point to be identified to the client by means of the point’s own
“external name” string. The display field beside this radio button displays the point’s external
name if this option is selected.
Selecting this option causes the point to be identified to the client by means of the point’s own
SCADA name, including the station name.
Note that although the Survalent Multispeak interface supports this option, some programs
such as the Milsoft Test Harness do not support the use of commas.
Parameters
The parameters provide additional custom settings for each point entry.
Not used by the OA interface, but they are used by the LM interface. See chapter 5, Load
Management.
If set to a non-zero value, this parameter causes the OA interface to buffer and send all
transitions of this point. Note that if the "Send All Transitions" checkbox in the Virtual RTU
is checked, then the interface sends all transitions of all points in the virtual RTU, and this
parameter becomes redundant.
If you leave the “Send All at Reconnection” checkbox on the Virtual RTU unchecked, you
can still have status updates buffered during periods of link failure by entering a time-to-live
value (in minutes) in parameter 8 of each point whose changes you want buffered. The
changes will only be buffered for the length of time you specify. Once the changes are too
old, they are discarded. See section 4.2.9.3, Send All at Reconnection.
For a description of how the Parameters are used by the Load Management interface, see
chapter 5, Load Management.
Data Type
The transmitted data type code specifies to the server what data type to use when sending the
point’s value to the client. It also specifies what data type to expect when the client updates the
point. The Multispeak interface presently does not make use of this field for status points, so just
leave it set to zero.
Data Format
This field defines how the state of the status point is to be translated. You can choose from a list of
formats that will be familiar to you if you have created SCADA status points in the database. The
list of formats is shown in Table 4-1.
The Data Format codes for dual-bit status points (i.e. codes 3 – 8) perform a translation between
the standard internal representation and the selected format. The standard internal representation
of a status point is shown in Table 4-2. The various dual-bit formats are described below.
This data format code sends the standard internal representation of a status point to the client
without modifying the value.
This data format code inverts the standard internal representation of a status point before sending
the value to the client. That is, each bit is inverted. If the bit was a 0, then a 1 is sent.
This data format code translates the standard internal representation of a status point in such a
way that when the low bit is “ON” and the high bit is “OFF”, this represents Open.
This data format code translates the standard internal representation of a status point in such a
way that when the low bit is “ON” and the high bit is “OFF”, this represents Closed.
This data format code translates the standard internal representation of a status point in such a
way that when the low bit is “OFF” and the high bit is “ON”, this represents Open.
This data format code translates the standard internal representation of a status point in such a
way that when the low bit is “OFF” and the high bit is “ON”, this represents Closed.
Modify Enable
If this box is checked, the client will have write access to this point (if the corresponding Virtual RTU
also has its Modify Enable box checked).
Input
If checked, this checkbox tells the server to read the value of this point from the client.
Output
If checked, this checkbox tells the server that this point’s value is to be transmitted to the client
when requested (either in response to explicit read requests or by means of publish messages).
Auto Subscribe
Normally, publishing of changes to point values is to be done only after a client subscribes for the
points. Although the Publish function is defined, the Subscribe function is not yet defined in
Multispeak. It is therefore expected, for the time being, that Multispeak servers publish point
changes without waiting for subscription requests. The purpose of the Auto Subscribe checkbox
is to allow you to specify which points are to be automatically published. Points with this
checkbox unchecked will not be published to the client, but can still be explicitly read by the client.
This is a list of analog points that can be transmitted to or received from the client via this Virtual RTU.
The fields of each analog point entry are described below.
Identity
This area of the dialog contains radio buttons and data fields that specify how the entry is identified
to the client. There are four possible choices:
Address
Selecting this option causes the point to be identified to the client by means of a numeric
address. The Multispeak interface does not support this option.
Name
Selecting this option causes the point to be identified to the client by means of the name that
you enter in the field beside this radio button.
The Multispeak interface supports this option, but does not make use of the Type field, so just
enter a name. In the name, do not include any spaces or characters that are illegal in XML
(e.g. < > & ’ ”).
Selecting this option causes the point to be identified to the client by means of the point’s own
“external name” string. The display field beside this radio button displays the point’s external
name if this option is selected.
Selecting this option causes the point to be identified to the client by means of the point’s own
SCADA name, including the station name.
The Multispeak interface supports this option, but note that some programs, such as the Milsoft
Test Harness, do not support the use of commas.
Parameters
The parameters provide additional custom settings for each point entry. The Multispeak interface
presently does not make use of any of these parameters for analog points, so just leave them set
to zero.
Data Type
The transmitted data type code specifies to the server what data type to use when sending the
point’s value to the client. It also specifies what data type to expect when the client updates the
point. The Multispeak interface presently does not make use of this field for analog points, so just
leave it set to zero.
Scaling
You can select to use the point’s own scale factor and offset (as defined in the SCADA database),
or you can enter a scale factor and offset here. Whichever option you select, the Multispeak server
unscales before transmission by subtracting the Offset value and then dividing by the Scale Factor.
Deadband
If enabled, this value is used to filter analog point updates to just those that correspond to changes
from the last reported value that exceed the deadband. You can use this to limit the network
bandwidth used by the Multispeak server.
Modify Enable
If this box is checked, the client will have write access to this point (if the corresponding Virtual RTU
also has its Modify Enable box checked).
Multispeak
Input
If checked, this checkbox tells the server to read the value of this point from the client.
Output
If checked, this checkbox tells the server that this point’s value is to be transmitted to the client
when requested (either in response to explicit read requests or by means of publish messages).
Auto Subscribe
Normally, publishing of changes to point values is to be done only after a client subscribes for the
points. Although the Publish function is defined, the Subscribe function is not yet defined in
Multispeak. It is therefore expected, for the time being, that Multispeak servers publish point
changes without waiting for subscription requests. The purpose of the Auto Subscribe checkbox
is to allow you to specify which points are to be automatically published. Points with this
checkbox unchecked will not be published to the client, but can still be explicitly read by the client.
Units
This is a drop-down list of the most common units of measurement that are defined in Multispeak.
These units are transmitted along with the values. You can use the Scaling fields to turn any
points that don’t correspond to any of these units into available units.
The Multispeak interface does not use the dataset’s Accumulator point list.
The Multispeak interface does not use the dataset’s Control point list.
4.3.7 Setpoints
The Multispeak interface does not use the dataset’s Setpoint list.
5.1 Introduction
The Multispeak SCADA-LM interface is defined by specifying a Multispeak server in the Data Exchange
editor of the SCADA Explorer. The protocol is MULTISPEAK and the interface type is Load
Management. See Figure 5-1. The Load Management server can be used for both load shedding and
power factor control.
The Publish URL field specifies the target LM_Server to which load shed and power factor control
commands should be sent.
The Status Publish Interval field specifies how often to check status points in the datasets for triggering
Status points that are intended to trigger load shed commands via Multispeak must be defined in datasets
associated with the LM interface.
Figure 5-2 illustrates a dataset (named LM) that contains a list of points that trigger load shedding.
Figure 5-4 shows a breaker control set that contains load shed control points operated by the Load
Curtailment program.
Note that it is possible to place both power factor control points and load shed control points in the same
dataset if that is your preference.
The Identity field should be set to Name and filled in to contain the desired substation name, feeder
name, feeder number, group name or strategy name.
The Type field should be set to a numeric code that specifies not only that the point is associated with
a load shed command, but also which of the above parameters the Identity field contains.
The following table shows the list of available type codes, corresponding parameters and
corresponding fields loaded in the Multispeak load shed message.
If the value that needs to be sent is not actually a string, the server performs the required string-to-
value conversion before sending the load shed command. For example, the actual data type of the
group name field is Long, so if Type=4, the server converts the string provided in the Identify field to
a long integer in the Multispeak message.
Parameter 2 specifies the value of the “cycleTime” parameter in the load shed command that is
initiated by this point. This is the length of each cycle of the load shed sequence.
Parameter 3 specifies the value of the “percentDutyCycle” parameter in the load shed command that
is initiated by this point. This is the duty cycle (percent shed vs percent restored) of each cycle of the
load shed sequence. It must be a value between 0 and 100. (If it’s not, the command is not issued.)
Parameter 4 specifies the interval at which the load shed command defined above should be
repeated while the status point is in state 1. In order to ensure that a new command is issued before
the previous one expires, this parameter should be set to a value slightly smaller than the value of
parameter 1.
Parameter 5 specifies the desired effective start time of the load shed command, i.e. when the load
management system is to actually execute the load shed command. The time is expressed in military
format HHMM, e.g. 1430 for 2:30 PM. A value of zero means right now, i.e. as soon as the command
is received. The date that is sent is today’s date.
Note that this parameter does not specify when the load shed command is to be sent to the load
management system. It specifies when the load management system is to execute it. So, if a load
shed command with a start time of 1430 is sent in the morning, it will be executed by the load
management system at 2:30 PM of the same day.
In the Multispeak specification, dates and times are expressed in UTC format. However, some load
management systems expect the time to be provided in local time. You can specify that your load
management system requires local times in the load shed commands via a configuration switch in the
server definition. See section 4.1.7, Configuration Switches.
Parameters 4 – 8 are not used, and neither are Data Type and Data Format.
The Modify Enable, Input and Output checkboxes should be left unchecked.
Application Point
For some load management systems, it’s necessary to include an applicationPoint parameter in the load
shed command. Check with your load management system vendor.
strategy12;xyz
where “strategy12” is the strategy name and “xyz” is the applicationPoint parameter. Note that both
strategy name and applicationPoint are strings, and that this is only supported for type 5 load shed
commands (using strategy names).
When the value of a load shed status point in a load management dataset becomes 1, the load
management server starts sending load shed commands defined for that point at an interval specified by
Parameter 4. In these Multispeak load shed commands, the “controlEventType” field is set to Initiate.
When the value of the status point changes from 1 to 0, the load management server sends one last
Multispeak load shed command, with “controlEventType” set to Restore, and then stops sending
commands.
Load shed commands can be issued to Multispeak-compliant LM servers from a command sequence (by
using the LSM function), or from the Load Curtailment program, using LCR control sets. These methods
make use of an address analogous to that of a Load Control Relay. They do not require status points or
datasets in the data exchange editor. Only the server needs to be defined.
The format of the LSM function that initiates a Multispeak load shed command is as follows:
LSM (a, b, c, d, e)
where:
These five parameters can also be used in an LCR address in a Load Curtailment control set, provided
that the LCR Type is set to Multispeak. The RTU point normally required in such an address should be
omitted. Refer to LC-400, Load Curtailment User’s Guide for more detail.
This function can be used to send load shed commands containing group numbers only. It is not possible
to specify a substation, feeder or strategy using this function.
The status points that are intended to trigger power factor control commands via Multispeak must be
defined in datasets associated with the SCADA-LM interface.
Figure 5-5 illustrates a dataset (named PF) that contains a list of points that trigger power factor control
commands.
Figure 5-7 shows a capacitor bank record that contains a power factor control point operated by the
Power factor Control program.
Note that it is possible to place both power factor control points and load shed control points in the same
dataset if that is your preference.
The Identity field should be set to Name and filled in to contain the desired switch ID. This string will
be loaded into the switch ID field of the Multispeak power factor control message.
The Type field should be set to 11. This identifies the point as a point that triggers power factor
control.
Parameter 2 specifies the relay to control (for devices that contain multiple relays). If the parameter is
set to 0, the program does not specify a relay in the command. If the parameter is non-zero, the
program specifies the relay number by including an “affected relay” field in the command.
Parameters 3 – 8 are not used, and neither are Data Type and Data Format.
The Modify Enable, Input and Output checkboxes should be left unchecked.
When the value of a power factor control point in a load management dataset changes from 0 to 1, the
load management server sends an InitiatePowerFactorManagementEvent message. The
“controlEventType” field is set to Initiate. This switches the capacitor bank IN.
When the value of the status point changes from 1 to 0, the load management server sends another
InitiatePowerFactorManagementEvent message, this time with the “controlEventType” field set to
Restore. This switches the capacitor bank OUT.
For capacitor bank switching, the PFC program supports the use of load shed commands directed to LCR
addresses. If you wish to use this feature, check the One-Way Control via LCR checkbox, and set the
LCR Type to Multispeak. The required values of parameters A through E are the same as described in
section 5.2.3, Load Shedding Via LCR Addresses.
Note that this causes the system to issue Multispeak load shed commands instead of Multispeak power
factor control commands.