GetAllSCADAPoints

The GetAllSCADAPoints method provides a way for an OASClosed Outage Analysis System to request the complete list of SCADA points from a SCADA system. The SCADA system is expected to respond back with all the SCADA points that exist within its system. The list of SCADA points can then be used to map points to the appropriate phases on device elements in the OAS circuit model.

If all the points fit in a single message, then ObjectsRemaining will be set to 0 and LastSent is the last point listed in the message.

 

A sample GetAllScadaPoints request coming out of an OAS:

POST http://MultiSRV/MultiSpeakRealm1/ HTTP/1.1
Connection:Keep-Alive 
Content-Type:text/xml; charset=utf-8 
Accept:text/* 
Authorization:Basic YTph 
User-Agent:SOAPWinHTTPClient 
SOAPAction:"http://www.multispeak.org/Version_4.1_Release/GetAllSCADAPoints"
Content-Length:882
Host:MultiSRV

<?xml version="1.0" encoding="UTF-8"?>
 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
                xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
                xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <soap:Header>
      <snp:MultiSpeakMsgHeader xmlns:snp="http://www.multispeak.org/Version_4.1_Release" 
          UserID="" Pwd="" MajorVersion="4" MinorVersion="1" BuildString="Release" Build="6" 
          AppName="Company Software Name" AppVersion="Company Software Version" 
          Company="Company Name" /> 
    </soap:Header> 
    <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
       <GetAllSCADAPoints xmlns="http://www.multispeak.org/Version_4.1_Release" />
    </soap:Body> 
 </soap:Envelope>

A sample GetAllScadaPoints response coming from VTScada. Each point (tag) is uniquely identified by an objectID. It carries its VTScada tag name as well as the type (Analog or Status). Note that VTScada would return in a GetAllScadaPoints response only the IO tags that have their “Publish” flag set.

If VTScada has more tags to send than “MultiSpeakMaxMessagePoints” then multiple messages can be sent. VTScada sends a response with the header containing an attribute called “lastSent” set to the last pointID contained in the message. It also sets another attribute called ObjectsRemaining to the number of tags remaining. This signals to the OAS that there are more tags to come. The OAS can send more requests and set the element lastReceived to the lastSent, repeating as required.

HTTP/1.1 200 OK
Date: Mon, 25 Jan 2021 20:30:00 GMT
Server: VTScada 12.0.26
Content-Type: text/xml; charset="utf-8"
Content-Length: 3361
Cache-Control: no-cache, no-store

<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
                  xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
                  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
                  xmlns:s="http://www.w3.org/2001/XMLSchema" 
                  xmlns:s1="cpsm_V4.1_Release" 
                  xmlns:s2="gml_V4.1_Release" 
                  xmlns:s3="http://www.w3.org/1999/xlink" 
                  xmlns:si="http://www.w3.org/2001/XMLSchema-instance" 
                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
                  xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 
                  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
                  xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" 
                  xmlns:tns="http://www.multispeak.org/Version_4.1_Release" 
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 
  <soapenv:Header> 
    <tns:MultiSpeakMsgHeader MajorVersion="4" MinorVersion="1" Build="6" BuildString="Release" 
             AppName="VTScada" AppVersion="12.0026" Company="Trihedral Engineering Ltd." 
             MessageID="c7fa2e8a-edb3-40b6-b125-d22f7a9fcb64" 
             TimeStamp="2021-01-25T20:30:00.216Z" Context="Production" /> 
  </soapenv:Header>
  <soapenv:Body>
    <tns:GetAllSCADAPointsResponse> 
    <tns:GetAllSCADAPointsResult> 

<tns:scadaPoint objectID="i8ho{7gz&amp;p"> 
   <tns:objectName>CalcMom</tns:objectName> <tns:description>CalcMom</tns:description>   
   <tns:scadaPointType>analog</tns:scadaPointType> 
</tns:scadaPoint> 

<tns:scadaPoint objectID="i8ho{7gz&amp;p\#}s}143_r;">   
  <tns:objectName>CalcMom\Calc1</tns:objectName> 
  <tns:description>Calc1</tns:description> 
  <tns:scadaPointType>analog</tns:scadaPointType> 
</tns:scadaPoint> 

<tns:scadaPoint objectID="i8ho{7gz&amp;p\#}s}143_r;\ke6tuvsd2r"> 
  <tns:objectName>CalcMom\Calc1\Calc2</tns:objectName>
  <tns:description>Calc2</tns:description> 
  <tns:scadaPointType>analog</tns:scadaPointType> 
</tns:scadaPoint> 

<tns:scadaPoint objectID="quywa8lOb5"> 
  <tns:objectName>CalcMom\Calc1\Calc2\Calc3</tns:objectName> 
  <tns:description>Calc3</tns:description> 
  <tns:scadaPointType>analog</tns:scadaPointType> 
</tns:scadaPoint> 

<tns:scadaPoint objectID="cjZaH10iYp"> 
  <tns:objectName>CalcMom\Calc1\Calc2\Calc3\CalcChildWithaLongName_ABCDEFGHIJKLMNOPQRSTUVWXYZ</tns:objectName> 
  <tns:description>CalcChildWithaLongName_ABCDEFGHIJKLMNOPQRSTUVWXYZ</tns:description> 
  <tns:scadaPointType>analog</tns:scadaPointType> 
</tns:scadaPoint> 

<tns:scadaPoint objectID="!~7jii98ja"> 
  <tns:objectName>StatusMom</tns:objectName> 
  <tns:description>StatusMom</tns:description> 
  <tns:scadaPointType>status</tns:scadaPointType> 
</tns:scadaPoint> 

<tns:scadaPoint objectID="!~7jii98ja\fw^x)hm%bh"> 
  <tns:objectName>StatusMom\Status1</tns:objectName> 
  <tns:description>Status1</tns:description> 
  <tns:scadaPointType>status</tns:scadaPointType> 
</tns:scadaPoint> 

<tns:scadaPoint objectID="!~7jii98ja\fw^x)hm%bh\)6{k0p-132"> 
  <tns:objectName>StatusMom\Status1\Status2</tns:objectName> 
  <tns:description>Status2</tns:description> 
  <tns:scadaPointType>status</tns:scadaPointType> 
</tns:scadaPoint> 

<tns:scadaPoint objectID="Gtqn4wN8M9"> 
  <tns:objectName>StatusMom\Status1\Status2\Status3</tns:objectName> 
  <tns:description>Status3</tns:description> 
  <tns:scadaPointType>status</tns:scadaPointType> 
</tns:scadaPoint> 

<tns:scadaPoint objectID="pPylU8plF9"> 
  <tns:objectName>StatusMom\Status1\Status2\Status3\Status4</tns:objectName> 
  <tns:description>Status4</tns:description> 
  <tns:scadaPointType>status</tns:scadaPointType> 
</tns:scadaPoint> 

</tns:GetAllSCADAPointsResult> 
</tns:GetAllSCADAPointsResponse> 
</soapenv:Body> 
</soapenv:Envelope>

 

Sample response with the lastSent set. (Note that the property MultiSpeakMaxMessagePoints is set to 3 for testing):

<?xml version="1.0" encoding="UTF-8"?>
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
                   xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
                   xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
                   xmlns:s="http://www.w3.org/2001/XMLSchema" 
                   xmlns:s1="cpsm_V4.1_Release" 
                   xmlns:s2="gml_V4.1_Release" 
                   xmlns:s3="http://www.w3.org/1999/xlink" 
                   xmlns:si="http://www.w3.org/2001/XMLSchema-instance" 
                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
                   xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 
                   xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
                   xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" 
                   xmlns:tns="http://www.multispeak.org/Version_4.1_Release" 
                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 
  <soapenv:Header> 
    <tns:MultiSpeakMsgHeader MajorVersion="4" MinorVersion="1" Build="6" 
                   BuildString="Release" AppName="VTScada" AppVersion="12.0026" 
                   Company="Trihedral Engineering Ltd." MessageID="bfc3ebb9-4f50-4735-8748-aa22b5b2d04a" 
                   TimeStamp="2021-01-25T20:51:14.955Z" Context="Production" 
                   LastSent="pPylU8plF9" ObjectsRemaining="0" /> 
  </soapenv:Header> 
  <soapenv:Body> 
    <tns:GetAllSCADAPointsResponse> 
    <tns:GetAllSCADAPointsResult> 
    <tns:scadaPoint objectID="i8ho{7gz&amp;p"> 
      <tns:objectName>CalcMom</tns:objectName> 
      <tns:description>CalcMom</tns:description> 
      <tns:scadaPointType>analog</tns:scadaPointType> 
    </tns:scadaPoint> 

    <tns:scadaPoint objectID="i8ho{7gz&amp;p\#}s}143_r;"> 
      <tns:objectName>CalcMom\Calc1</tns:objectName> 
      <tns:description>Calc1</tns:description> 
      <tns:scadaPointType>analog</tns:scadaPointType> 
    </tns:scadaPoint> 

    <tns:scadaPoint objectID="i8ho{7gz&amp;p\#}s}143_r;\ke6tuvsd2r"> 
      <tns:objectName>CalcMom\Calc1\Calc2</tns:objectName> 
      <tns:description>Calc2</tns:description> 
      <tns:scadaPointType>analog</tns:scadaPointType> 
    </tns:scadaPoint> 
    </tns:GetAllSCADAPointsResult> 
    </tns:GetAllSCADAPointsResponse> 
  </soapenv:Body> 
</soapenv:Envelope>