|
<< Clique para Mostrar o Sumário >>
Requisições a um Web Service |
As requisições HTTP a um Web Service são do tipo POST e devem conter os parâmetros obrigatórios Operation, Entity e Data. O parâmetro Data deve estar no formato XML ou JSON, conforme a especificação a seguir.
Exceto para a operação UPDATE TAG, os parâmetros de uma requisição são encapsulados em um Tag Bloco reservado chamado OperationBlock. Para requisições com a operação UPDATE TAG, o Tag Bloco OperationBlock não é utilizado, pois esta operação é destinada à atualização de Tags PLC ou Tags Bloco específicos. Neste caso, o parâmetro Entity representa a propriedade Item do Tag a ser atualizado e o parâmetro Data deve seguir os formatos descritos a seguir.
Para Atualização de Tags PLC
Formato XML:
<TagData>
<Value>XXX</Value>
<Quality>XXX</Quality>
<Time>XXX</Time>
</TagData>
Formato JSON:
{
"Value": "XXX",
"Quality": XXX,
"Time": "XXX"
}
Para Atualização de Tags Bloco
Formato XML:
<TagData>
<Values>
<Value>XXX</Value>
<Value>XXX</Value>
<Value>XXX</Value>
</Values>
<Quality>XXX</Quality>
<Time>XXX</Time>
</TagData>
NOTA |
A seção <Values> pode conter tantos elementos <Value> quantos sejam necessários. |
Formato JSON:
{
"Value": ["XXX", "XXX", "XXX"],
"Quality": XXX,
"Time": "XXX"
}
NOTA |
O array Value pode conter tantos valores quantos sejam necessários. |
•Value: Os valores enviados são interpretados por uma aplicação como Strings, valores inteiros ou de ponto flutuante, conforme o formato mais adequado
•Quality: Deve ser um valor inteiro que representa a qualidade de um Tag, como por exemplo 192 para qualidade boa
•Time: Deve ser uma String no formato ISO 8601, no padrão YYYY-MM-DDTHH:MM:SS, como por exemplo "2026-09-28T14:23:30"
Se uma requisição POST para atualização de um Tag Bloco é enviada, mas o parâmetro Entity referencia um Tag PLC em uma aplicação, apenas o primeiro valor de um array ou lista de valores é considerado para a atualização deste Tag Bloco.
curl -X POST http://localhost:5050/ \
-H "Content-Type: application/json" \
-H "Operation: XXX" \
-H "Entity: XXX" \
-d "XXX"
O valor do cabeçalho Content-Type deve ser ajustado de acordo com o formato dos dados enviados no corpo, ou seja, o parâmetro -d. Use "application/json" se os dados estão no formato JSON e "application/xml" se os dados estão no formato XML.
O retorno de uma requisição é uma String no formato JSON com o campo Err, um inteiro que representa um código de erro, e o campo ErrMsg, uma String com a descrição deste erro. Os valores possíveis do campo Err e as mensagens correspondentes do campo ErrMsg estão descritos na tabela a seguir.
Códigos de retorno de uma requisição
Err |
ErrMsg |
Descrição |
|---|---|---|
0 (zero) |
OK |
Requisição processada com sucesso. Os dados enviados permanecem pendentes até a próxima leitura deste Driver |
1 (um) |
Operation is empty |
O cabeçalho Operation não foi informado ou está vazio |
2 (dois) |
Error parsing data |
Não foi possível interpretar os dados enviados na operação UPDATE TAG. Ocorre quando o corpo de uma requisição está vazio, quando os dados no formato XML ou JSON são inválidos para o formato indicado no cabeçalho Content-Type, quando o campo Value contém um tipo de dados não suportado ou quando nenhum valor válido é encontrado |
3 (três) |
Invalid XML or JSON data |
O corpo de uma requisição está vazio ou não são dados válidos no formato XML ou JSON para o formato indicado no cabeçalho Content-Type. Aplica-se às operações diferentes de UPDATE TAG |
{"Err":3,"ErrMsg":"Invalid XML or JSON data"}