Vai al contenuto

SysOSIDValue, get or set an operative system variable

Vai all indice del manuale di programmazione
Tipo: Funzione
Libreria LogicLab: eLLabXUnified12Lib
Libreria Codesys: Non disponibile

Questa funzione da eseguire nelle tasks Slow e Back, permette di leggere e/o impostare variabili del sistema operativo. In OSID occorre specificare la variabile su cui operare.

In caso di lettura Wr:=FALSE il valore della variabile sarà trasferito nel buffer di memoria indicato in Val. In caso di scrittura Wr:=TRUE il valore presente nel buffer di memoria indicato in Val sarà trasferito nella variabile. Occorre dimensionare il buffer coerentemente con il tipo di dato relativo all’OSID definito.

In uscita dalla funzione avremo TRUE se funzione eseguita correttamente, FALSE in caso di errore.

Descrizione

Wr (BOOL) Comando scrittura.
FALSE: Lettura, il valore della variabile è trasferito nel buffer definito in Val.
TRUE: Scrittura, il valore del buffer definito in Val è trasferito nella variabile.
OSID (SYS_ID) Identificativo variabile (Definizione).
Val (PVOID) Pointer al buffer di memoria che contiene il valore della variabile.

La funzione ritorna un (BOOL) FALSE se errore esecuzione, TRUE se funzione eseguita correttamente

Immagine F_SysOSIDValue

Esempi

Come utilizzare gli esempi.
ST_SysOSIDValue: Alcuni esempi di utilizzo della funzione.

LogicLab (Ptp116, ST_SysOSIDValue)
PROGRAM ST_SysOSIDValue
VAR
    RSts : ARRAY[0..1] OF BOOL; (* Result status *)
    IPString : STRING[ 16 ]; (* IP address as a string *)
    MACString : STRING[ 32 ]; (* MAC address as a string *)
    IPValue : ARRAY[0..3] OF BYTE; (* IP address value *)
    MACValue : ARRAY[0..5] OF BYTE; (* IP address value *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_SysOSIDValue"
// *****************************************************************************
// Read some ETH0 informations.
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // READ ETH0 INFORMATIONS
    // -------------------------------------------------------------------------
    // Read ETH0 MAC address and return it as a string.

    RSts[0]:=SysOSIDValue(FALSE, OSID_ETH0_MAC, ADR(MACValue));
    eTO_JUNK(SysVsnprintf(ADR(MACString), SIZEOF(MACString), ADR('%02X:'), BYTE_TYPE, ADR(MACValue[0])));
    eTO_JUNK(SysCVsnprintf(ADR(MACString), SIZEOF(MACString), ADR('%02X:'), BYTE_TYPE, ADR(MACValue[1])));
    eTO_JUNK(SysCVsnprintf(ADR(MACString), SIZEOF(MACString), ADR('%02X:'), BYTE_TYPE, ADR(MACValue[2])));
    eTO_JUNK(SysCVsnprintf(ADR(MACString), SIZEOF(MACString), ADR('%02X:'), BYTE_TYPE, ADR(MACValue[3])));
    eTO_JUNK(SysCVsnprintf(ADR(MACString), SIZEOF(MACString), ADR('%02X:'), BYTE_TYPE, ADR(MACValue[4])));
    eTO_JUNK(SysCVsnprintf(ADR(MACString), SIZEOF(MACString), ADR('%02X'), BYTE_TYPE, ADR(MACValue[5])));

    // Read the IP address and return it as a string.

    RSts[1]:=SysOSIDValue(FALSE, OSID_ETH0_IP, ADR(IPValue));
    eTO_JUNK(SysVsnprintf(ADR(IPString), SIZEOF(IPString), ADR('%u.'), BYTE_TYPE, ADR(IPValue[0])));
    eTO_JUNK(SysCVsnprintf(ADR(IPString), SIZEOF(IPString), ADR('%u.'), BYTE_TYPE, ADR(IPValue[1])));
    eTO_JUNK(SysCVsnprintf(ADR(IPString), SIZEOF(IPString), ADR('%u.'), BYTE_TYPE, ADR(IPValue[2])));
    eTO_JUNK(SysCVsnprintf(ADR(IPString), SIZEOF(IPString), ADR('%u'), BYTE_TYPE, ADR(IPValue[3])));

// [End of file]
Was this article helpful?