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