Tempo di lettura: 6 minuti

Il Problema

Un tecnico PLC si è trovato a dover creare nel PLC S7-1200 un database per lo storico degli allarmi. Normalmente, questo viene fatto sul supervisore, ma in questo caso, si richiede di farlo direttamente sul PLC. Il database deve contenere data, ora e descrizione dell’allarme, con una funzionalità di sovrascrittura automatica quando viene riempito. Questo è un problema tecnico specifico che necessita di una soluzione dettagliata.

Causa Tecnica s7-1200 db storico allarmanti

La creazione di un database storico allarmanti nel PLC S7-1200 richiede una buona conoscenza delle istruzioni di movimento e della gestione delle stringhe. È necessario dichiarare due array globali per memorizzare il numero degli allarmi e le ore di verifica. Poi, è necessario utilizzare istruzioni come MOVE per trasferire i dati negli array e S_MOVE per gestire le stringhe. Inoltre, è importante capire come utilizzare funzioni come POKE_BLK per spostare blocchi di dati all’interno dello stesso database.

Soluzione Definitiva per s7-1200 db storico allarmanti

Passo 1: Dichiarazione degli Array

Dichiara due array globali: uno per il numero degli allarmi (int) e uno per le ore (dint).

Passo 2: Trasferimento dei Dati

Utilizza l’istruzione MOVE per trasferire i dati negli array. Ad esempio, usa un MOVE BLOCK per spostare le word nell’array di allarme e le dword nell’array delle ore.

Passo 3: Gestione delle Stringhe

Per gestire le stringhe, utilizza l’istruzione S_MOVE. Assicurati di dichiarare l’array come stringa.

Passo 4: Funzione POKE_BLK

Utilizza la funzione POKE_BLK per spostare blocchi di dati all’interno dello stesso database. Questo è particolarmente utile per sovrascrivere il più vecchio allarme quando il database è pieno.

Passo 5: Visualizzazione dei Dati

Per visualizzare i dati singolarmente, utilizza l’istruzione FIELDREAD.

Codice e Configurazione s7-1200 db storico allarmanti

ARRAY<INT> [10] A;  // Array per gli allarmi
ARRAY<DINT> [10] B;  // Array per le ore

// MOVE BLOCK per gli allarmi
MOVE BLOCK A[2], #DB_source, 2
// MOVE BLOCK per le ore
MOVE BLOCK B[2], #DB_source, 2
// S_MOVE per la stringa
S_MOVE #stringa, A[1]
// POKE_BLK per spostare blocchi di dati
POKE_BLK(area_src:=#DB_source, dbNumber_src:=#DB_number_source, byteOffset_src:=#Bit_offset_source, area_dest:=#area_dest, dbNumber_dest:=#DB_number_dest, byteOffset_dest:=#Bit_offset_dest, count:=#count)

Verifica e Test della Soluzione

Esegui una checklist dettagliata per verificare che il database storico allarmanti funzioni correttamente. Assicurati che i dati vengano memorizzati correttamente e che il più vecchio allarme venga sovrascritto automaticamente. Per maggiori dettagli consulta la documentazione ufficiale Siemens.

Errori Comuni s7-1200 db storico allarmanti

Ecco alcuni errori comuni e le loro soluzioni:

  • Errore nella gestione delle stringhe: Assicurati di utilizzare l’istruzione S_MOVE per trasferire stringhe.
  • Problemi di sovrascrittura: Verifica che la logica di sovrascrittura sia implementata correttamente.
  • Errori di configurazione del database: Assicurati che gli array siano correttamente dichiarati e configurati.

Domande Frequenti su s7-1200 db storico allarmanti

Ecco alcune domande frequenti e le loro risposte:

  • Come posso trasferire una stringa? Utilizza l’istruzione S_MOVE.
  • È possibile sovrapporre indirizzi sorgente/destinazione? Sì, è possibile utilizzare la funzione POKE_BLK per spostare blocchi di dati nello stesso database.
  • Come posso visualizzare i dati singolarmente? Utilizza l’istruzione FIELDREAD.

Conclusione

La creazione di un database storico allarmanti nel PLC S7-1200 è una soluzione pratica per monitorare e gestire gli allarmi in modo efficiente. Segui le best practices per garantire un’implementazione corretta e consulta risorse correlate come forum PLC o la documentazione Siemens per ulteriori dettagli.

Approfondimento Tecnico Avanzato

L’approfondimento tecnico avanzato per la creazione di un database storico degli allarmi nel PLC S7-1200 richiede una comprensione dettagliata delle operazioni interne del PLC e del software TIA Portal. Quando si crea un database per lo storico degli allarmi, è fondamentale conoscere i registri coinvolti e come gestirli. Il PLC S7-1200 utilizza principalmente registri come DBX e INT per memorizzare dati di vari tipi, inclusi interi, dati di tempo e stringhe. Per la gestione delle stringhe, è necessario utilizzare istruzioni come S_MOVE per copiare blocchi di stringhe da un’area di memoria all’altra. Inoltre, è essenziale comprendere come utilizzare funzioni come POKE_BLK per spostare blocchi di dati all’interno del database. Questo approccio richiede una buona conoscenza delle posizioni degli indirizzi e della gestione della memoria del PLC, garantendo così un funzionamento efficiente e sicuro del sistema.

La configurazione di un database nel PLC implica anche la gestione di vari registri di stato e di controllo. Ad esempio, è possibile utilizzare registri come DBX per memorizzare le ore e i minuti degli allarmi, mentre INT può essere usato per contare il numero di allarmi registrati. La gestione di questi registri è cruciale per garantire che il database funzioni correttamente e che i dati vengano memorizzati e recuperati senza errori. Inoltre, è importante comprendere come le operazioni di lettura e scrittura su questi registri influenzano le prestazioni complessive del sistema.

Metodi Alternativi e Varianti

Esistono diverse strade per affrontare il problema della creazione di un database storico degli allarmi sul PLC S7-1200. Una variante comune è l’utilizzo di blocchi di memoria predefiniti (DB) con dimensioni specifiche per memorizzare i dati degli allarmi. Questo approccio è semplice e diretto, ma può essere limitato dalla capacità di memoria disponibile. Un’alternativa più flessibile è l’uso di array dinamici, che consentono di adattare la dimensione del database in base al numero di allarmi registrati. Tuttavia, questa soluzione richiede una maggiore complessità nella gestione dei dati e nella programmazione.

Un altro metodo alternativo è l’integrazione di un sistema di gestione dei dati esterno collegato al PLC tramite un’interfaccia di comunicazione, come Modbus o Ethernet/IP. Questo approccio offre una maggiore flessibilità e capacità di memorizzazione, ma richiede una configurazione e manutenzione aggiuntiva. Ogni metodo ha i suoi pro e contro: la soluzione basata sui DB è più semplice e diretta, mentre le soluzioni dinamiche e esterne offrono maggiore flessibilità e capacità di memorizzazione, ma con una maggiore complessità di implementazione.

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.


Scopri i Corsi TIA Portal per Principianti →

IT EN ES FR HI DE ZH