Skip to main content

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> }

Tabella 26. Possible values for <value>

'pouname'

Restituisce il nome qualificato del POU chiamante

'position'

Specifica la posizione della chiamata in un formato leggibile dall'uomo

'instance-path'

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: PROGRAM

  • Funzione: FUNCTION

  • Metodo: 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).

Esempio 273. esempio

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