Services SOAP ModbusXMLDA
(Traduction du document original anglais)
Objet du chapitre
Le service Web ModbusXMLDA est mis en œuvre pour permettre l'accès aux données des variables Modbus à l'aide d'une syntaxe similaire à celle du protocole Modbus.
Ce service Web propose les interfaces de programmations (API) suivantes :
Quantité de données des paramètres API
Ce tableau présente la quantité de données maximale pouvant être utilisée pour les paramètres API :
API
BMX NOE 0110
ReadMultipleRegisters
124 (Registre)
WriteMultipleRegisters
96 (Registre)
ReadCoils
255 (bits de sortie)
WriteMultipleCoils
254 (bits de sortie)
ReadInt32
61 (entier 32 bits)
WriteInt32
48 (entier 32 bits)
ReadDeviceIdentification
Cette requête renvoie l'identification complète du périphérique de la destination spécifiée par l'ID fourni dans la requête.
Cette API est associée au code fonction Modbus 43 14.
Paramètres
Entrée : entier UnitID
Sortie : chaîne VendorName, ProductCode, MajorMinorRevision, VendorURL, ProductName, ModelName, UserApplicationName, TRImplementationClass, TRCommunicationServices
Exemple
L'exemple suivant présente une requête SOAP et sa réponse :
Requête
POST /ws/ModbusXmlDa HTTP/1.0 Host: 139.160.65.83:8080 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.schneider-electric.com/ws/ModbusXmlDa/ReadDeviceIdentification" <?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ReadDeviceIdentification xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> <UnitID>int</UnitID> </ReadDeviceIdentification> </soap:Body> </soap:Envelope>

Réponse

HTTP/1.0 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8" ?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ReadDeviceIdentificationResponse xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> <ReadDeviceIdentificationResult> <DeviceIdentification> <VendorName>string</VendorName> <ProductCode>string</ProductCode> <MajorMinorRevision>string</MajorMinorRevision> <VendorUrl>string</VendorUrl> <ProductName>string</ProductName> <ModelName>string</ModelName> <UserApplicationName>string</UserApplicationName> <TRImplementationClass>string</TRImplementationClass> <TRCommunicationServices>string</TRCommunicationServices> </DeviceIdentification> </ReadDeviceIdentificationResult> </ReadDeviceIdentificationResponse> </soap:Body> </soap:Envelope>
ReadMultipleRegisters
Il s'agit de l'API ReadMultipleRegisters utilisée pour exécuter une opération de lecture sur plusieurs registres.
La requête fournit trois paramètres :
En réponse, la liste des valeurs est envoyée.
Cette API est associé au code fonction Modbus 03.
Paramètres
Entrée : Entier UnitID, Address, Quantity
Sortie : Tableau d'entiers Result
Exemple
L'exemple suivant présente une requête SOAP et sa réponse :
Requête
POST /ws/ModbusXmlDa HTTP/1.0 Host: 139.160.65.83:8080 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.schneider-electric.com/ws/ModbusXmlDa/ReadMultipleRegisters" <?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ReadMultipleRegisters xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> <UnitID>int</UnitID> <Address>int</Address> <Quantity>int</Quantity> </ReadMultipleRegisters> </soap:Body> </soap:Envelope>
  
