Le CODESYS Recipes Gestore di ricette
Le CODESYS Recipes add-on è un sistema per memorizzare e caricare set di variabili (ricette) su un controller o tramite il sistema di programmazione. Il Recipe Manager consente di gestire centralmente diverse configurazioni o stati dei parametri di un'applicazione, salvarli sul controller e ripristinarli quando necessario. Ciò consente di adattare in modo flessibile il comportamento dell'applicazione a diversi stati operativi o
Utilizzo del gestore delle ricette in un CODESYS progetto
Per utilizzare Recipe Manager, è necessario creare un oggetto Recipe Manager nell'albero dei dispositivi dell'applicazione. È necessario aggiungere almeno una definizione di ricetta sotto il Recipe Manager in modo che le ricette possano essere create, gestite ed elaborate.
Per ulteriori informazioni, vedere quanto segue: Definizione della ricetta
Principio di base della gestione delle ricette
Una ricetta è costituita da un insieme definito di variabili, che è la definizione della ricetta. Quando si carica o si scrive una ricetta, tutte le variabili contenute in una ricetta vengono aggiornate simultaneamente sul controller. Di conseguenza, i gruppi di parametri possono essere impostati o letti in modo coerente e riproducibile
Le impostazioni come la posizione di archiviazione e il formato di archiviazione sono configurate nell'oggetto Recipe Manager. È possibile creare un numero qualsiasi di definizioni di ricette sotto questo oggetto.
Le ricette possono essere:
Archiviato in file
Caricato dai file sul controller
Gestito esclusivamente all'interno del controller
Utilizzo delle ricette su dispositivi remoti
Se sono coinvolte variabili di origine dati ed è configurato uno scambio di origini dati, i valori delle variabili delle ricette vengono trasferiti automaticamente a/da un altro controller. La lettura e la scrittura avvengono in modo sincrono. Ciò significa che tutte le variabili configurate in una definizione di ricetta vengono aggiornate contemporaneamente
Dopo aver letto o scritto, puoi usare la chiamata g_RecipeManager.LastError per verificare se il trasferimento è andato a buon fine (g_RecipeManager.LastError = 0).
Concetti operativi
La gestione delle ricette può essere controllata da diversi livelli:
CODESYS interfaccia di programmazione
È possibile caricare, modificare e salvare manualmente le ricette direttamente nell'interfaccia di programmazione.
Visualizzazione
Nella visualizzazione, la chiamata dei comandi della ricetta viene implementata utilizzando configurazione di input (comando di esecuzione) per un elemento di visualizzazione. In questo modo, un utente di visualizzazione può controllare l'esecuzione dei comandi di ricetta
Programma applicativo
Durante il runtime, la definizione della ricetta e i comandi della ricetta possono essere richiamati nel programma applicativo. Per fare ciò, si implementa il processo per la scrittura, la lettura o il monitoraggio delle definizioni delle ricette nel codice utilizzando i metodi di
RecipeManCommandsblocco funzione dalRecipeManagementbiblioteca.Per ulteriori informazioni, vedere: RecipeManCommands (FB)
Modalità di caricamento
Il Recipe Manager supporta due modalità di caricamento per il caricamento dei file di ricette:
Corrispondenza esatta
I dati di un file di ricette vengono caricati solo se la sua struttura corrisponde completamente ed esattamente all'elenco delle variabili della rispettiva definizione di ricetta.
Abbinamento selettivo
Tutte le variabili di un file di ricette che appaiono nell'elenco delle variabili della definizione della ricetta vengono caricate, indipendentemente dalla loro posizione nell'elenco. Le variabili per le quali non esistono dati nel file di ricetta non verranno aggiornate.
La modalità di caricamento selezionata nel Recipe Manager è particolarmente rilevante nelle seguenti situazioni:
Un file di ricette è stato creato o modificato con un editor esterno e non corrisponde più esattamente alle variabili configurate internamente o al loro ordine.
Un file di ricette è stato esteso per una nuova applicazione, ma non può più essere utilizzato in progetti precedenti che non prevedono queste variabili aggiuntive. (Una soluzione più semplice sarebbe creare un file V2, ma anche la modalità di caricamento può contribuire alla compatibilità).
Se il file della ricetta non può essere caricato
Se non è possibile caricare un file di ricette, imposta la modalità di caricamento su Abbinamento selettivo. Nota che questa impostazione si applica a tutte le ricette caricate nell'applicazione in cui è integrato Recipe Manager.
Per ulteriori informazioni, vedere quanto segue: Responsabile delle ricette
Accesso ai file
L'accesso ai file esterni che si trovano all'esterno del file system PLC è limitato per motivi di sicurezza. Di conseguenza, qualsiasi tentativo di aprire o scrivere file in directory esterne fallirà
Nel caso di CODESYS Control Win SL, il percorso predefinito si riferisce, ad esempio, alla directory dei file di runtime PlcLogic che rappresentano il file system interno del PLC.
Per evitare violazioni di accesso, utilizzate questa directory o un'altra directory interna del controller specifico come percorso principale
Se il file system PLC non è accessibile, o non dovrebbe essere accessibile, tramite il file explorer del sistema host, utilizzare Scheda: File entro CODESYS per gestire i file (ad esempio, quelli usati nelle ricette).
Risoluzione dei problemi
Sono disponibili le seguenti procedure per la valutazione degli stati di errore:
Acquisizione del codice di errore restituito da un'operazione
Confronta il valore restituito con gli stati di errore definiti dall'elenco di Valori di ritorno (GVL).
Recupero dell'ultimo errore che si è verificato
Per ottenere l'ultimo codice di errore che si è verificato, utilizzare il
RecipeManCommands.GetLastError()metodo.
Per un'analisi dettagliata del successo totale o parziale di un'operazione di caricamento (ad esempio, se non tutte le variabili di una ricetta sono state caricate), usa il RecipeManCommands.GetLastInfo() metodo.
Questo metodo fornisce un codice informativo che può essere valutato utilizzando Valori informativi (ENUM) enumerazione.
Suggerimento
I codici di errore memorizzati potrebbero dover essere reimpostati manualmente, ad esempio utilizzando RecipeManCommands.ResetLastInfo() metodo.
Rilevamento delle modifiche
Per rilevare facilmente le modifiche, utilizzare il Valori informativi (ENUM) enumerazione come descritto nella sezione sulla risoluzione dei problemi.
Se sono necessarie informazioni più dettagliate sulle modifiche di stato, è possibile implementare strutture dati ridondanti. Ciò consente di confrontare lo stato precedente e lo stato corrente di una ricetta, nonché i valori delle variabili correnti sul controller
Meccanismo a finestra scorrevole
Il meccanismo a finestra scorrevole viene spesso utilizzato per leggere i valori delle ricette e i nomi delle variabili.
Viene utilizzato per visualizzare un intervallo definito di voci all'interno di un buffer significativamente più grande utilizzando una dimensione della finestra e un offset (posizionamento della finestra nell'elenco dei dati).
Per ulteriori informazioni, vedere quanto segue: recipeManCommands.getRecipeValues (), recipeManCommands.getRecipeVariableNames ()e recipeManCommands.getRecipenames ()

