In particolar modo vedremo:
Il Problema
Un tecnico PLC ha incontrato un problema con la condivisione dei dati tra due contatori S7-1200. Quando attiverà l’ingresso di un contatore, anche l’altro conta e quando userà il reset di un contatore si resetta anche l’altro. Questo articolo ti mostrerà come risolvere questo problema.
Causa Tecnica Condivisione Dati
Il problema principale è dovuto alla condivisione dei dati tra i contatori. Quando si utilizza lo stesso database di istanza per entrambi i contatori, i dati vengono condivisi, causando comportamenti indesiderati.
Soluzione Definitiva per Condivisione Dati
Passo 1: Dichiara il contatore come multi istanza
Per risolvere il problema, dichiara ogni contatore come multi istanza. In questo modo, ogni FB avrà i propri dati e non condividerà informazioni.
Passo 2: Configura il DB di Istanza
Assicurati di configurare correttamente il DB di Istanza per ogni contatore. Ogni DB di Istanza deve essere dedicato a un singolo contatore.
Passo 3: Verifica le Variabili Globali
Verifica che le variabili globali siano correttamente associate ai rispettivi contatori e non condividono dati tra di loro.
Passo 4: Test del Sistema
Dopo aver configurato correttamente i contatori, esegui dei test per assicurarti che ogni contatore funzioni indipendentemente.
Passo 5: Salva le Impostazioni
Salva le modifiche apportate e riavvia il sistema per verificare che il problema sia stato risolto definitivamente.
Codice e Configurazione Condivisione Dati
FB_Contatore CTU1, DB3, VAR_Globale1; FB_Contatore CTU2, DB4, VAR_Globale2;
In questo esempio, DB3 e DB4 sono DB di Istanza diversi per i rispettivi contatori.
Verifica e Test della Soluzione
Per verificare che il problema sia stato risolto, esegui dei test con entrambe le funzioni di contatore. Assicurati che ogni contatore contenga e resetti indipendentemente.
Per maggiori dettagli consulta la documentazione ufficiale Siemens
Errori Comuni Condivisione Dati
Ecco alcuni errori comuni che possono causare la condivisione dei dati tra contatori S7-1200:
- Utilizzo dello stesso DB di Istanza per entrambi i contatori
- Variabili globali condivise tra i contatori
- Impostazioni di configurazione errate
Domande Frequenti su Condivisione Dati
Domanda 1: Come posso prevenire la condivisione dei dati tra contatori?
Risposta: Dichiara ogni contatore come multi istanza e utilizza DB di Istanza diversi per ciascuno.
Domanda 2: Cosa devo controllare se i contatori continuano a condividere i dati?
Risposta: Verifica le variabili globali e assicurati che siano dedicate a ciascun contatore.
Domanda 3: Quali sono i segni di condivisione dei dati?
Risposta: Quando un contatore influisce sul conteggio o sul reset dell’altro.
Conclusione
Per risolvere il problema di condivisione dei dati tra contatori S7-1200, dichiara ogni contatore come multi istanza e utilizza DB di Istanza diversi. Segui questi passaggi per correggere l’errore e assicurarti che ogni contatore funzioni correttamente.
Per ulteriori risorse consulta il forum PLC
Approfondimento Tecnico Avanzato
Nel mondo dei PLC, la condivisione dei dati tra contatori S7-1200 può risultare complessa a causa della struttura interna basata sui registri di dati (DB). Quando due contatori condividono lo stesso database di istanza (DB), i registri di dati vengono gestiti in un unico spazio di memoria, il che può portare a comportamenti indesiderati come quelli descritti nel problema iniziale. Ogni FB (Blocco Funzione) deve avere il proprio spazio di dati per evitare conflitti. Tecnicamente, quando si dichiara un FB come multi istanza, ogni istanza del FB avrà i propri registri di dati assegnati, evitando così la condivisione di informazioni tra contatori. Questo approccio è fondamentale per garantire che ogni contatore funzioni indipendentemente, mantenendo la propria conteggiatura e gestione degli ingressi.
L’architettura interna del S7-1200 prevede che ogni FB gestisca i propri dati tramite registri specifici all’interno del DB assegnato. La configurazione corretta del DB di Istanza per ogni contatore è essenziale per il funzionamento corretto e indipendente dei contatori. Utilizzando registri di dati separati per ogni contatore, si evita che le variabili di uno influenzino l’altro, garantendo un conteggiatura accurata e indipendente per ciascun contatore.
Metodi Alternativi e Varianti
Esistono diverse strategie per affrontare il problema della condivisione dei dati tra contatori S7-1200. Oltre alla dichiarazione di multi istanza, un approccio alternativo è l’utilizzo di variabili globali distinte per ciascun contatore. Questo metodo richiede una maggiore attenzione nella gestione delle variabili, ma può essere più semplice da implementare in alcuni casi. Un’altra variante è l’uso di moduli di memoria esterna (RAM esterni) per archiviare i dati dei contatori, garantendo una separazione completa tra i due contatori. Pro e contro di ciascun metodo includono: la dichiarazione multi istanza è più pulita e sicura, ma richiede una configurazione accurata; l’uso di variabili globali distinte può essere più intuitivo ma richiede una gestione più attenta per evitare errori; l’uso di moduli di memoria esterni offre una separazione assoluta ma può essere più costoso e complesso da implementare.
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