Réponse
HTTP/1.0 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ReadMultipleRegistersResponse xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> <ReadMultipleRegistersResult> <int>int</int> <int>int</int> </ReadMultipleRegistersResult> </ReadMultipleRegistersResponse> </soap:Body> </soap:Envelope>
WriteMultipleRegisters
Il s'agit de l'API WriteMultipleRegisters utilisée pour exécuter une opération d'écriture sur plusieurs registres.
La requête fournit trois paramètres :
Cette API est associée au code fonction Modbus 16.
Paramètres
Entrée : Entier UnitID, Address, tableau d'entiers Value
Sortie : Aucune
Exemple
L'exemple suivant présente une requête SOAP et sa réponse :
Requête
POST /ws/ModbusXmlDa HTTP/1.0 Host: 139.160.65.83:8080 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.schneider-electric.com/ws/ModbusXmlDa/WriteMultipleRegisters" <?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <WriteMultipleRegisters xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> <UnitID>int</UnitID> <Address>int</Address> <Value> <int>int</int> <int>int</int> </Value> </WriteMultipleRegisters> </soap:Body> </soap:Envelope>
Réponse
HTTP/1.0 200 OKContent-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <WriteMultipleRegistersResponse xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> </WriteMultipleRegistersResponse> </soap:Body> </soap:Envelope>
ReadCoils
Il s'agit de l'API ReadCoils utilisée pour exécuter une opération de lecture sur plusieurs bits de sortie.
La requête fournit trois paramètres :
En réponse, la liste des valeurs est envoyée.
Cette API est associée au code fonction Modbus 01.
Paramètres
Entrée : Entier UnitID, Address, Quantity
Sortie : Tableau d'entiers Result
Exemple
L'exemple suivant présente une requête SOAP et sa réponse :
Requête
POST /ws/ModbusXmlDa HTTP/1.0 Host: 139.160.65.83:8080 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.schneider-electric.com/ws/ModbusXmlDa/ReadCoils" <?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ReadCoils xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> <UnitID>int</UnitID> <Address>int</Address> <Quantity>int</Quantity> </ReadCoils> </soap:Body> </soap:Envelope>  
Réponse
HTTP/1.0 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ReadCoilsResponse xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> <ReadCoilsResult> <int>int</int> <int>int</int> </ReadCoilsResult> </ReadCoilsResponse> </soap:Body> </soap:Envelope>
WriteMultipleCoils
Il s'agit de l'API WriteMultipleCoils utilisée pour exécuter une opération d'écriture sur plusieurs bits de sortie.
La requête fournit trois paramètres :
Cette API est associée au code fonction Modbus 15.
Paramètres
Entrée : Entier UnitID, Address, tableau d'entiers Value
Sortie : Aucune
Exemple
L'exemple suivant présente une requête SOAP et sa réponse :
Requête
POST /ws/ModbusXmlDa HTTP/1.0 Host: 139.160.65.83:8080 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.schneider-electric.com/ws/ModbusXmlDa/WriteMultipleCoils" <?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <WriteMultipleCoils xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> <UnitID>int</UnitID> <Address>int</Address> <Value> <int>int</int> <int>int</int> </Value> </WriteMultipleCoils> </soap:Body> </soap:Envelope>  
Réponse
HTTP/1.0 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <WriteMultipleCoilsResponse xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> </WriteMultipleCoilsResponse> </soap:Body> </soap:Envelope>
Requête/réponse SOAP ReadInt32
La requête ReadInt32 fournit trois paramètres :
Paramètres
Entrée : Entier UnitID, Address, Quantity
Sortie : Tableau d'entiers Result
Exemple
En réponse, la liste des valeurs est envoyée. L'exemple suivant présente une requête SOAP et sa réponse :
Requête
POST /ws/ModbusXmlDa HTTP/1.0 Host: 139.160.65.83:8080 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.schneider-electric.com/ws/ModbusXmlDa/ReadMultipleRegisters" <?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ReadInt32 xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> <UnitID>int</UnitID> <Address>int</Address> <Quantity>int</Quantity> </ ReadInt32 > </soap:Body> </soap:Envelope>  
Réponse
HTTP/1.0 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> < ReadInt32Response xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> < ReadInt32Result> <int>int</int> <int>int</int> </ ReadInt32Result> </ ReadInt32Response> </soap:Body> </soap:Envelope>
Requête/réponse SOAP WriteInt32
La requête WriteInt32 fournit trois paramètres :
Paramètres
Entrée : Entier UnitID, Address, tableau d'entiers Value
Sortie : Aucune
Exemple
L'exemple suivant présente une requête SOAP et sa réponse :
Requête
POST /ws/ModbusXmlDa HTTP/1.0 Host: 139.160.65.83:8080 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.schneider-electric.com/ws/ModbusXmlDa/WriteMultipleRegisters" <?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <WriteInt32 xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> <UnitID>int</UnitID> <Address>int</Address> <Value> <int>int</int> <int>int</int> </Value> </ WriteInt32 > </soap:Body> </soap:Envelope>  
Réponse
HTTP/1.0 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> < WriteInt32Response xmlns="http://www.schneider-electric.com/ws/ModbusXmlDa/"> </ WriteInt32Response> </soap:Body> </soap:Envelope>