Skip to main content

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:

  1. CODESYS interfaccia di programmazione

    È possibile caricare, modificare e salvare manualmente le ricette direttamente nell'interfaccia di programmazione.

  2. 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

  3. 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 RecipeManCommands blocco funzione dal RecipeManagement biblioteca.

    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 ()

SlidingWindowExample.png

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.

Tabella 1. Utilizzo della memoria per CODESYS V3 SP6 con CODESYS Control Win SL Controller V3

Dimensione del codice (byte)

Dimensione dei dati (byte)

Totale (byte)

Definizione della ricetta con 100 INT variabili

194406

79400

267352

Definizione della ricetta con 200 INT variabili

238318

121284

459344

Definizione della ricetta con 300 INT variabili

282230

163084

543856

Definizione della ricetta con 100 BOOL variabili

192742

69884

343168

Definizione della ricetta con 200 BOOL variabili

235446

101568

436872

Definizione della ricetta con 300 BOOL variabili

278146

133284

510072

Definizione della ricetta con 100 STRING variabili

203278

870084

1154000

Definizione della ricetta con 100 STRING variabili

255570

1709784

2973296

Definizione della ricetta con 100 STRING variabili

307886

2549484

2964112