Leggere i dati da un PLC Siemens senza riscrivere il programma
Per leggere i dati di un PLC Siemens bisogna sapere in quale blocco dati stanno e usare il protocollo che la CPU supporta. Le S7-1500 e le S7-1200 dal firmware V4.4 hanno un server OPC UA con licenza runtime; sulle S7-300 e S7-400, o dove la licenza manca, si usa il protocollo S7.
Cosa colleghiamo
Colleghiamo il vostro software alla CPU Siemens attraverso la porta Ethernet che già usa il pannello operatore. Il programma del PLC resta com’è: chiediamo solo un blocco dati in più, il DB di scambio, dove il programmatore copia a ogni ciclo i valori che ci interessano.
Il DB di scambio è la scelta che più conta in tutto il progetto. Se leggiamo direttamente le variabili interne e tra sei mesi l’integratore che segue la macchina sposta un indirizzo, la lettura si rompe senza che nessuno se ne accorga. Con un DB dedicato, l’indirizzo che leggiamo resta fermo anche quando il programma cambia.
Il metodo dipende dalla famiglia. Le S7-1500 hanno un server OPC UA integrato nella CPU; le S7-1200 lo hanno dal firmware V4.4 (comunicato Siemens, dicembre 2019). In entrambi i casi serve la licenza runtime OPC UA di Siemens. Le S7-300 e S7-400 non hanno OPC UA nella CPU e si leggono con il protocollo S7 sulla porta TCP 102, lo stesso che usa TIA Portal o STEP 7.
Cosa leggiamo e dove sta
Le righe di un DB di scambio tipo per una macchina di assemblaggio.
| Dato | Dove sta nel PLC | Direzione | Frequenza |
|---|---|---|---|
| Contapezzi totale e scarti | DB di scambio, interi a 32 bit | PLC → software | Ogni secondo |
| Stato macchina | DB di scambio, un intero con codici concordati | PLC → software | Ogni secondo |
| Allarmi attivi | DB di scambio, una parola di bit per gruppo | PLC → software | Ogni secondo |
| Tempo ciclo dell’ultimo pezzo | DB di scambio, reale | PLC → software | A ogni pezzo |
| Ore di funzionamento dei motori | DB di scambio, copiate dal DB di manutenzione | PLC → software | Ogni 10 minuti |
| Codice ordine in lavorazione | DB di scambio, stringa | Software → PLC | A ogni cambio ordine |
Come è fatta l’architettura
Un servizio di raccolta in stabilimento legge le CPU, una connessione per PLC, e scrive i valori in un database storico. Sopra quel database lavorano il resto del software: la dashboard di reparto, il calcolo dell’OEE, il consuntivo che torna all’ERP.
Sulle S7-1200 e S7-1500 lette con il protocollo S7, il programmatore deve abilitare in TIA Portal l’accesso PUT/GET dal partner remoto e togliere l’accesso ottimizzato al blocco, ma solo sul DB di scambio. Sono due spunte e un download del programma, da fare durante una sosta concordata.
Sicurezza
- Il protocollo S7 non ha autenticazione né cifratura: la CPU va tenuta su una rete di macchina separata, e il servizio di raccolta è l’unico punto che la vede.
- Con PUT/GET attivo, chiunque raggiunga la CPU può leggere e scrivere i DB non ottimizzati e le aree di merker: per questo gli altri blocchi restano ottimizzati, e il DB di scambio contiene solo dati di lettura più il codice ordine.
- Dove la CPU ha OPC UA, preferiamo quello: utenti, certificati e traffico cifrato.
- Il servizio di raccolta non accetta connessioni dall’esterno; manda i dati verso la sede, mai il contrario.
Domande frequenti
Parliamone in 30 minuti
Raccontateci il processo e cosa non funziona: vi diciamo se e come lo risolveremmo, con tempi e costi indicativi.
