OPC UA
Protocollo standard industriale per l’automazione industriale. Supporta più metodi di autenticazione e modalità di sicurezza.
I Connettori sono i blocchi costitutivi dei flussi di lavoro Meddle. Ogni connettore è un componente specializzato che può leggere dati da fonti, scrivere dati su destinazioni o elaborare e trasformare dati in transito.
I connettori sono collegati insieme in un editor di flusso di lavoro visuale per creare potenti pipeline di integrazione dati senza scrivere codice.
Meddle fornisce 44 diversi tipi di connettori organizzati in tre categorie principali:
Connettiti a sistemi di automazione industriale, PLC ed esegui analisi industriali:
OPC UA
Protocollo standard industriale per l’automazione industriale. Supporta più metodi di autenticazione e modalità di sicurezza.
Modbus
Comunicazione seriale e TCP con PLC e dispositivi industriali. Supporta tutti i tipi di registro e formati dati.
Siemens S7
Comunicazione diretta con PLC Siemens S7-300, S7-400, S7-1200 e S7-1500.
Logix
Comunicazione PLC Allen-Bradley/Rockwell via protocollo EtherNet/IP (CIP).
CoAP
Constrained Application Protocol per dispositivi IoT a risorse limitate.
gRPC
Chiama servizi gRPC remoti con TLS e polling configurabile per integrazioni industriali.
ISA-18.2
Macchina a stati per la gestione degli allarmi secondo lo standard ISA-18.2 con deadband e ritardi on/off.
OEE
Calcola l’Overall Equipment Effectiveness (Disponibilità × Prestazioni × Qualità) su finestre mobili o per turno.
OPC UA PubSub
Ricevi e invia messaggi OPC UA PubSub su trasporti MQTT o UADP (UDP multicast).
Manutenzione Predittiva
Calcola la Vita Utile Residua e score di salute da trend di segnale utilizzando regressione, moving average o EWMA.
PROFINET
Leggi e scrivi variabili da dispositivi PROFINET IO su DCE/RPC.
UNS
Costruisci gerarchie di topic Unified Namespace ISA-95 con output SparkplugB o JSON.
Integrazione con protocolli IoT, broker di messaggi e database:
MQTT
Messaggistica publish/subscribe per dispositivi IoT con supporto QoS (MQTT v3).
HTTP/REST
Connettiti a API REST e servizi web con header e metodi personalizzabili.
InfluxDB
Database time-series ottimizzato per dati industriali e IoT.
MongoDB
Database NoSQL a documenti per archiviazione dati flessibile.
SQL
Supporto per database MySQL, PostgreSQL e SQL Server.
Redis
Data store in memoria per caching e code dati in tempo reale.
Firebase
Google Cloud Firestore per storage documenti NoSQL scalabile.
AMQP
Publish/subscribe AMQP 0.9.1 di RabbitMQ con binding di exchange/coda e TLS.
Kafka
Publish/subscribe Apache Kafka con consumer group e autenticazione SASL.
MQTT v5
MQTT 5.0 con sottoscrizioni condivise, user properties e message expiry.
NATS
Publish/subscribe NATS con queue group e credenziali token o JWT.
S3
Reader e writer per object storage AWS S3 (o compatibile S3) con template di chiave.
Trasforma, filtra, instrada ed elabora dati in transito:
Filter
Whitelist o blacklist di chiavi dati specifiche.
Conveyor
Passa i dati senza modifiche per routing many-to-many.
Merge
Combina dati da più fonti con strategie basate su timing o chiavi.
Reshape
Rinomina campi o arricchisci dati con valori statici.
Trigger
Logica condizionale utilizzando espressioni MXL.
Cron
Pianifica il rilascio dei dati in momenti specifici.
Auth
Autenticazione e validazione JWT.
Anomaly Detection
Rilevamento anomalie basato su ML utilizzando Isolation Forest.
Alert
Invia notifiche basate su condizioni.
Chart
Visualizzazione dati in tempo reale.
Aggregation
Aggregazione su finestra (sum, avg, min, max, count) su finestre tumbling, sliding o count.
File Format
Analizza e serializza payload CSV e XML.
Notification
Invia notifiche a Slack, Microsoft Teams, Email, Microsoft 365 o webhook.
OnChange
Deduplica gli stream emettendo solo quando le chiavi monitorate cambiano oltre una tolleranza.
Protocol Translator
Converti tra JSON flat, JSON annidato, SparkplugB e OPC UA JSON.
Rate Limiter
Throttle token-bucket con strategia di drop o coda limitata.
Router
Routing condizionale basato su espressioni MXL con un tag _route.
Script
Esegui script Lua in sandbox con un timeout configurabile.
Transform
Estrai o calcola campi con JSONPath, template Go o valori statici.
Validation
Validazione di tipo, range e regex con azioni di drop, forward o tag.
Tutti i connettori scambiano dati utilizzando un formato payload standard chiave-valore:
{ "temperature": 25.5, "pressure": 101.3, "humidity": 60, "status": "active", "timestamp": 1234567890}Questo formato standardizzato consente a qualsiasi connettore di comunicare con qualsiasi altro connettore, indipendentemente dal protocollo o sistema sottostante.
Ogni connettore è configurato utilizzando JSON con tre sezioni principali:
OpcuaReader, MqttV3Writer)Esempio:
{ "type": "OpcuaReader", "config": { "endpoint": "opc.tcp://localhost:4840", "pollingRate": 1000 }, "variables": [ { "key": "temperature", "nodeId": "ns=1;s=Temperature" } ]}I connettori sono organizzati in fogli di lavoro (workflow) dove:
I dati fluiscono attraverso le connessioni tra i connettori, con ogni connettore che elabora i dati in parallelo per massime prestazioni.
Molti connettori reader supportano un parametro pollingRate (in millisecondi):
{ "pollingRate": 1000 // Polling ogni 1 secondo}I connettori che richiedono autenticazione tipicamente supportano più metodi:
{ "username": "user", "password": "pass"}O per autenticazione basata su token:
{ "authToken": "your-token-here"}Tutti i connettori includono gestione errori integrata e:
pollingRate appropriati per evitare di sovraccaricare i sistemiAlcuni connettori accumulano dati in memoria:
maxRetained per limitare l’uso della memoriaInizia con flussi di lavoro base reader → writer prima di aggiungere connettori di elaborazione.
Posiziona i connettori Filter all’inizio del flusso di lavoro per ridurre le dimensioni del payload e migliorare le prestazioni.
Usa i connettori Reshape per standardizzare i nomi dei campi tra diverse fonti.
Usa i connettori Trigger per rilevare condizioni di errore e instradare ai connettori Alert.
Usa i connettori Cron per elaborazione batch e rilasci dati pianificati.
Usa i connettori Auth per validare i token JWT nei flussi di dati che richiedono autenticazione.
Aggiungi connettori Anomaly Detection per identificare pattern insoliti nei tuoi dati.
Esplora la documentazione dei connettori per categoria: