Services SOAP ExtendedSymbolicXMLDA
(Traduction du document original anglais)
Présentation
ExtendedSymbolicXMLDA offre une extension des services SOAP de SymbolicXmlDA pour Control Expert. Il vous permet d'accéder directement aux données d'adresse directe et aux données non affectées. Les services proposés sont :
Restrictions de l'accès aux variables
L'accès aux variables dépend de l'accès au protocole Control Expert de bas niveau pour les communications réelles, de sorte que seules les variables et adresses directes associées aux données accessibles via les requêtes natives Control Expert (lecture/écriture de registre et lecture/écriture de bits de sortie) sont prises en charge. Par conséquent, seuls les types de données suivants sont pris en charge :
Type
Syntaxe
Variables internes
%Mi, %MXi, %MWi, %MWi.j
Constantes
%KWi
Variables système
%Si, %SXi, %SWi
Simulation
%MDi, %MFi, %KDi, %KFi
Tous les types Control Expert sont pris en charge, notamment les éléments de tableaux.
Pour l'adressage direct, la syntaxe prise en charge est :
Syntaxe
Type
Commentaire
%Mi ou %MXi
EBOOL
Mappé sur le type XML/W3C unsignedByte
%MWi
INT
Mappé sur le type XML/W3C short
%MWi.j
BOOL
Mappé sur le type XML/W3C boolean
%MDi
DINT
Mappé sur le type XML/W3C int
%MFi
REAL
Mappé sur le type XML/W3C float
%KWi
INT
Mappé sur le type XML/W3C short
%KWi.j
BOOL
Mappé sur le type XML/W3C boolean
%KDi
DINT
Mappé sur le type XML/W3C int
%KFi
REAL
Mappé sur le type XML/W3C float
%Si ou %SXi
BOOL
Mappé sur le type XML/W3C boolean
%SWi
INT
Mappé sur le type XML/W3C short
%SWi.j
BOOL
Mappé sur le type XML/W3C boolean
Pour les symboles Control Expert, les types pris en charge sont les suivants :
Type
Commentaire
BOOL
Mappé sur le type XML/W3C boolean
EBOOL
Mappé sur le type XML/W3C unsignedByte
INT
Mappé sur le type XML/W3C short
DINT
Mappé sur le type XML/W3C int
UINT
Mappé sur le type XML/W3C unsignedShort
UDINT
Mappé sur le type XML/W3C unsignedInt
TIME
Mappé sur le type XML/W3C unsignedInt
DATE
Mappé sur le type XML/W3C date ou dateTime (dateTime est obligatoire pour l'écriture, la partie date n'est pas prise en compte)
TOD
Mappé sur le type XML/W3C time ou dateTime (dateTime est obligatoire pour l'écriture, la partie heure n'est pas prise en compte)
DT
Mappé sur le type XML/W3C dateTime
REAL
Mappé sur le type XML/W3C float ou double (double est seulement pour les demandes d'écriture, forcer la valeur au format float)
BYTE
Mappé sur le type XML/W3C unsignedByte
WORD
Mappé sur le type XML/W3C unsignedShort
DWORD
Mappé sur le type XML/W3C unsignedInt
STRING
Mappé sur le type XML/W3C string
STRING[n]
Mappé sur le type XML/W3C string
NOTE :
  • Le nom de la variable peut être soit une adresse directe, soit tout symbole apparaissant dans l'espace de noms de FactoryCast.
  • Si une fonction de service Web possède un paramètre en option, Visual Studio .NET crée un paramètre booléen supplémentaire dans le serveur proxy correspondant. Visual Studio .NET ajoute « Specified » à la fin du nom de ce paramètre.
Service de lecture
L'objectif de cette requête est de lire des symboles et des adresses directes. Les symboles transférés comme arguments de requête sont traduits à l'aide de l'espace de noms pour obtenir l'adresse de la valeur à lire. Les adresses directes sont transmises comme arguments de requête. Lorsque toutes les adresses sont connues, plusieurs demandes Control Expert sont émises par des adresses contiguës (par exemple, si les registres 10, 11 et 13 sont demandés, deux requêtes sont émises : une pour 10 et 11, et une pour 13) et par type de variable souhaitée (bobines registres). Une fois les valeurs récupérées, la réponse SOAP est générée en utilisant le nom de la variable, son type et ses valeurs.
Paramètres
Entrée : liste de chaînes ItemName
Sortie : tableau de l'élément ReadResult
Exemple
L'exemple suivant présente une requête SOAP et sa réponse :
Requête
POST /ws/ExtendedSymbolicXmlDa.asmx  HTTP/1
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.schneider-electric.com/ws/ExtendedSymbolicsXmlDa/Read"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
      <Read xmlns="http://www.schneider-electric.com/ws/ExtendedSymbolicsXmlDa/">
        <VariableList>
            <Name>string</Name>
            <Name>string</Name>
        </VariableList>
      </Read>
    </soap:Body>
  </soap:Envelope>
Réponse
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
				 <soap:Body>
    <ReadResponse xmlns="http://www.schneider-electric.com/ws/ExtendedSymbolicXMLDa/">      
    <ReadResult>
    <Elément>
     <Name>chaîne</Name>          
     <VariableType>chaîne</VariableType>          
     <Valeur />        
    </Elément>        
    <Elément>          
     <Name>chaîne</Name>          
     <VariableType>chaîne</VariableType>          
     <Valeur />        
    </Elément>      
    </ReadResult>    
   </ReadResponse>  
 </soap:Body>
</soap:Envelope>
Service d'écriture
L'objectif de cette requête est l'écriture de symboles ou d'adresses directes. Les symboles, ainsi que leur type et leur valeur, sont transférés comme arguments de requête. Les noms des variables sont traduits à l'aide de l'espace de noms pour obtenir l'adresse de la valeur à lire. Les adresses directes sont transmises comme arguments de requête. Lorsque toutes les adresses sont connues, plusieurs demandes Control Expert sont émises par des adresses contiguës (par exemple, si les registres 10, 11 et 13 sont demandés, deux requêtes sont émises : une pour 10 et 11, et une pour 13) et par type de variable souhaitée (bobines registres).
Une fois toutes les valeurs écrites, la réponse SOAP est générée.
Paramètres
Entrée : liste de (chaîne ItemName, Valeur, Type)
Sortie : aucune
Exemple
L'exemple suivant présente une requête SOAP et sa réponse :
Requête
POST /maquette/ExtendedSymbolicXmlDa.asmx HTTP/1.1 
Host: 139.160.65.83:8080 
Content-Type: application/soap+xml; charset=utf-8 
Content-Length: length
SOAPAction: "http://www.schneider-electric.com/ws/ExtendedSymbolicsXmlDa/Write"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
 <soap:Body>
     <Write xmlns="http://www.schneider-electric.com/ws/ExtendedSymbolicXmlDa/">
       <ItemList>
         <Item>
           <Name>string</Name>
           <VariableType>string</VariableType>
           <Value />
         </Item>
         <Item>
           <Name>string</Name>=
           <VariableType>string</VariableType>
           <Value />
         </Item>
      </ItemList>
     </Write>
   </soap:Body>
</soap:Envelope>
Réponse
HTTP/1.1 200 OK 
Content-Type: application/soap+xml; charset=utf-8 
Content-Length: length 
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.w3.org/2003/05/soap-envelope/">
   <soap:Body>
     <WriteResponse xmlns="http://www.schneider-electric.com/ws/ExtendedSymbolicXmlDa/">
    </WriteResponse>
		  </soap:Body> </soap:Envelope>
Service de navigation
L'objectif de cette requête est la lecture d'une liste de variables symboliques (automate, non affectées et E/S) présentes dans l'espace de noms du module FactoryCast.
La réponse comprend tous les symboles et leur type.
Paramètres
Entrée : aucune ou paramètre en option
Sortie : liste des descriptions (nom, adresse et type de symbole)
Exemple
L'exemple suivant présente une requête SOAP et sa réponse :
Requête
POST /maquette/ExtendedSymbolicXmlDa.asmx 
HTTP/1.1 Host: 139.160.65.83:8080 
Content-Type: application/soap+xml; charset=utf-8 
Content-Length: length 
SOAPAction: xmlns="http://www.schneider-electric.com/ws/ExtendedSymbolicXmlDa/Browse"
<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/2003/05/soap-envelope/">
   <soap:Body>
<Browse xmlns="http://www.schneider-electric.com/ws/ExtendedSymbolicXmlDa/Browse" /> </soap:Body> 
		 </soap:Envelope> 
Réponse
HTTP/1.1 200 OK 
Content-Type: application/soap+xml; charset=utf-8 
Content-Length: length 
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.w3.org/2003/05/soap-envelope/">
   <soap:Body>
     <BrowseResponse xmlns="http://www.schneider-electric.com/ws/ExtendedSymbolicXmlDa/">
        <BrowseResult>
        <Description>
           <Name>string</Name>
           <Address>string</Address>
           <VariableType>string</VariableType>
         </Description>>
         <Description>
           <Name>string</Name>
           <Address>string</Address>
           <VariableType>string</VariableType>
         </Description>
        </BrowseResult>
     </BrowseResponse>
   </soap:Body>
 </soap:Envelope>