BACnet

Conecte dispositivos de automação predial BACnet/IP: instância do dispositivo, endereçamento por tipo e instância de objeto, descoberta Who-Is e presentValue.

Ver como Markdown

O driver BACnet conversa com equipamento de automação predial por BACnet/IP. Toda tag lê o valor presente de um objeto BACnet: a leitura ao vivo de uma entrada analógica, o estado de uma saída binária, a posição de um valor de múltiplos estados. Adicione um dispositivo sob o driver BACnet no Connector; o painel mostra só os campos que este protocolo usa.

Conexão

Campo Significado Padrão
Host Endereço IP ou nome de host do dispositivo BACnet (ou do roteador que responde por ele). vazio
Porta Porta UDP do dispositivo. 0 usa 47808, o padrão do BACnet/IP. 0
Device Id O número de instância do dispositivo, o número do objeto Device dele, único na rede BACnet. 0

O cabeçalho do dispositivo mostra o endpoint montado, por exemplo bacnet://192.168.0.30:47808/1234. Conectar envia uma requisição pelo tamanho da lista de objetos do dispositivo para confirmar que o equipamento responde; a lista de objetos em si não é percorrida. Essa resposta é a conexão: um dispositivo que não responde fica offline em vez de aparecer como conectado, e o motivo (a porta UDP já ocupada, um endereço que não é um endereço) é escrito na página Eventos e no arquivo de log do dia. Não há campos de intervalo de leitura neste driver: as tags dele são lidas uma vez por segundo.

Endereçamento

Uma tag BACnet é endereçada por dois campos tipados no cartão Origem da tag, sem endereço em texto livre:

Campo Significado Valores aceitos Padrão
Tipo de objeto Que tipo de objeto BACnet ler. os nove tipos abaixo AnalogInput
Instância O número de instância do objeto dentro do tipo dele. 0 ou mais 0

Os tipos de objeto oferecidos e os códigos de tipo padrão do BACnet:

Tipo de objeto Código O valor presente guarda
AnalogInput 0 um número medido
AnalogOutput 1 um número comandado
AnalogValue 2 um número guardado
BinaryInput 3 inativo/ativo
BinaryOutput 4 inativo/ativo
BinaryValue 5 inativo/ativo
MultiStateInput 13 um número de estado a partir de 1
MultiStateOutput 14 um número de estado a partir de 1
MultiStateValue 19 um número de estado a partir de 1

AnalogInput 5 no dispositivo 1234 significa "o valor presente da entrada analógica 5 daquele dispositivo". Toda leitura pede a propriedade presentValue do objeto; outras propriedades não são endereçáveis. A linha somente leitura Endereço de origem (barramento) do cartão Origem mostra o par tipo,instância montado enquanto você edita.

Tipos de dado

O seletor de Tipo de dado oferece quatro tipos. Escolha o que corresponde ao objeto:

Tipo de dado Serve para Notas
Float objetos analógicos um valor presente Real; doubles são estreitados para Float
Boolean objetos binários um valor presente booleano, ou o 0 e o 1 enumerados com que um objeto binário responde
Int32 múltiplos estados e outros valores inteiros respostas com sinal, sem sinal e enumeradas chegam todas aqui
String valores de cadeia de caracteres texto como o dispositivo o envia

O tipo escolhido tem de bater com o que o objeto guarda. Um dispositivo que responde com outra coisa faz a leitura daquela tag falhar: a tag vai a qualidade ruim e o motivo nomeia o que chegou ("O dispositivo respondeu um valor Single para um ponto declarado Inteiro."), em vez de um número convertido entrar na tendência, no histórico e nos alarmes. Ler um objeto analógico como booleano, ou um Real como Int32, é exatamente esse caso. O resto do dispositivo segue lendo; nada é reconectado por causa de uma tag com o tipo errado.

Escritas

Tags cujo Acesso é Leitura e escrita ou Somente escrita podem ser escritas. Uma escrita define o presentValue do objeto, tipado pelo tipo de dado da tag: Float escreve um Real do BACnet, Boolean um Boolean do BACnet, Int32 um inteiro com sinal e String uma cadeia de caracteres. Nenhuma prioridade de comando é enviada com a escrita. Equipamento que insiste num tipo diferente para o valor presente dele (algumas saídas binárias só aceitam um valor Enumerated, por exemplo) pode rejeitar a escrita; a tag então relata a falha em vez de fingir sucesso. Uma tag nova nasce como Somente leitura.

Descoberta

O botão Descobrir do Connector faz difusão de um Who-Is do BACnet e escuta as respostas I-Am por 10 segundos. Todo dispositivo que responde vira um candidato que carrega o endereço, a porta e a instância de dispositivo dele, pronto para adicionar com os campos de conexão preenchidos, e ele aparece na lista no instante em que responde, e não ao fim dos dez segundos: uma varredura que você cancela no meio guarda tudo que já tinha respondido. A varredura não navega objetos, então os candidatos chegam com zero tags; acrescente você mesmo os pares de tipo e instância de objeto.

Um dispositivo que responde por um roteador BACnet é adicionado do mesmo jeito. O candidato dele carrega o endereço do roteador e, ao lado, a rede e o endereço do próprio dispositivo naquela rede; os dois são guardados quando você o adiciona, e toda leitura é enviada ao roteador nomeando o dispositivo lá dentro. Um dispositivo achado assim, portanto, lê como qualquer outro, e o endpoint dele mostra "dispositivo via roteador". Um dispositivo adicionado à mão não tem rota e é alcançado diretamente no host dele.

Bom saber

  • Só BACnet/IP: equipamento MS/TP ou BACnet/SC só é alcançável por um roteador que o apresente em BACnet/IP, e a varredura é o que o encontra: a rota em que um dispositivo responde é guardada da varredura, então adicione-o pela lista descoberta em vez de digitar os campos dele à mão.
  • O driver se comunica pela porta UDP padrão 47808 do BACnet nesta estação; outra aplicação BACnet que segure aquela porta com exclusividade na mesma máquina pode conflitar com ele.
  • A leitura cíclica é fixa em um segundo para toda tag deste driver; os campos usuais de intervalo de leitura não são mostrados.