In particolar modo vedremo:
Il Problema
Un tecnico PLC sta cercando di creare una semplice tabella con 20 righe e 3 colonne utilizzando WinCC Flexible, ma sta incontrando difficoltà nel rappresentare i dati in forma tabellare. La prima colonna deve essere un numero di ordine, la seconda un campo materiale alfanumerico e la terza una tolleranza numerica. L’obiettivo è avere una gestione intuitiva e dinamica dei dati, permettendo all’operatore di aggiungere, cancellare, modificare e cercare le ricette senza dover ricorrere a codici complessi.
Causa Tecnica Tabella Dinamica
Il problema principale è che WinCC Flexible non supporta direttamente la visualizzazione dei dati in una tabella dinamica. Le ricette sono progettate per gestire dati complessi e non sono facilmente adattabili a una rappresentazione tabellare. Tuttavia, è possibile creare una struttura dati alternativa utilizzando array di struct per gestire i materiali e le tolleranze.
Soluzione Definitiva per Tabella Dinamica
Passo 1: Creazione delle Strutture di Dati
Creiamo un array di struct per contenere i dati di materiale e tolleranza. Ogni struct avrà tre campi: numero di ordine, materiale e tolleranza.
Passo 2: Implementazione della Tabella
Utilizziamo un controllo tabella (table control) per visualizzare e gestire i dati in una forma tabellare. Questo controllo può essere aggiunto alla pagina HMI e configurato per mostrare i dati dall’array di struct.
Passo 3: Aggiunta e Rimozione di Righe
Implementiamo funzioni per aggiungere e rimuovere righe dinamicamente all’array di struct. Questo permetterà all’operatore di gestire facilmente i dati.
Passo 4: Sincronizzazione con il PLC
Una volta modificati i dati nella tabella, sincronizzarli con il PLC. Questo può essere fatto tramite una routine di aggiornamento che itera attraverso l’array di struct e trasferisce i dati al PLC.
Passo 5: Salvataggio e Caricamento dei Dati
Aggiungiamo funzionalità per salvare e caricare i dati dall’array di struct in un file CSV, permettendo un backup e un recupero dei dati.
Codice e Configurazione Tabella Dinamica
STRUCT MaterialeTolleranza
NumeroOrdine : INT
Materiale : STRING
Tolleranza : REAL
END_STRUCT
ARRAY<100> di MaterialeTolleranza MAT_ARRAY
// Funzione per aggiungere una nuova riga
FUNCTION AggiungiRiga
// Codice per aggiungere una nuova struttura all'array
END_FUNCTION
// Funzione per rimuovere una riga
FUNCTION RimuoviRiga
// Codice per rimuovere una struttura dall'array
END_FUNCTION
Verifica e Test della Soluzione
Verifica che la tabella dinamica funzioni correttamente, aggiungendo e rimuovendo righe e sincronizzando i dati con il PLC. Consulta la documentazione ufficiale Siemens per ulteriori dettagli.
Errori Comuni Tabella Dinamica
Ecco alcuni errori comuni e le loro soluzioni:
- Errore: Dati non sincronizzati con il PLC. Soluzione: Controlla la routine di aggiornamento.
- Errore: Tabella non visualizzata correttamente. Soluzione: Verifica la configurazione del controllo tabella.
- Errore: Impossibile aggiungere righe. Soluzione: Assicurati che l’array abbia spazio disponibile.
Domande Frequenti su Tabella Dinamica
Domanda: Come posso esportare i dati?
Risposta: Usa la funzione di salvataggio per esportare i dati in un file CSV.
Domanda: Come posso caricare i dati?
Risposta: Utilizza la funzione di caricamento per importare i dati dal file CSV.
Domanda: Posso gestire più di 20 righe?
Risposta: Sì, l’array può essere dimensionato per gestire più righe.
Conclusione
La soluzione per la tabella dinamica su S7-1200 con WinCC Flexible è semplice e permette una gestione intuitiva dei dati. Segui i passaggi sopra e consulta la documentazione ufficiale per ulteriori dettagli.
Approfondimento Tecnico Avanzato
Nell’ambito della gestione dei dati in WinCC Flexible, è fondamentale comprendere il funzionamento interno dei PLC Siemens S7-1200 e il ruolo delle tabelle dinamiche. I PLC S7-1200 utilizzano una struttura di memoria divisa in vari registri, tra cui i registri di input/output (I/O), registri di memoria a corto termine (T) e registri di memoria a lungo termine (M). Quando si tratta di gestire dati dinamici come le ricette di cui sopra, è possibile sfruttare le strutture di dati avanzate come gli array di struct. Questi array permettono di organizzare i dati in modo gerarchico, dove ogni struct può contenere più variabili, come ‘Materiale’ e ‘Tolleranza’. Questo approccio consente una gestione più flessibile e intuitiva dei dati, permettendo di accedere rapidamente ai valori necessari senza dover ricorrere a complessi codici di gestione. Inoltre, l’uso di array di struct permette di ottimizzare l’uso della memoria e delle risorse del PLC, migliorando l’efficienza complessiva del sistema.
La gestione dei dati tramite array di struct non solo offre una maggiore flessibilità nella rappresentazione dei dati, ma anche una migliore organizzazione delle informazioni, rendendo più semplice la manutenzione e la gestione a lungo termine del sistema. Utilizzando questa tecnica, è possibile creare una tabella dinamica che si adatta automaticamente al numero di ricette presenti, permettendo all’operatore di visualizzare e gestire i dati in modo intuitivo e dinamico.
Metodi Alternativi e Varianti
Per affrontare il problema della rappresentazione tabellare dei dati in WinCC Flexible, esistono diverse soluzioni alternative. Una prima opzione è l’utilizzo di pannelli HMI basati su web, come quelli offerti da WinCC Unified, che permettono di integrare controlli di terze parti, come un table control, per visualizzare dati in forma tabellare. Questo approccio offre una maggiore flessibilità nella presentazione dei dati, ma richiede una conoscenza avanzata di HTML e JavaScript. Un’altra soluzione è lo sviluppo di un’applicazione personalizzata utilizzando TIA Portal, che consente di creare interfacce utente altamente personalizzate. Tuttavia, questa opzione richiede un investimento significativo in termini di tempo e risorse.
Un approccio intermedio potrebbe essere l’uso di script di gestione dei dati all’interno di WinCC Flexible, che permettono di creare e gestire dinamicamente le ricette senza dover modificare il codice di base. Questo metodo offre un buon equilibrio tra flessibilità e facilità d’uso, ma potrebbe non essere sufficiente per esigenze molto specifiche. In ogni caso, la scelta della soluzione dipende dalle esigenze specifiche del progetto e dalle competenze disponibili all’interno dell’organizzazione.
Stanco di andare a tentativi?
Se errori come questo ti mandano in panico, probabilmente ti mancano le basi solide della programmazione PLC.
Smetti di risolvere problemi uno alla volta e impara il metodo giusto dall’inizio.

“Semplifica, automatizza, sorridi: il mantra del programmatore zen.”
Dott. Strongoli Alessandro
Programmatore
CEO IO PROGRAMMO srl







