<< Clique para Mostrar o Sumário >> Configuração dos Tags |
Utilize a sintaxe a seguir para a configuração de Tags no Elipse E3, Elipse Power ou Elipse Water:
•Dispositivo: Não utilizado
•Item: Este campo deve obedecer a sintaxe a seguir
<Tópico>[;<Template>[;<Param>]]
Ou
<Tópico>[(Deadband:<Banda Morta Absoluta>)][(Deadband:<Banda Morta Relativa>%)]
O caractere ! (ponto de exclamação) pode ser utilizado antes do <Tópico> para indicar uma exceção à opção Associated Topic Template.
Em que:
•<Tópico>: Endereço do item, ou tópico, no banco de dados do cliente. De acordo com a norma MQTT, cada item no banco de dados de um cliente pode corresponder a um conjunto de dados livre, transmitido em formato Texto. Os tópicos podem estar organizados em árvore, e neste caso é utilizada uma barra para a separação de níveis, conforme o exemplo a seguir.
"station12/pump01/pressure1"
"station12/pump01/pressure2"
Um cliente também pode utilizar o sinal numérico (#) e o sinal de mais (+) para endereçar tópicos. No primeiro caso devem ser incluídos na resposta do pedido todos os itens que contenham no nome o item atual ou os filhos do item atual. Por exemplo, para o valor "station12#" são retornados os valores a seguir.
"station12/pump01"
"station12/pump01/pressure1"
"station12/pump01/pressure2"
"station12/pump02"
"station12/pump02/pressure1"
"station12/pump02/pressure2"
No segundo caso devem ser incluídos na resposta do pedido todos os itens no mesmo nível do item atual. Por exemplo, para o valor "station12/pump01/+" são retornados os valores a seguir.
"station12/pump01/pressure1"
"station12/pump01/pressure2"
•<Template>: Informa o nome de um Template usado como modelo de interpretação dos dados de uma mensagem, com o objetivo de mapear campos dentro desta mensagem para Tags (estampa de tempo, qualidade e valores). Este Template deve estar cadastrado na aba Templates
•<Param>: Informa o nome de um dos parâmetros no Template, se este Tag deve receber apenas um dos parâmetros
•<Banda Morta Absoluta>: Banda morta em valor absoluto, a ser aplicada na escrita de valores numéricos
•<Banda Morta Relativa>: Banda morta em valor relativo, a ser aplicada na escrita de valores numéricos
A tabela a seguir contém exemplos de endereçamento de mensagens.
Exemplos de endereçamento
Item |
Descrição |
---|---|
"station12/pump01" |
Neste caso a mensagem lida ou escrita para o item é um Tag do tipo Texto (String) sem qualquer processamento |
"station12/pump01;pumpdata" |
Aplica-se o Template pumpdata ao conteúdo de station12/pump01. Se o Template descreve mais de um valor, deve-se utilizar um Tag Bloco em que cada Elemento de Bloco é um valor do Template |
"station12/pump01;pumpdata;V1" |
Caso idêntico ao anterior, porém recuperando somente o primeiro valor do Template e associando-o ao Tag, que não precisa ser um Tag Bloco. Neste caso o Template precisa descrever o valor V1. Para mais informações, consulte a aba Template no tópico Parâmetros de Configuração do Driver |
"station12/pump01(Deadband:0.5)" |
Caso o valor atual deste tópico seja numérico e um novo valor também numérico seja escrito neste Tag, então este novo valor só é publicado no tópico se a diferença entre o valor atual e o valor novo é maior ou igual a 0,5 |
"station12/pump01(Deadband:5%)" |
Caso o valor atual deste tópico seja numérico e um novo valor também numérico seja escrito neste Tag, então este novo valor só é publicado no tópico se a diferença entre o valor atual e o valor novo é maior ou igual a 5% do valor antigo |
"station12/pump01(Deadband:0.5)(Deadband:5%)" |
Caso o valor atual deste tópico seja numérico e um novo valor também numérico seja escrito neste Tag, então este novo valor só é publicado no tópico se a diferença entre o valor atual e o valor novo é maior ou igual a 0,5 ou maior ou igual a 5% do valor antigo |
NOTA |
Quando a banda morta está configurada diretamente em um Tag, este Tag não deve ser associado a um Template. Neste caso, a banda morta configurada na aba Publish da janela de configurações deste Driver é ignorada para este Tag. |
Para superar a banda morta absoluta, é preciso satisfazer a condição a seguir.
|(Valor Atual) - (Valor Novo)| ≥ (Banda Morta Absoluta)
Para superar a banda morta relativa, é preciso satisfazer a condição a seguir.
|(Valor Atual) - (Valor Novo)| ≥ |(Valor Atual)| * (Banda Morta Relativa) / 100%
Se um Tag está configurado com banda morta relativa e banda morta absoluta simultaneamente, a satisfação de qualquer uma das condições anteriores resulta na publicação do valor.
Caso uma informação apareça em mais de uma mensagem e seja necessário que um Tag receba valores de todas estas mensagens, pode-se especificar um array de endereços, conforme a sintaxe a seguir.
["Topico1;Template1;Param1","Topico2;Template2;Param2","Topico3;Template3;Param3"]
Por exemplo, suponha que um equipamento envie uma mensagem 1 que contém os valores A, B e C e uma mensagem 2 que contém os valores D, E, F e B novamente, nesta ordem. Caso deseje que um Tag receba os valores de B vindos de qualquer das mensagens, configure o array no formato a seguir.
["device023/msg1;template1;V2","device023/msg2;template2;V4"]
Neste caso, o segundo valor configurado em template1, recebido no tópico device023/msg1, e o quarto valor configurado em template2, recebido no tópico device023/msg2, são enviados para este Tag.
NOTA |
Pode-se repetir tópicos, como por exemplo dois ou mais Tags usando o mesmo tópico, mas um dos demais parâmetros, template ou param, deve ser diferente. |
Exemplos de Tags:
Tag1: "device023/msg1" - OK
Tag2: "device023/msg1;T1" - OK
Tag3: "device023/msg1;T1;V2" - OK
Tag4: "["device023/msg1;T1;V2","device023/msg1;T1;V3"] - Não aceito. O primeiro elemento repete Tag3
Quando é necessário que este Driver publique mensagens para outros clientes, realize a escrita do Tag desejado. Se o Tag não possui um Template associado, então o valor informado é enviado para o tópico. Neste caso, se é um valor numérico, este valor é convertido para texto. Se já é um texto, é enviado sem alteração.
Se o Tag possui um Template associado, então as variáveis declaradas dentro do Template são preenchidas com os valores vindos do Tag e depois enviados. Note que, ao usar um Tag simples, o Template deve ter apenas uma variável declarada. Se precisar de mais de uma variável, use um Tag Bloco, em que cada Elemento de Bloco corresponde a uma variável dentro do Template, na mesma ordem.
Para executar a escrita de um Tag Bloco, é necessário que a aplicação realize a escrita do Tag Bloco inteiro, usando o método Write em um script. Para isto, primeiro configure o valor de cada um dos Elementos e depois escreva o Tag Bloco inteiro. As propriedades AllowRead e AllowWrite devem estar configuradas com o valor Falso. O código a seguir contém um exemplo de escrita de um Template contendo 3 (três) variáveis.
Set Block1 = Application.GetObject("DriverMQTT").Item("Block1")
Block1.Item("Elemento1").Value = 123
Block1.Item("Elemento2").Value = "Abnormal Situation"
Block1.Item("Elemento3").Value = 555
Block1.Write 1 ' Escrita síncrona, 2 = escrita assíncrona