Drivers

O que é um driver, como drivers são habilitados e desabilitados, o driver fixo de um dispositivo, a tabela de todos os drivers que este produto conhece, o que cada página de driver documenta e a nota sobre drivers que um pacote não carrega.

Ver como Markdown

Um driver é o protocolo que a estação usa para conversar com uma família de equipamentos: registradores Modbus sobre TCP, um servidor OPC UA, um CLP Siemens. Todo dispositivo da página Connector pertence a exatamente um driver, e o driver decide quais campos de conexão o dispositivo mostra, como as tags dele são endereçadas, quais tipos de dado elas podem carregar, se podem ser escritas, se o driver consegue varrer atrás de equipamento, e se a estação as lê ciclicamente ou o equipamento envia por push. Este grupo tem uma página por driver; esta página é o que todas elas têm em comum.

O registro

O conjunto de drivers é fixo: ele vem com a aplicação e não pode ser estendido pela página. A linha Drivers, no topo da coluna Comunicação, lista os que esta instalação carrega, cada um com a sua descrição, a sua contagem de dispositivos, a sua saúde e um par habilitar/desabilitar; a tabela e as regras dela estão em A lista de drivers e a página de um driver.

Os drivers vêm habilitados. Desabilitar um apenas esconde o grupo dele da árvore, e isso é recusado enquanto o driver ainda tem dispositivos (ou, no Modbus RTU, linhas seriais), então um dispositivo configurado nunca some da vista. Habilitar um acrescenta um grupo vazio sob a linha Drivers sem dispositivos da árvore. Adicionar um dispositivo a um driver habilita aquele driver sozinho. O conjunto de habilitados é persistido junto com a configuração e viaja com os backups.

O driver de um dispositivo é fixo

Você escolhe o driver quando cria o dispositivo: o menu Novo… da coluna nomeia o driver em que o dispositivo vai cair, e o Adicionar dispositivo na página de um driver cria sob aquele driver. Dali em diante o cartão Dispositivo mostra o driver como texto somente leitura. Para mudar um dispositivo para outro protocolo, crie um dispositivo novo sob o outro driver e exclua o antigo; o endereço muda, então as referências têm de ser apontadas para as tags novas pelo cartão Usada por de cada tag.

Todos os drivers

Driver Conversa com
Simulated Sinais sintéticos gerados na própria aplicação, para testar sem hardware.
Modbus TCP Registradores Modbus sobre TCP/IP. Porta padrão 502.
Modbus RTU Registradores Modbus por uma linha serial (RS-485/232).
OPC UA Cliente OPC Unified Architecture sobre opc.tcp.
Siemens S7 CLPs Siemens S7 pelo driver S7comm.
Rockwell EtherNet/IP CLPs Allen-Bradley / Rockwell sobre EtherNet/IP (CIP).
Beckhoff ADS CLPs Beckhoff TwinCAT sobre ADS/AMS.
Mitsubishi MC CLPs Mitsubishi pelo driver MELSEC MC.
BACnet Dispositivos de automação predial BACnet/IP.
IEC 61850 IEDs de subestação IEC 61850 sobre MMS. Não incluído no pacote distribuído (veja abaixo).
OCPP Pontos de recarga de veículos elétricos por OCPP (os pontos de recarga conectam a esta estação).
Redfish API REST Redfish para hardware de servidor e de datacenter.
Matter Dispositivos residenciais Matter (comissionamento por Bluetooth).
LoRaWAN Sensores LoRaWAN pelo servidor de rede Basics Station embutido.
AVEVA PI Pontos do AVEVA PI System pelo PI Web API, por HTTPS por padrão.
HTTP Endpoints HTTP/JSON genéricos lidos ciclicamente como tags.

O registro também conhece o OPC DA (o OPC Data Access clássico sobre COM/DCOM), mas nenhum driver o atende neste produto: ele nunca é listado, nunca é habilitado e não aceita dispositivo.

O que os drivers têm em comum, e onde diferem

O Connector desenha um editor só para todo driver e deixa o driver decidir quais partes aparecem. Esta tabela diz o que esperar antes de abrir a página de um driver:

