Conexão · Sparkplug B
MQTT Sparkplug B em uma única plataforma de IoT industrial
Sparkplug B é a especificação aberta da Eclipse que transforma o MQTT comum em um protocolo autodescritivo e ciente de estado para a internet das coisas industrial. O Kilo fala Sparkplug B nativamente, como Sparkplug Host Application (aplicação host) e como Edge Node (nó de borda), sobre MQTT 3.1.1 e 5.0, testado com o TCK oficial do Sparkplug 3.0.0.
Passa no TCK oficial do Sparkplug 3.0.0 · veja os resultados
Sparkplug B · fundamentos
O que é MQTT Sparkplug B?
O MQTT leva mensagens por meio de um broker, mas deixa três perguntas em aberto: o que um tópico significa, o que um payload contém e se o remetente ainda está vivo. O Sparkplug B, a especificação aberta da Eclipse para a internet das coisas industrial, responde às três.
Um único namespace de tópicos
Toda mensagem fica sob spBv1.0/group/type/edge-node/device, então qualquer host sabe de onde veio um valor sem o manual do fabricante.
Payload Protocol Buffers
O “B” é a codificação: um schema protobuf compacto do Eclipse Tahu em que cada métrica carrega nome ou alias, tipo de dado, timestamp e valor.
Regras de estado de sessão
Certificados birth e death, números de sequência e pedidos de Rebirth dizem a cada host o que está online, então dado obsoleto nunca aparece como atual.
Sparkplug B · comparação
Sparkplug B vs MQTT: o que o Sparkplug acrescenta?
O Sparkplug B não substitui o MQTT: ele roda em qualquer broker MQTT 3.1.1 ou 5.0 e acrescenta o acordo que o MQTT puro deixa a cargo de cada fabricante.
Sparkplug B · tópicos
Como funciona o namespace de tópicos do Sparkplug B?
Todo tópico Sparkplug tem as mesmas cinco partes. O tipo de mensagem, no meio, diz o que a mensagem é; uma Host Application se anuncia em spBv1.0/STATE/host_id.
Um Edge Node fica online e lista todas as suas métricas.
Um dispositivo atrás do nó fica online com suas métricas.
Só valores alterados, envio por mudança.
Um nó ou dispositivo fica offline; seus dados ficam obsoletos.
Comandos de um host de volta a um nó ou dispositivo.
Uma Primary Host Application anuncia que está online.
Sparkplug B · estado de sessão
Como funcionam os certificados birth e death do Sparkplug?
Os certificados birth descrevem tudo o que um nó vai enviar; os certificados death, entregues pelo broker como Will do MQTT, o marcam offline no instante em que a conexão cai.
- CONNECT
NDEATH registrado como Will
O Edge Node se conecta com seu certificado death como Will do MQTT, com um número bdSeq.
- NBIRTH
Certificado birth do nó
Cada métrica do nó com tipo de dado e valor atual, o mesmo bdSeq e seq 0.
- DBIRTH
Births dos dispositivos
Um por dispositivo atrás do nó, para o host conhecer cada métrica antes de qualquer dado.
- DATA
Só mudanças
NDATA e DDATA trazem valores alterados; seq vai de 0 a 255 para o host notar qualquer lacuna.
- NDEATH
Death ou Rebirth
Se o link cair, o broker publica o NDEATH. Diante de uma lacuna, o host envia Rebirth.
Sparkplug B · papéis
O que é um Edge Node e uma Host Application no Sparkplug?
Um Edge Node é dono da sessão MQTT na borda; uma Host Application consome os dados. O Kilo cumpre os dois papéis, pelo broker que você escolher.
Gateway, PLC ou software de borda
- Publica births, dados e deaths
- Executa NCMD e DCMD
- Espera o host primário, se configurado
Qualquer broker MQTT 3.1.1 ou 5.0
- Roteia os tópicos spBv1.0
- Entrega o Will NDEATH
- Guarda o STATE retido
Plataforma IIoT Kilo
- Publica STATE como Primary Host
- Acompanha bdSeq, seq e Rebirth
- Transforma métricas em dispositivos, regras e alarmes
Sparkplug B · arquitetura
Como montar um Unified Namespace com MQTT Sparkplug?
Um unified namespace (UNS) é uma arquitetura IIoT em que cada sistema publica seu estado atual em uma única hierarquia compartilhada, normalmente um broker MQTT, em vez de integrações ponto a ponto.
- Mapeie a hierarquia da planta nos IDs do Sparkplug: o grupo para um site ou área, o Edge Node para uma linha ou célula, o dispositivo para uma máquina.
- Os certificados birth tornam cada nó autodescritivo, então um equipamento novo aparece no namespace sem mapeamento manual.
- Os certificados death mantêm o namespace fiel: no momento em que um nó morre, cada valor dele é marcado como obsoleto.
- O Kilo consome o mesmo namespace, então dashboards, regras e alarmes veem a planta exatamente como ela é publicada.
Sparkplug B · comparação
OPC UA vs MQTT Sparkplug B
Eles são complementares, não rivais: uma arquitetura IIoT comum lê os equipamentos via OPC UA na borda e os publica como Sparkplug B no broker que alimenta o unified namespace.
Sparkplug B · brokers
Qual broker MQTT funciona com Sparkplug B?
Qualquer broker que implemente o MQTT corretamente pode transportar Sparkplug B. O Kilo funciona com o broker que você já opera, via mqtt:// ou mqtts://, ou com um endpoint Cloud MQTT gerenciado.
Broker Sparkplug Compliant
Qualquer broker MQTT 3.1.1 ou 5.0 com QoS 0 e 1, mensagens retidas e o Will. É tudo de que Edge Nodes e hosts precisam.
Broker Sparkplug Aware
Também guarda os últimos certificados birth para quem se conecta depois. Útil, mas nem hosts nem Edge Nodes dependem dele.
Seu broker ou Cloud MQTT
Aponte o Kilo para o broker que seus Edge Nodes já usam, ou deixe a plataforma provisionar um endpoint gerenciado com credenciais próprias.
Sparkplug B · exemplo
Exemplo de MQTT Sparkplug B
Uma linha de envase em um site, do primeiro certificado birth até uma conexão perdida, como as mensagens aparecem no broker.
- O Edge Node line-3 registra seu NDEATH como Will e depois publica seu NBIRTH e um DBIRTH para o dispositivo filler.
- Daí em diante só as mudanças trafegam: um DDATA por mudança, cada um com o próximo número seq.
- Os comandos descem pela mesma árvore como DCMD.
- Se o gateway perder energia, o broker publica o NDEATH e todos os hosts marcam line-3 e filler como offline.
Sparkplug B · conformidade
O que é o TCK do Eclipse Sparkplug?
O Technology Compatibility Kit é a suíte de testes oficial da Eclipse Foundation para a especificação. A implementação de Sparkplug B do Kilo passa no TCK 3.0.0 assinado para os perfis Edge Node e Host Application, em MQTT 5.0 e 3.1.1, e todos os resultados são públicos.
- 28/28
- Execuções do TCK aprovadas
- 273
- Requisitos aprovados
- 2
- Perfis testados
- 6/6
- Grupos opcionais aprovados
Conexão · Sparkplug B
Como conectar dispositivos Sparkplug B a uma plataforma IoT?
Aponte o Kilo para o seu broker
Adicione um conector Sparkplug B ao broker que seus Edge Nodes já usam, ou a um endpoint Cloud MQTT, e escolha os grupos que deseja assinar.
Births viram dispositivos
Cada NBIRTH e DBIRTH registra seu nó ou dispositivo com cada métrica, tipo de dado e unidade, então não é preciso mapear payloads.
Dados, deaths e comandos
As mudanças fluem para dashboards, regras e alarmes; deaths marcam os valores como obsoletos na hora; comandos voltam como NCMD e DCMD.
Conexão · Sparkplug B
O que uma plataforma IIoT deve suportar para Sparkplug B?
- Sparkplug 3.0.0
- Perfis Edge Node e Host Application, em MQTT 3.1.1 e MQTT 5.0, testados com o TCK oficial do Sparkplug 3.0.0.
- Estado de sessão completo
- Rastreamento de bdSeq e seq, deaths entregues pelo Will, pedidos de Rebirth a cada lacuna e marcação como obsoleto no momento em que um nó ou dispositivo morre.
- STATE do host primário
- Um STATE birth retido e um STATE death como Will, para que Edge Nodes que esperam o host primário saibam quando o Kilo está escutando.
- Reordenação de mensagens
- Mensagens fora de ordem são retidas e reordenadas dentro de um timeout antes de pedir um Rebirth, então um breve soluço do broker não vira perda de dados.
- Todos os tipos de dados
- Todos os tipos escalares e de array do Sparkplug B, datasets, templates, propriedades e aliases de métricas, decodificados conforme o que cada birth declarou.
- Comandos nos dois sentidos
- Escritas NCMD e DCMD em métricas de nós e dispositivos, incluindo Node Control/Rebirth, a partir de dashboards, regras ou da API.
Conexão · Sparkplug B
O que fazer com os dados Sparkplug B?
Conexão · Sparkplug B
Perguntas frequentes sobre Sparkplug B
Sparkplug B é o mesmo que MQTT?
Não. MQTT é o transporte; Sparkplug B é uma especificação sobre ele que fixa o namespace de tópicos, o payload Protocol Buffers e as regras de estado de sessão. Toda mensagem Sparkplug B é uma mensagem MQTT, mas a maior parte do tráfego MQTT não é Sparkplug.
Quais versões de MQTT o Sparkplug B suporta?
O Sparkplug 3.0.0 roda sobre MQTT 3.1.1 e MQTT 5.0. O Kilo suporta as duas e foi testado nas duas com o TCK oficial.
Preciso de um broker especial para Sparkplug B?
Não. Qualquer broker MQTT 3.1.1 ou 5.0 que trate corretamente QoS 1, mensagens retidas e o Will funciona. Um broker Sparkplug Aware é opcional.
O Sparkplug B é open source?
A especificação é um padrão aberto da Eclipse Foundation sob a Eclipse Public License, e o schema do payload é publicado no Eclipse Tahu. Os produtos a implementam de forma independente; a implementação do Kilo é própria.
Qual é a diferença entre IIoT e IoT?
IIoT, a internet das coisas industrial, é a IoT aplicada a fábricas, utilities e infraestrutura, onde os dados vêm de PLCs, medidores e máquinas e precisam ser confiáveis, ter timestamp e ser cientes de estado. Essa confiabilidade é exatamente o que o Sparkplug B acrescenta ao MQTT.
Ainda posso usar JSON sobre MQTT?
Sim. O conector MQTT do Kilo continua fazendo o parsing de payloads JSON, então dispositivos Sparkplug B e dispositivos MQTT comuns podem conviver na mesma organização.
Conexão · Sparkplug B
Mais formas de conectar equipamentos industriais
Conectar dispositivos Sparkplug B ao Kilo
Comece grátis e aponte o Kilo para o seu broker, ou agende uma conversa e mapeamos juntos seus grupos Sparkplug, Edge Nodes e dispositivos.