In STEP 7 (TIA Portal), how do you initialize structures in optimized memory areas with the S7-1500?
Descrizione
In caso di blocchi non ottimizzati, i valori delle variabili temporanee non sono inizializzati, ovvero esse ricevono valori casuali se non sono inizializzate nel blocco prima del loro utilizzo. Le variabili nell’area temporanea sono disponibili solo all’interno di un ciclo.
- Per il tipo di dati Bool è predefinito ad es. il valore “False”.
- Gli elementi di tipi di dati PLC sono preimpostati con il valore di default indicato nella dichiarazione del tipo di dati PLC (UDT). La figura 1 mostra un esempio per la definizione di un tipo di dati PLC.
- Gli elementi del tipo di dati Array sono preimpostati con il valore iniziale del tipo di dati.
- Le variabili con il tipo di dati String e WString sono create automaticamente con la lunghezza massima di 16382 caratteri e la lunghezza effettiva di 0 caratteri.
I valori di default definiti nel tipo di dati PLC “typeMotorData” sono applicati come valori iniziali dalle variabili DB se, come in questo esempio, sono state definite con il tipo di dati “Array [1..10] of typeMotorData”.
La figura 2 mostra un esempio di una struttura di blocco dati con la variabile DB “motorField” e il tipo di dati “Array[1..10] of typeMotorData”.
Utilizzare, come in questo esempio, l’istruzione FOR per l’inizializzazione della variabile DB “motorField”. Con l’istruzione FOR in SCL il loop di programma viene elaborato ripetutamente, fino a quando la variabile “tmpCount” rientra nell’intervallo di valori specificato. Dato che il tipo di dati è un “Array [1..10] of typeMotorData”, il loop di programma deve essere elaborato 10 volte (“1 TO 10 DO”) per inizializzare tutti gli elementi d’array della variabile strutturata.
Avvertenza
In un tipo di dati PLC è possibile definire insieme alla dichiarazione i valori iniziali che quindi ogni variabile basata sul tipo di dati PLC possiede come valore iniziale. È inoltre necessario inizializzare le variabili strutturate solo quando si desidera effettuare un reset programmato di una macchina in funzione. In caso di una transizione STOP/RUN vengono in ogni caso rilevati i valori iniziali dalla memoria di caricamento; si ha così un reset.
Funzione di sistema “READ_DBL”
Con l’ausilio dell’istruzione avanzata “READ_DBL” è possibile inizializzare anche singole variabili di un blocco dati. Copiare pertanto i dati di un DB situato nella memoria di caricamento (Micro Memory Card) nell’area dati di un DB di destinazione. Questo metodo è particolarmente adatto quando
- i valori devono essere resettati non a zero, ma ai valori iniziali,
- non si desidera creare variabili temporanee,
- le variabili non devono essere lette frequentemente (o ciclicamente) (funzione aciclica).
Software necessari:
Ricordo che per essere abilitati al download del software è necessaria una registrazione al sito di supporto Siemens (qui) ed una successiva autorizzazione da parte di Siemens, che può richiedere anche diversi giorni.