Driver Campos de conexão na página do dispositivo Endereçamento da tag Intervalo de leitura Escrita em tag Descobrir
Simulated nenhum o nome da tag, mais a forma do sinal sim sim sim (o catálogo dele)
Modbus TCP Host, Porta, Unit ID, Intervalo mínimo entre transações tipado: classe e número do registrador sim sim sim (varredura por host ou CIDR)
Modbus RTU Linha serial (fixa), Unit ID tipado: classe e número do registrador sim sim sim (sondagem de unit ids numa linha)
OPC UA Host, Porta, Caminho do recurso, Usuário, Senha texto livre: Node id sim sim sim (endereço do servidor)
Siemens S7 Host, Rack / Slot tipado: área, DB, byte, bit sim sim não
Rockwell EtherNet/IP Host, Slot texto livre: Tag do controlador, mais um deslocamento sim sim sim (difusão)
Beckhoff ADS Host, Porta, IP local (AMS) texto livre: Símbolo sim sim não
Mitsubishi MC Host, Porta texto livre: Endereço do dispositivo fixo em 1 s sim não
BACnet Host, Porta, Device Id tipado: tipo de objeto e instância fixo em 1 s sim sim (Who-Is)
IEC 61850 Host, Porta texto livre: Caminho MMS fixo em 1 s sim não
OCPP Identificador tipado: número do conector; o nome da tag termina em Meter ou Status enviado pelo ponto de recarga não (somente leitura) sim (pontos de recarga conectados)
Redfish Host, Usuário, Senha texto livre: Caminho do recurso, mais um ponteiro JSON sim sim não
Matter Node ID (somente leitura) o nome da tag é o cluster sim não (somente leitura) sim (nós comissionados)
LoRaWAN Identificador (DevEUI), Server / Key (chave da aplicação) tipado: canal ou deslocamento, tipo LPP enviado pelo sensor não (somente leitura) não
AVEVA PI Host, Porta, Caminho do recurso, Transporte, Usuário, Senha, Token bearer texto livre: Caminho PI sim sim não
HTTP Host, Porta, Caminho do recurso texto livre: Caminho sim sim não

Cada driver também reduz a lista de Tipo de dado que uma tag oferece ao que ele realmente consegue empacotar; a lista exata está na página do driver. Onde a tabela diz "fixo em 1 s", o driver ignora o intervalo configurado, então as páginas do dispositivo e da tag escondem o campo Intervalo de leitura nele. Onde ela diz "somente leitura", o campo Acesso oferece apenas Somente leitura e o campo de escrita nunca aparece.

O que toda página de driver documenta

Cada página de driver percorre as mesmas seções na mesma ordem: os campos de conexão que o cartão Dispositivo mostra e como eles montam o Base URI; como uma tag é endereçada (os campos tipados ou o símbolo em texto livre, e o endereço de barramento somente leitura que o painel mostra em prévia); os tipos de dado oferecidos; a descoberta, quando o driver a tem; as escritas, quando o driver as aceita; e as particularidades do driver (credenciais, certificados, tempos, um servidor de rede que a estação hospeda, pareamento).

Um driver que o pacote não carrega

O driver IEC 61850 compila e roda numa instalação de desenvolvimento, mas não entra no pacote distribuído: a biblioteca de protocolo dele é licenciada em termos que não permitem entregá-la dentro do instalador. O Connector nunca lista um driver que o pacote em execução não carrega, e nunca o habilita. Uma configuração que chega com dispositivos assim mesmo (um backup restaurado, uma configuração de outra máquina) os mantém: a linha do driver continua listada enquanto esses dispositivos existirem, a descrição dela diz "Driver não incluído neste pacote.", e a página do driver e todo dispositivo sob ele carregam um aviso dizendo o mesmo. Esses dispositivos ficam offline e mantêm as configurações deles; podem ser excluídos, mas não copiados, e nenhum dispositivo novo nem varredura de descoberta pode ser iniciado sob aquele driver. Habilitar a linha é recusado com "'IEC 61850' não foi habilitado: Driver não incluído neste pacote."

Quais drivers um pacote carrega é lido do registro de plugins do servidor embutido, que só existe depois que o servidor iniciou. Até lá todo driver conta como presente, então a lista de drivers se estabiliza alguns segundos depois da inicialização e então fica parada pela sessão inteira, mesmo enquanto o servidor é parado e iniciado de novo.

O código de um driver é carregado uma vez, para todo o tempo em que a aplicação roda. Parar e iniciar a comunicação reconstrói os dispositivos em execução e a lista de drivers a partir dessa mesma carga, que é o que mantém a memória da estação estável ao longo de um dia de reinícios. A consequência é que substituir em disco os arquivos de um driver só vale depois que a própria aplicação é reiniciada.