GetAllSCADAPoints
The GetAllSCADAPoints method provides a way for an OAS 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&p"> <tns:objectName>CalcMom</tns:objectName> <tns:description>CalcMom</tns:description> <tns:scadaPointType>analog</tns:scadaPointType> </tns:scadaPoint> <tns:scadaPoint objectID="i8ho{7gz&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&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&p"> <tns:objectName>CalcMom</tns:objectName> <tns:description>CalcMom</tns:description> <tns:scadaPointType>analog</tns:scadaPointType> </tns:scadaPoint> <tns:scadaPoint objectID="i8ho{7gz&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&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>