In particolar modo vedremo:
Il Problema
Un tecnico PLC sta provando ad usare Snap7 in collegamento con un S7-1200. Gli unici vi che funzionano sono CliWriteArea e CliReadArea. CliDBRead e CliDBWrite mi danno come errore CPU:Function non Available. Inoltre in CliWriteArea ha delle enormi difficoltà a convertire il dato numerico da inviare al PLC. Grazie in anticipo dell’aiuto.
Causa Tecnica S7-1200 Snap7 DB Error
La causa principale dell’errore S7-1200 Snap7 DB Read/Write è spesso legata alla configurazione del DB nel PLC. Assicurati che il DB che leggi/scrivi esista nel PLC e che il dato numerico sia convertito correttamente, specialmente per dati maggiori di un byte.
Soluzione Definitiva per S7-1200 Snap7 DB Error
Step 1: Verifica l’esistenza del DB
Assicurati che il DB che vuoi leggere/scrivere esista nel PLC S7-1200.
Step 2: Configurazione corretta dei dati
Per dati numerici maggiori di un byte, attento all’inversione dei byte che Siemens effettua.
Step 3: Esempio di codice Snap7
Ecco un esempio di codice per Snap7:
snap7::ConnectionOptions options;
options.ServerAddress = "192.168.0.1";
snap7::Server server(options);
server.Connect();
snap7::PLC plc(server);
plc.Connect();
// Lettura DB
plc.ReadDB(1, &data, 100);
// Scrittura DB
plc.WriteDB(1, &data, 100);
plc.Disconnect();
server.Disconnect();
Codice e Configurazione S7-1200 Snap7 DB Error
Ecco un esempio di configurazione per il DB nel PLC S7-1200:
// Definisci il DB
DB 1 VAR
Result : BOOL;
END_VAR
Verifica e Test della Soluzione
Per verificare la soluzione, esegui il programma e controlla che il DB venga letto/scritto correttamente. Per maggiori dettagli consulta la documentazione ufficiale Siemens.
Errori Comuni S7-1200 Snap7 DB Error
Ecco alcuni errori comuni e le loro soluzioni:
- Errore: DB non disponibile – Verifica l’esistenza del DB nel PLC.
- Errore: Conversione dati errata – Assicurati dell’inversione dei byte per dati maggiori di un byte.
Domande Frequenti su S7-1200 Snap7 DB Error
Domanda 1: Come posso risolvere l’errore S7-1200 Snap7 DB Read/Write?
Risposta: Verifica l’esistenza del DB nel PLC e la corretta conversione dei dati.
Domanda 2: Perché ho un errore di funzione non disponibile?
Risposta: Potrebbe essere dovuto a un DB non configurato correttamente.
Domanda 3: Come posso configurare il DB nel PLC S7-1200?
Risposta: Utilizza la configurazione DB nel TIA Portal e assicurati che sia accessibile.
Conclusione
Risolvere l’errore S7-1200 Snap7 DB Read/Write richiede una verifica dell’esistenza del DB e la corretta configurazione dei dati. Per ulteriori risorse, visita il forum PLC.
Approfondimento Tecnico Avanzato
La comunicazione tramite Snap7 con un PLC Siemens S7-1200 è complessa e richiede una comprensione approfondita del funzionamento interno del PLC e dei registri coinvolti. Quando si tratta di operazioni di lettura/scrittura su DB, è fondamentale conoscere la struttura dei dati e il modo in cui il PLC gestisce l’inversione dei byte. Il PLC S7-1200 utilizza una specifica architettura di memoria divisa in diverse aree, tra cui la memoria dati (Data Memory), la memoria per i blocchi di programmazione (Program Memory), e le aree di memoria per i DB (DB Memory). Quando si legge o si scrive in un DB, è necessario conoscere la posizione esatta dei registri e come il PLC gestisce la conversione dei dati, specialmente per valori che superano un singolo byte. Per esempio, quando si inviano dati numerici, è necessario considerare l’ordine dei byte (endianness) e come il PLC Siemens converte questi dati per la memorizzazione. Comprendere questi dettagli può aiutare a risolvere molti problemi di comunicazione e a migliorare l’efficienza delle operazioni di lettura/scrittura.
Un altro aspetto da considerare è il modo in cui il PLC gestisce le funzioni di lettura e scrittura. Le funzioni interne come CliReadArea e CliWriteArea operano a livello di area di memoria, e la loro implementazione richiede una conoscenza approfondita delle specifiche tecniche del PLC. In particolare, la lettura e la scrittura di DB implicano l’uso di specifici comandi che l’utente deve conoscere per evitare errori comuni come la CPU:Function non Available. Inoltre, la configurazione corretta dei parametri di comunicazione e la comprensione della sequenza di operazioni necessarie per accedere ai DB del PLC sono essenziali per evitare errori e garantire un funzionamento efficiente.
Metodi Alternativi e Varianti
Esistono diverse strategie per affrontare i problemi di lettura/scrittura su DB con Snap7 e PLC S7-1200. Una soluzione alternativa è l’uso di librerie di terze parti che offrono funzionalità aggiuntive e un’interfaccia più user-friendly rispetto a Snap7. Ad esempio, alcune librerie forniscono strumenti per la gestione automatica dell’inversione dei byte, riducendo così il carico di lavoro dell’utente. Tuttavia, questa soluzione può comportare costi aggiuntivi e potrebbe non essere compatibile con tutte le versioni del PLC.
Un altro approccio alternativo è l’uso di un linguaggio di programmazione più adatto alla comunicazione PLC, come il C o il C++. Questo metodo offre un maggiore controllo sulle operazioni di lettura/scrittura e permette di implementare soluzioni personalizzate. Tuttavia, richiede una conoscenza approfondita del linguaggio di programmazione e delle specifiche tecniche del PLC, il che può renderlo meno accessibile per gli utenti meno esperti.
Infine, un metodo variante consiste nell’utilizzare un software di configurazione e di comunicazione PLC come TIA Portal di Siemens. Questo software offre un’interfaccia grafica per la configurazione del PLC e la comunicazione tramite Snap7, semplificando il processo e riducendo il rischio di errori. Tuttavia, questo approccio può essere limitato dalle funzionalità offerte dal software stesso e potrebbe non essere adatto a soluzioni personalizzate.
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







