Drivers
O que é um driver, onde os drivers são listados e como um deles é acrescentado à estação, 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.
O player vem do YouTube e só carrega quando você aperta o play.
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 pasta Drivers, no topo da árvore da coluna Comunicação, abre o catálogo dos que esta instalação carrega, cada um com a sua descrição, a sua contagem de dispositivos, a sua saúde e Acrescentar driver, ou Abrir e Remover o driver depois de acrescentado; o catálogo e as regras dele estão em A lista de drivers e a página de um driver.
Todo driver que o pacote carrega está pronto para uso, sem interruptor para ligá-lo ou desligá-lo: a estação acrescenta os que usa. Sob a pasta Drivers, a árvore lista os drivers acrescentados, com ou sem algo abaixo deles, então a coluna traz o que a estação está preparada para ler. Um driver é acrescentado com Acrescentar driver na linha dele no catálogo ou no menu Novo… da coluna, e removido com Remover o driver na linha dele no catálogo, na barra dele ou no menu de contexto dele. Remover não exclui nada: é recusado enquanto o driver tem um dispositivo, uma linha serial, um broker ou uma pasta, e um driver que tem algum deles está sempre acrescentado. Uma estação nova não tem driver acrescentado; uma estação atualizada de uma versão anterior começa com os drivers que já usa acrescentados.
O driver de um dispositivo é fixo
Você escolhe o driver quando cria o dispositivo: no menu Novo… da coluna o dispositivo é criado pela entrada do próprio driver, e o Acrescentar 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
Os drivers estão agrupados pela família de equipamentos que alcançam: os mesmos grupos, na mesma ordem, em que o catálogo Drivers e o Acrescentar driver do menu Novo… os listam.
CLPs
| Driver | Conversa com |
|---|---|
| Beckhoff ADS | CLPs Beckhoff TwinCAT sobre ADS/AMS. |
| Mitsubishi MC | CLPs Mitsubishi pelo driver MELSEC MC. |
| Omron | CLPs Omron: controladores CJ, CS e CP por endereço de memória sobre FINS (UDP, TCP ou Host Link numa linha serial), e controladores NJ, NX e NY por nome de variável sobre EtherNet/IP. |
| Rockwell EtherNet/IP | CLPs Allen-Bradley / Rockwell sobre EtherNet/IP (CIP). |
| Siemens S7 | CLPs Siemens S7 pelo driver S7comm. |
Protocolos industriais
| Driver | Conversa com |
|---|---|
| BACnet | Dispositivos de automação predial BACnet/IP. |
| Generic serial and TCP | Equipamentos com um protocolo próprio de texto ou de bytes, como balanças e leitores de código de barras, por uma linha serial, TCP ou UDP. |
| Modbus RTU | Registradores Modbus por uma linha serial (RS-485/232), em modo de transmissão RTU ou ASCII. |
| Modbus TCP | Registradores Modbus sobre TCP/IP, em enquadramento MBAP ou como quadros RTU para um conversor serial-Ethernet. Porta padrão 502. |
| MQTT | Dispositivos que publicam por um broker MQTT externo, em MQTT simples ou Sparkplug B. |
| OCPP | Pontos de recarga de veículos elétricos por OCPP (os pontos de recarga conectam a esta estação). |
| OPC DA | Servidores OPC Data Access clássicos via COM/DCOM, por um processo auxiliar de 32 bits só deles. |
| OPC UA | Cliente OPC Unified Architecture sobre opc.tcp. |
| SNMP | Equipamentos de rede que respondem SNMP v1, v2c ou v3, como nobreaks, PDUs, switches e sensores de sala técnica; com o Redfish para os servidores, cobre a sala técnica. |
Instrumentos e aquisição
| Driver | Conversa com |
|---|---|
| Fluke NetDAQ | Unidades de aquisição de dados Fluke NetDAQ (2640A, 2645A) e 2680 Series (2680A, 2686A), configuradas a partir das tags e lidas pela biblioteca da própria Fluke num processo auxiliar de 32 bits. |
| NI-DAQmx | Hardware de aquisição de dados da National Instruments (chassis cDAQ e seus módulos, dispositivos USB e PCI Express) pelo NI-DAQmx instalado neste computador, uma amostra por leitura. |
| SCPI instruments | Instrumentos de bancada que falam SCPI, como multímetros, fontes de alimentação e cargas eletrônicas, por TCP, por linha serial, ou por USB e GPIB através do VISA. |
Sem fio
| Driver | Conversa com |
|---|---|
| LoRaWAN | Sensores LoRaWAN e concentradores de rádio pelo servidor de rede Basics Station embutido. |
| Matter | Dispositivos residenciais Matter (comissionamento por Bluetooth). |
Web e APIs
| Driver | Conversa com |
|---|---|
| AVEVA PI | Pontos do AVEVA PI System pelo PI Web API, por HTTPS por padrão. |
| HTTP | Endpoints HTTP e HTTPS genéricos lidos ciclicamente como tags, com uma credencial opcional. |
| Redfish | API REST Redfish para hardware de servidor e de datacenter. |
Arquivos e bancos de dados
| Driver | Conversa com |
|---|---|
| Database | Tabelas do banco de dados de um sistema da fábrica (SQL Server, PostgreSQL, MySQL e MariaDB, SQLite, ou qualquer banco de dados pelo driver ODBC dele), cada tag lendo uma célula pela tabela, pela coluna e pela linha ou executando uma consulta própria; a célula ou um comando próprio da tag escritos onde uma tag manda. |
| File | Arquivos que outro programa grava numa pasta local ou de rede (CSV e texto em colunas, texto livre, JSON, XML), lidos um arquivo por vez ou de uma pasta de entrada; linhas ou arquivos inteiros gravados para esse programa onde o dispositivo permite. |
Teste
| Driver | Conversa com |
|---|---|
| Simulated | Sinais sintéticos gerados na própria aplicação, para testar sem hardware. |
O servidor Modbus não está nesta tabela: ele não é um driver, e sim a própria estação servindo as tags e as variáveis da Logic dela para CLPs, IHMs e sistemas prediais por Modbus TCP, a partir da linha própria dele, sob a pasta Servidores.
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, Enquadramento (MBAP ou RTU), 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; a linha define o modo de transmissão, RTU ou ASCII), 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: ID do nó | sim | sim | sim (endereço do servidor) |
| OPC DA | Host, Servidor / Chave | texto livre: ID do item | sim | sim | sim (os servidores de um computador) |
| 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) |
| OCPP | Identificador | tipado: número do conector; o nome da tag termina em Meter, Status ou Transaction | enviado pelo ponto de recarga | não (somente leitura) | sim (pontos de recarga conectados) |
| Redfish | Host, Porta, Usuário, Senha | texto livre: Caminho do recurso, mais um ponteiro JSON | sim | sim | sim (endereço do serviço) |
| Matter | Node ID (somente leitura) | tipado: saída, cluster e atributo; as tags vêm do dispositivo | sim | sim (os valores que o driver sabe mudar) | sim (nós comissionados, com os valores que cada um publica) |
| 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 | sim (elemento AF depois do endereço do serviço) |
| HTTP | Host, Porta, Caminho do recurso | texto livre: Caminho | sim | sim | não |
| MQTT | Broker (fixo; o broker guarda o host, a porta, o transporte e o login), Protocolo e, no Sparkplug B, os IDs de grupo, de nó de borda e de dispositivo | texto livre: Tópico, mais um caminho do valor dentro de um payload JSON, ou Métrica Sparkplug B | entregue pelo broker | sim (num tópico de comando, ou num comando Sparkplug B) | sim (escuta num broker) |
| Generic serial and TCP | Transporte (Cliente TCP ou Escuta UDP), Host, Porta, ou a Linha serial (fixa) num dispositivo de linha; depois os cartões Mensagens e Soma de verificação | tipado: modo de leitura, requisição, filtro de mensagens e onde o valor está na mensagem | sim; uma tag em escuta guarda o que o equipamento envia | sim (uma mensagem de escrita; não por UDP) | não |
| Omron | Host ou IP, Protocolo (FINS ou Tags NJ/NX por nome); por FINS, a Porta e o cartão FINS (transporte, rede, nós, unidade, timeout de resposta); numa linha serial, a Linha serial (fixa), o Unit ID (o número de unidade Host Link) e o timeout de resposta | texto livre: Endereço de memória (FINS) ou Nome da variável (NJ/NX) | sim | sim | sim (uma sondagem FINS de um CLP, e um broadcast para controladores NJ/NX) |
| SCPI instruments | Transporte (TCP (socket LXI) ou VISA), Host ou IP e Porta ou o Recurso VISA, ou a Linha serial (fixa) num dispositivo de linha; depois o cartão Instrumento (terminador, timeout de resposta, confirmação de escrita, comandos de preparação) | texto livre: Consulta, mais qual valor de uma resposta separada por vírgulas, e um comando de escrita | sim | sim (um comando de escrita, confirmado pela fila de erros do instrumento) | sim (os instrumentos que o VISA lista, e uma sondagem TCP de um host) |
| NI-DAQmx | nenhum: o cartão Dispositivo NI-DAQmx no lugar (Nome do dispositivo, e o Produto que o NI-DAQmx lê) | tipado: Canal físico e Medição, com a faixa, a ligação, o termopar ou os ajustes de contador da medição | sim | sim (linhas de saída digital e saídas de tensão) | sim (todo dispositivo que o NI MAX conhece, com os canais) |
| Fluke NetDAQ | Host ou IP; depois o cartão Instrumento (Canal base, Velocidade de varredura) | tipado: Ponto (um canal analógico e a sua Função, uma linha digital, um relé ou o totalizador) | sim; o instrumento varre no menor intervalo entre as tags do dispositivo | sim (linhas digitais e relés, e o totalizador zerado) | não |
| SNMP | Host, Porta; depois o cartão Agente SNMP (versão, community ou usuário SNMPv3 e segurança, timeout de resposta, novas tentativas) | texto livre: OID, em números ou pelo nome padrão | sim | sim (um SET que o agente aceita; um objeto padrão que a MIB declara somente leitura fica somente leitura) | sim (uma varredura das subárvores padrão de um agente) |
| File | nenhum: o cartão Pasta e arquivo no lugar (Caminho da pasta, Nome do arquivo ou o padrão da pasta de entrada, Ler de, Formato do arquivo), depois os cartões Texto do arquivo e Escrita | tipado: o que a tag lê (um valor, o arquivo inteiro ou um dado do arquivo) e, para um valor, uma coluna e uma linha (CSV), uma linha e os caracteres dela (texto livre) ou um caminho (JSON, XML) | sim | sim (num dispositivo que permite escrita: uma linha acrescentada, o arquivo inteiro substituído ou outro arquivo indicado) | sim (um arquivo, o de um dispositivo ou um digitado) |
| Database | nenhum: o cartão Banco de dados no lugar (Tipo de banco de dados, depois Servidor, Porta, Nome da instância e Nome do banco de dados, o Arquivo do banco de dados, ou a Origem de dados ou texto de conexão), depois o cartão Entrada (Usuário e Senha, e no SQL Server a entrada com a conta do Windows e a Criptografia) | tipado: como a tag lê (uma célula por Tabela, Coluna do valor e Linha a ler, ou o Texto da consulta própria) | sim | sim (a célula que lê, ou o comando de escrita próprio) | sim (as tabelas do banco de dados de um dispositivo) |
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 Connector nunca lista nem oferece um driver que o pacote em execução não carrega. Uma configuração que chega com dispositivos assim mesmo (um backup restaurado, uma configuração de outra máquina) os mantém: o driver continua listado, no catálogo e sob a pasta Drivers, 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.
Quais drivers um pacote carrega é lido do registro de drivers do Connector, que só existe depois que o Connector iniciou. Até lá todo driver conta como presente, então o catálogo se estabiliza alguns segundos depois da inicialização e então fica parada pela sessão inteira, mesmo enquanto o Connector é 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.