In particolar modo vedremo:
Il Problema
Un tecnico PLC ha bisogno di fare una moltiplicazione con un numero intero che risiede in una word, una costante 0,00000028. Quando inserisce nel box moltiplicazione i parametri, definendo Real, ma nel Out inserisce o MW10 o MD10, gli dà sempre errore… come fare?
Causa Tecnica Moltiplicazione Reale Intera
Per eseguire una moltiplicazione tra un numero reale e un numero intero su S7-1200, devi trasformare il numero intero in numero reale. Non è possibile fare calcoli tra entità diverse. Prima devi trasformare la WORD in REAL (puoi appoggiare il risultato della conversione ad una variabile locale), e poi fai la moltiplicazione tra due variabili REAL. Il risultato lo dovrai, ovviamente, scrivere in una variabile REAL.
Soluzione Definitiva per Moltiplicazione Reale Intera
Passo 1: Conversione da Intero a Real
Converti il numero intero in una variabile reale. Usa la funzione CAST per questa conversione.
Passo 2: Configurazione del Box MUL
Assicurati che il box MUL sia definito come reale.
Passo 3: Definizione delle Variabili di Input e Output
Definisci le variabili di input come reali e la variabile di output come reale.
Passo 4: Esecuzione della Moltiplicazione
Esegui la moltiplicazione tra le variabili reali.
Passo 5: Salvataggio del Risultato
Salva il risultato della moltiplicazione in una variabile reale.
Codice e Configurazione Moltiplicazione Reale Intera
CAST(I0, REAL) * REAL(MW10) -> MW11
Verifica e Test della Soluzione
Per verificare la soluzione, esegui la moltiplicazione e verifica che il risultato sia corretto. Consulta la documentazione ufficiale Siemens per ulteriori dettagli.
Errori Comuni Moltiplicazione Reale Intera
Ecco alcuni errori comuni che possono verificarsi durante la moltiplicazione tra numeri reali e interi su S7-1200:
- Errore di conversione: Assicurati che il numero intero sia correttamente convertito in reale.
- Variabile di output non definita: Verifica che la variabile di output sia di tipo reale.
- Box MUL non configurato correttamente: Assicurati che il box MUL sia impostato come reale.
Domande Frequenti su Moltiplicazione Reale Intera
Ecco alcune domande frequenti sulla moltiplicazione tra numeri reali e interi su S7-1200:
- Come faccio a convertire un numero intero in reale su S7-1200? Usa la funzione CAST per convertire il numero intero in reale.
- Perché ricevo un errore quando eseguo la moltiplicazione? Assicurati che il box MUL sia impostato come reale e che le variabili di input e output siano di tipo reale.
- Qual è il risultato atteso della moltiplicazione? Il risultato della moltiplicazione tra un numero reale e un numero intero deve essere un numero reale.
Conclusione
La moltiplicazione tra un numero reale e un numero intero su S7-1200 può essere eseguita correttamente seguendo questi passaggi. Per ulteriori dettagli, consulta la risorsa correlata sul forum PLC.
Approfondimento Tecnico Avanzato
Nell’ambito della programmazione PLC, la moltiplicazione tra tipi di dati diversi richiede una conversione precisa per garantire l’accuratezza dei calcoli. Nel caso specifico dell’S7-1200, il PLC adotta un’architettura basata su blocchi di programmazione che gestiscono variabili di diversi tipi, come REAL e INT. Per eseguire una moltiplicazione tra un numero reale e un numero intero, è necessario convertire la variabile intera in una variabile reale utilizzando la funzione CAST. Questo processo è cruciale poiché il PLC non può gestire direttamente operazioni tra tipi di dati incompatibili. La conversione avviene generalmente in una variabile locale, che poi viene utilizzata per il calcolo. I registri coinvolti in questa operazione includono i registri di memoria dati (DB) e i registri di input/output (I/O), dove le variabili vengono memorizzate e manovrate rispettivamente. La complessità di questa operazione è aumentata dalla necessità di gestire correttamente i registri di memoria, assicurando che le conversioni e i calcoli siano eseguiti in sequenza corretta per evitare errori di tipo.
La complessità della conversione da INT a REAL è accentuata dal fatto che il PLC S7-1200 utilizza un sistema di memoria a blocchi, dove ogni blocco di dati ha un tipo specifico. La memoria dati (DB) viene utilizzata per variabili che richiedono più spazio, come i REAL, mentre i registri di input/output (I/O) sono più adatti per variabili di tipo INT. La gestione di questi registri è fondamentale per garantire che le operazioni siano eseguite senza interruzioni, evitando così errori di tipo dati che potrebbero compromettere l’intero processo di automazione.
Metodi Alternativi e Varianti
Esistono diverse strade per affrontare la moltiplicazione tra un numero reale e un numero intero su S7-1200, ciascuna con i suoi pro e contro. Un approccio alternativo è utilizzare un’istruzione di conversione esplicita prima della moltiplicazione, garantendo che entrambi i fattori siano di tipo REAL. Questo metodo è diretto e evita errori di tipo dati, ma richiede una maggiore attenzione nella gestione delle variabili. Un’altra variante è l’uso di una struttura di dati esterna, come un array, per memorizzare i valori intermedi e poi eseguire la moltiplicazione. Questo approccio può essere più flessibile per progetti complessi, ma aumenta la complessità del codice e può richiedere più risorse di memoria. Infine, un metodo ancora più avanzato è l’uso di funzioni matematiche integrate, che possono semplificare la gestione dei tipi di dati complessi e fornire calcoli più accurati. Tuttavia, questo richiede una comprensione più profonda delle funzioni PLC e può essere più costoso in termini di risorse di elaborazione.
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







