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