Attribute: implicit-parameter
L'attributo fa sì che il POU chiamante fornisca automaticamente informazioni di contesto implicite senza richiedere il trasferimento esplicito dei parametri o una funzione di riflessione complessa. Queste informazioni di contesto vengono utilizzate come base per un protocollo preciso che può essere creato anche in ambienti di produzione senza
In qualità di sviluppatore di applicazioni PLC, potete utilizzare questo attributo per generare informazioni di registro in grado di identificare con precisione dove si verificano gli errori di produzione. Non è necessario impostare punti di interruzione o adattare le singole posizioni delle chiamate
In qualità di sviluppatore di librerie, puoi utilizzare questo attributo per fornire funzioni di convalida che rilevano automaticamente il POU chiamante. Ciò fornisce agli utenti della libreria messaggi di errore chiari e significativi senza richiedere ulteriori
Sintassi:
{attribute 'implicit-parameter' := <value> }
| Restituisce il nome qualificato del POU chiamante |
| Specifica la posizione della chiamata in un formato leggibile dall'uomo |
| Restituisce il percorso dell'istanza del POU chiamante |
Punto di inserimento consentito:
L'attributo può essere utilizzato nell'area della dichiarazione VAR_INPUT tramite una variabile di input di tipo STRING o WSTRING. POINTER TO STRING e POINTER TO WSTRING sono anche possibili.
Questo attributo è consentito nelle POU del tipo seguente:
Programma:
PROGRAMFunzione:
FUNCTIONMetodo:
METHOD, anche metodo di interfaccia
Le funzioni di controllo fornito per il monitoraggio implicito, supportano l'attributo.
L'attributo non può essere ereditato.
L'attributo non è supportato per le chiamate POU generate automaticamente (come FB_Init, FB_Reinit, o FB_Exit).
Dichiarazione
FUNCTION MyAwesomeLogger
VAR_INPUT
{attribute 'implicit-parameter':='pouname'}
pouName : STRING := '';
{attribute 'implicit-parameter':='position'}
position : POINTER TO STRING := 0; // Pass by reference is supported for performance reasons
{attribute 'implicit-parameter':='instance-path'}
instance_path : STRING := '';
END_VAR
Dettagli di implementazione
FUNCTION_BLOCK FB
// Can be used like this, to pass all arguments automatically
MyAwesomeLogger(); // Values inside the function: pouName="FB", position=ADR("Line 15"), instance_path = "Device.Application.GVL.fbInstance"
// Or like this with explicit parameters
MyAwesomeLogger(pouName := 'OverwrittenName', position := ADR('OverwrittenPosition'));
END_PROGRAM