Funzioni definite dall'utente
FactoryTalk Design Workbench
supporta la creazione e la gestione di funzioni definite dall'utente (UDF) per riutilizzare la logica del programma e rendere il programma più leggibile. Utilizzare una UDF per un semplice calcolo che richiede solo un'uscita.Le UDF non possono accedere alle variabili locali nel programma chiamante. Le variabili locali nel programma chiamante devono essere trasmesse all'UDF come parametri di ingresso.
IMPORTANTE:
Un parametro di input definito dall'utente non può essere utilizzato per abilitare o disabilitare le UDF poiché il parametro di input può solo abilitare o disabilitare le istruzioni all'interno dell'UDF.
Per abilitare o disabilitare una UDF, attivare o disattivare
EN/ENO
nel riquadro Proprietà
.Se
EN/ENO
è disattivato, non viene eseguita l'UDF e i parametri di uscita non vengono sovrascritti.Se una UDF viene eseguita più volte per ogni scansione del programma, non è consigliabile utilizzare istruzioni che richiedono più di una scansione del programma per essere completate, come istruzioni di timer, movimento, messaggio e contatore. Queste istruzioni conservano gli stati tra una scansione e l'altra del programma.
Utilizzo di UDF al posto dei blocchi funzione definiti dall'utente (UDFB)
- Per un semplice calcolo che richiede solo un'uscita comeY=MX+B.
- Per le istruzioni senza stato che non richiedono il salvataggio dei valori delle variabili locali di esecuzione in esecuzione, come SIN.
- Quando il parametro di uscita non richiede un array o un tipo di dati strutturato.
- Laddove possibile in quanto una UDF utilizza una quantità inferiore di memoria.Se sono necessarie più istanze, l'utilizzo di un UDFB potrebbe richiedere meno memoria di una UDF, perché un UDFB esiste in un programma solo quando viene creata una sua istanza come variabile.
Utilizzare un UDFB anziché una UDF
- Per calcoli complessi che presentano uscite multiple.
- È necessario durante il salvataggio dei valori delle variabili locali da un'esecuzione all'altra (Salva lo stato).
- Quando sono necessarie più istanze. L'utilizzo di un UDFB richiede meno memoria di una UDF, perché un UDFB all'interno di un progetto esiste in un programma solo quando viene creata una sua istanza come variabile.
- Quando il parametro di uscita richiede un array o un tipo di dati strutturato.
- Quando più di un messaggio viene inviato contemporaneamente.Quando una UDF contiene un'istruzione di messaggio come MSG_CIPGENERIC, l'UDF invia solo un messaggio alla volta anche se l'UDF viene chiamata più volte per ogni scansione del programma.
Considerare le seguenti best practice quando si utilizzano UDF
- Utilizzare l'incapsulamento dei dati.Le UDF possono accedere alle variabili globali. Non è consigliato l'accesso alle variabili globali da un UDFB.
- Prima di richiamare più volte una UDF nel progetto, eseguire il debug del programma UDF perché:
- Il monitoraggio della logica di una UDF quando viene chiamata più volte è difficile.
- Non è supportato per monitorare una UDF chiamata da un programma di interrupt.
- Inizializzazione delle variabili locali a ogni esecuzione.Per impostazione predefinita, le variabili locali in un programma UDF non vengono automaticamente reinizializzate ad ogni chiamata dell'UDF. Poiché le istanze multiple non sono supportate per le UDF, si consiglia di inizializzare le variabili locali dell'UDF a ogni esecuzione con i parametri di ingresso o con una costante.
Fornire un feedback