Schema di denominazione per i file di ricette
I file di ricette seguono uno schema di denominazione definito in modo che possano, ad esempio, essere identificati in modo univoco nel file system.
Note the following naming scheme: <recipe>.<recipe definition>.<extension>
Recipe: nome della ricetta specifica.Recipe definition: nome della rispettiva definizione della ricetta.Extension: Estensione del file (ad es. .txt o .csv) specificata nell'albero dei dispositivi nella scheda Recipe Manager.
Funzionalità speciale per i numeri in virgola mobile
Per variabili di tipo REAL o LREAL, viene fatta una distinzione se il valore è esattamente convertibile o meno.
Se è possibile convertire esattamente il valore, nel file della ricetta viene salvato solo il valore numerico.
Se la conversione esatta non è possibile, nel file della ricetta viene scritta una stringa con codifica esadecimale accanto al valore numerico. Ciò dovrebbe avere l'effetto che anche un numero a virgola mobile non convertibile
Questa funzione può essere disattivata con RECIPE_GENERATE_SIMPLE_STRINGREAL definizione del compilatore.
Suggerimento
Nelle proprietà dell'oggetto dell'applicazione principale sulla Costruisci scheda, puoi inserire RECIPE_GENERATE_SIMPLE_STRINGREAL compilatore definito in Il compilatore definisce campo. Di conseguenza, non viene memorizzata alcuna stringa con codifica esadecimale
Per ulteriori informazioni, vedere quanto segue: Finestra di dialogo: Proprietà: Compila
Gestione delle ricette sul controller: utilizzo della memoria
Quando si cancella il Gestione delle ricette nel PLC opzione, il Recipe Manager e le definizioni delle ricette non utilizzeranno alcuna memoria sul PLC.
Quando si seleziona questa opzione, viene generato il codice per Recipe Manager e tutte le definizioni delle ricette e questo codice viene memorizzato nel PLC. La dimensione della memoria utilizzata dipende principalmente dal numero di ricette e dalle relative variabili, nonché dal tipo di dati delle variabili. Anche il fatto che i campi della definizione della ricetta siano riempiti o meno ha un effetto. L'utilizzo della memoria delle ricette non può essere calcolato. Deve essere determinato mediante sperimentazione nel momento in cui è necessario. La tabella seguente fornisce semplicemente alcuni principi guida.
Dimensione del codice (byte) | Dimensione dei dati (byte) | Totale (byte) | |
|---|---|---|---|
Definizione della ricetta con 100 | 194406 | 79400 | 267352 |
Definizione della ricetta con 200 | 238318 | 121284 | 459344 |
Definizione della ricetta con 300 | 282230 | 163084 | 543856 |
Definizione della ricetta con 100 | 192742 | 69884 | 343168 |
Definizione della ricetta con 200 | 235446 | 101568 | 436872 |
Definizione della ricetta con 300 | 278146 | 133284 | 510072 |
Definizione della ricetta con 100 | 203278 | 870084 | 1154000 |
Definizione della ricetta con 100 | 255570 | 1709784 | 2973296 |
Definizione della ricetta con 100 | 307886 | 2549484 | 2964112 |