Skip to main content

Oggetto: POU per controlli impliciti

È possibile aggiungere queste POU speciali a un'applicazione per fornire loro funzioni di monitoraggio implicite. In fase di esecuzione, queste funzioni controllano i limiti degli array o dei tipi di sottointervallo, la validità degli indirizzi dei puntatori e la divisione per zero. Nota: questa opzione può essere disabilitata per i dispositivi che sono già dotati di questo tipo di blocchi di monitoraggio da una speciale libreria implicita.

Il Aggiungi oggetto → POU per controlli impliciti comando viene utilizzato per aggiungerlo all'applicazione. Il comando apre il Aggiungi POU per controlli impliciti finestra di dialogo in cui è possibile selezionare un tipo di funzione di monitoraggio (vedere la tabella seguente). A seconda della funzione di monitoraggio, è necessario modificare il codice di implementazione o crearlo da zero.

Per evitare inclusioni multiple, le funzioni di monitoraggio che sono già state inserite sono disabilitate nel Aggiungi POU per controlli impliciti dialogo.

Per ulteriori informazioni, vedere: Utilizzare i blocchi predefiniti per i controlli impliciti

Importante

Per ottenere la funzionalità per le funzioni di monitoraggio, non modificare la parte della dichiarazione. Tuttavia, è consentito aggiungere variabili locali.

Dopo aver rimosso una funzione di monitoraggio implicita (esempio: Check Bounds) dal progetto, è possibile solo un download, non una modifica online. Viene visualizzato un messaggio corrispondente.

Suggerimento

Per impostazione predefinita, CODESYS non esegue controlli impliciti per i blocchi funzione dalle librerie utilizzate nell'applicazione. Tuttavia, puoi estendere il controllo alle biblioteche aprendo il Proprietà finestra di dialogo dell'applicazione e specificando la definizione del compilatore checks_in_libs nel Definisce il compilatore campo sul Costruire scheda. Questa definizione riguarda le librerie di implementazione (*.library) solo, biblioteche non protette (*.compiled-library).

È possibile utilizzare l'attributo "no_check" per disattivare il controllo per POU speciali nel progetto.

Tabella 62. Funzioni disponibili

Funzione di monitoraggio

Tipo

CheckBounds

Assegni vincolati

Gestione appropriata delle violazioni vincolate; tale gestione include l'impostazione di flag o la modifica degli indici di campo

CheckDivDInt

Controlli di divisione:

Monitora il valore del divisore per evitare la divisione per zero

CheckDivLINt

CheckDivReal

CheckDivLRal

CheckRangeSigned

Controlli di portata:

Monitora il limite dell'intervallo di un tipo di sottointervallo in modalità runtime

Valido per i tipi di dati DINT/UDINT

CheckRangeUnsigned

CheckLRageSigned

Controlli della gamma L:

Monitora il limite dell'intervallo di un tipo di sottointervallo in modalità runtime

Valido per i tipi di dati LINT/ULINT

CheckLRageUnsigned

CheckPointer

Controlli del puntatore

Sei responsabile della compilazione completa di questa funzione con il codice di implementazione. Vedere la pagina della guida per "POU 'CheckPointer'". La funzione dovrebbe monitorare se il puntatore passato fa riferimento o meno a un indirizzo di memoria valido e se l'orientamento dell'area di memoria referenziata corrisponde o meno al tipo di variabile a cui fa riferimento il puntatore. Se entrambe le condizioni sono soddisfatte, viene restituito il puntatore. Se no, allora CheckPointer dovrebbe completare un'adeguata gestione degli errori. CheckPointer controlla allo stesso modo delle variabili di tipo REFERENCE TO.