TwinCAT è uno dei pochi PLC dove leggere una variabile dal mondo esterno non richiede esporre nulla — basta sapere il nome.
Cos'è ADS (Automation Device Specification)
Protocollo Beckhoff proprietario ma documentato e con librerie client gratuite per .NET, Python, C/C++. Permette di leggere e scrivere qualunque variabile globale del progetto TwinCAT per nome (es. MAIN.fbProduction.iGoodCount) senza configurazione esplicita lato runtime.
3 modi per leggere da TwinCAT
- ADS diretto. Il client si autentica al runtime TwinCAT (porta 851 di default) e legge per nome. Più veloce e semplice ma richiede AmsNetId del runtime e route ADS configurata.
- OPC UA Server (modulo TF6100). TwinCAT espone un server OPC UA standard. Il MES si collega come a qualunque server OPC UA. Più portabile ma con licenza separata.
- MQTT Publisher (modulo TF6701). TwinCAT pubblica variabili su broker MQTT. Push-based, scala bene per molte CPU.
Quale scegliere
Per integrazioni MES singole su una manciata di CPU TwinCAT: ADS diretto, zero licenze, zero configurazione lato PLC. Per integrazioni multi-macchina dove serve standard: OPC UA con TF6100. Per IoT puro con migliaia di nodi: MQTT.