Configuração dos Tags

<< Clique para Mostrar o Sumário >>

 

Configuração dos Tags

Utilize a sintaxe a seguir para a configuração de Tags no E3 ou Elipse Power:

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>%)]

 

Onde:

<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. Exemplo:

"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 contiverem no nome o item atual ou os filhos. Por exemplo, para o valor "station12#" são retornados os seguintes valores:

"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. Por exemplo, para o valor "station12/pump01/+" são retornados os seguintes valores:

"station12/pump01/pressure1"
"station12/pump01/pressure2"

 

<Template>: Informa o nome de um Template usado como modelo de interpretação dos dados da mensagem, com o objetivo de mapear campos dentro da 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, caso este Tag deva 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 do Driver é ignorada para este Tag.

 

Para superar a banda morta absoluta, é preciso satisfazer a seguinte condição:

|(Valor Atual) - (Valor Novo)| ≥ (Banda Morta Absoluta)

 

Para superar a banda morta relativa, é preciso satisfazer a seguinte condição:

|(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 dois tipos de mensagens. A mensagem 1 contém os valores A, B e C e a mensagem 2 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 duas 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

 

Publicação de Valores

 

Quando é necessário que o driver publique mensagens para outros clientes, basta realizar a escrita do tag desejado. Se o tag não possui um template associado, então o valor informado será enviado para o tópico. Neste caso, se for um valor numérico ele será convertido para texto, e se já for um texto será enviado como está.

 

Se o tag possui um template associado, então as variáveis que forem declaradas dentro do template serão preenchidas com os valores vindos do tag e depois enviados. Note que se voce usar um tag simples, o template deverá ter apenas uma variável declarada. Se voce precisar de mais de uma variável, deve usar um tag bloco, onde cada elemento do bloco vai então corresponder a uma variável dentro do template, na mesma ordem.

 

Para executar então a escrita de um bloco, é necessário que a sua aplicação realize a escrita do bloco inteiro de uma vez (Block.Write() ) através de um script, e para isso devemos então primeiramente setar o valor de cada um dos elementos, e depois escrever o bloco inteiro. As propriedades AllowRead e AllowWrite devem estar em FALSE.

 

Exemplo de escrita em um template que tem 3 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

 

 

Esta página foi útil?