O que iaiops — Tap de dados industriais + diagnóstico inteligente faz?
Um servidor MCP governado que expõe 66 ferramentas em 8 protocolos industriais, mais uma camada de inteligência entre protocolos. Toda ferramenta passa pela estrutura de governança do iaiops (auditoria / orçamento / nível de risco / desfazer). Leitura primeiro. As 6 ferramentas de escrita são protegidas como Gestão de Mudanças: risk=HIGH, dry_run=True por padrão, CLI exige dupla confirmação, o valor anterior é capturado para desfazer. Nunca escreva em um sistema de controle de produção sem autorização. Faça pré-visualização / simulação validada — verifique contra equipamento real. Comece com protocols_supported para ver o que está configurado e <protocolo> doctor para testar uma conexão.
Quando rotear aqui
Tarefas que mencionam: OPC-UA / opc.tcp, Modbus, Siemens S7 / S7-1200/1500, Mitsubishi / MELSEC, MTConnect / monitoramento de máquinas CNC, MQTT / Sparkplug B / Namespace Unificado, Allen-Bradley / ControlLogix / CompactLogix / EtherNet-IP, EtherCAT / CoE / SDO / PDO / SOEM, OEE / downtime, inventário de ativos OT, diagnóstico "sem dados / tag obsoleto", inundação de alarmes / ISA-18.2.
Ferramentas por protocolo
OPC-UA (somente leitura) — endpoints opc.tcp
opcua_server_info— status, informações de build, array de namespacesopcua_browse— navega pela árvore de nós a partir de um node id (profundidade limitada)opcua_read_node— valor + tipo de dado + timestamp de origem + código de statusopcua_read_many— leitura em lote de node ids (limitada)opcua_subscribe_sample— amostragem limitada, depois retorna (nunca em loop)opcua_read_alarms— exposição de alarmes/condições ativos (melhor esforço)opcua_read_history— Acesso Histórico (HDA): histórico bruto em uma janela [início,fim]health_summary— classifica node-ids vs limites de aviso/alarmeanomaly_scan— amostra um nó, identifica outliers estatísticos
Modbus-TCP (somente leitura aqui)
modbus_read_holding(FC03),modbus_read_input(FC04),modbus_read_coils(FC01),modbus_read_discrete(FC02) — com dicas de decodificaçãomodbus_health_summary— classifica registros vs limites
Siemens S7comm (pyS7; S7-300/400/1200/1500)
s7_cpu_info— identidade da CPU + execução/paradas7_read_area— lê N itens de um tipo de uma área de memória S7s7_read_db— lê N itens de um bloco de dadoss7_read_many— lote de strings de endereço pyS7 brutass7_write_db— [ESCREVER][ALTO][MOC] escreve um valor em um DB (desativado por padrão)
Mitsubishi MC (pymcprotocol 3E; Q/L/iQ)
mc_cpu_status— tipo/código da CPU MELSECmc_read_words/mc_read_bits— lote de dispositivos word/bit a partir de um dispositivo cabeçamc_read_many— leitura aleatória de word + dword em uma única requisiçãomc_write_words— [ESCREVER][ALTO][MOC] escreve words (desativado por padrão)
MTConnect (somente leitura; todas as máquinas-ferramenta CNC)
mtconnect_probe— modelo do dispositivo (dispositivos → componentes → itens de dados)mtconnect_current— último valor de cada item de dados (snapshot da máquina)mtconnect_sample— fluxo limitado de observações recentesmtconnect_assets— ferramentas de corte / fixações / programasmtconnect_oee_snapshot— disponibilidade / execução / modo / programa (entradas OEE)
MQTT / Sparkplug B / UNS (paho-mqtt; decodificação Tahu protobuf completa)
mqtt_read_topic— coleta limitada de mensagens MQTT simplessparkplug_decode_payload— decodifica uma carga Sparkplug B bruta em métricassparkplug_subscribe_sample— amostragem limitada com decodificação completa + birth/death/seqsparkplug_node_list— nós/dispositivos de borda + status online + estado PRIMARY-HOSTuns_browse— navega pela árvore de tópicos ativa (UNS) sob um filtro (limitado)mqtt_publish— [ESCREVER][ALTO][MOC] publica/comando em um tópico (desativado por padrão)
Allen-Bradley EtherNet/IP (pycomm3; ControlLogix/CompactLogix)
eip_controller_info— identidade do controlador (prova o link CIP)eip_list_tags— descobre a lista de tags do controlador (nomes/tipos/estruturas)eip_read_tag— lê uma tag (ou elemento de array) com seu tipoeip_read_many— leitura em lote (auto-pacote múltiplo)eip_write_tag— [ESCREVER][ALTO][MOC] escreve um valor de tag (desativado por padrão)
EtherCAT (pysoem/SOEM; Linux + root/CAP_NET_RAW + NIC dedicada + escravos reais)
Instalação extra opcional pip install iaiops[ethercat]; nenhum simulador de software (somente hardware, macOS não suportado). As ferramentas degradam para um erro de ensino se pysoem/permissão/NIC/barramento estiver ausente.
ethercat_master_state— estado do mestre/contador de trabalho + contagem esperada vs encontrada de escravosethercat_slaves— varredura do barramento: enumera escravos (id/fabricante/produto/rev/endereço/estado-AL)ethercat_slave_info— um escravo: configuração SM/FMMU + resumo do dicionário de objetosethercat_read_sdo— upload CoE SDO (leitura de mailbox acíclica de uma entrada OD)ethercat_read_pdo— um snapshot cíclico da imagem de dados de processo de entrada de um escravoethercat_write_sdo— [ESCREVER][ALTO][MOC] download CoE SDO (desativado por padrão)ethercat_set_state— [ESCREVER][ALTO][MOC] transição de estado AL (pode INICIAR/PARAR movimento; desativado por padrão)
Inteligência entre protocolos
Diagnóstico — guarda-chuva skills: solução de problemas
diagnose_dataflow— localiza uma quebra "sem dados" em saltos acessíveis de um endpointhistorian_health— detecção de bad-tag / flatline / lacuna em uma sériealarm_bad_actors— análise de inundação de alarmes ISA-18.2 (taxa vs <6/12/30, Pareto de ofensores, chattering, standing) em uma lista de eventostag_health— classifica tags ofensoras por má qualidade / flatline / faixa / anomalia
Análise
oee_compute— OEE = Disponibilidade × Desempenho × Qualidadedowntime_events— detecta transições executando→parado, categoriza paradasoee_multidim— agrega OEE por máquina × peça × turnoasset_inventory— identifica ativamente endpoints (fabricante/modelo/firmware/protocolo) em um registro de ativos (descoberta ativa, não SPAN/tap passivo)monitor_changes— captura apenas as MUDANÇAS de valor de um ponto em uma janela limitada
Meta / roadmap
protocols_supported— mapa de capacidades (protocolos, status, ferramentas, parâmetros de conexão)- Roadmap: protocolos de mailbox EtherCAT EoE/FoE/SoE; EtherNet/IP PLC-5 / SLC (PCCC), Micro800; descoberta passiva de ativos; segurança de certificado OPC-UA.
Configuração
iaiops init (assistente interativo, prompts por protocolo) escreve ~/.iaiops/config.yaml; credenciais vão para o armazenamento criptografado (~/.iaiops/secrets.enc, senha mestre via IAIOPS_MASTER_PASSWORD). Execute iaiops doctor para testar cada endpoint configurado. Referência completa por protocolo, parâmetros de conexão, guia de teste com simulador e exemplos JSON MCP estão no README.
Segurança
Leitura primeiro. As 6 ferramentas de escrita (s7_write_db, mc_write_words, mqtt_publish, eip_write_tag, ethercat_write_sdo, ethercat_set_state) usam dry_run=True por padrão, exigem dupla confirmação na CLI e registram um descritor de desfazer a partir do valor/estado anterior capturado. Mudanças de estado EtherCAT podem INICIAR ou PARAR movimento de máquina. Não aponte isso para sistemas de controle de produção sem autorização. Nenhuma ferramenta retorna segredos.