Passa al contenuto principale

SysPhrVWr, write variable to peripheral module

La funzione esegue la scrittura di una variabile sul modulo periferico di estensione. Occorre definire l'indirizzo di modulo Module, l'indirizzo della variabile da scrivere WrAdd, il tipo di variabile VarType e l'indirizzo del buffer dove si trova il valore da scrivere VarAdd.

Descrizione​

Immagine F_SysPhrVWr

ParametroTipoDescrizione
ModuleUSINTOccorre specificare l'indirizzo di modulo in cui gestire le uscite digitali (Range da 0 a 15). Il valore 0 indica il primo modulo di estensione, 1 il secondo e così di seguito.
WrAddUINTIndirizzo variabile da scrivere sul modulo periferico (Vedere documentazione del modulo).
VarTypeVR_TYPETipo variabile da scrivere sul modulo periferico (Vedere documentazione del modulo).
VarAdd@BYTEPuntatore a buffer di memoria dove si trova il valore da  scrivere.
OutBOOLFALSE: Errore esecuzione, TRUE: Esecuzione Ok.

Esempi​

Come utilizzare gli esempi.
Ogni secondo viene eseguita la scrittura del valore della variabile Value nella variabile REAL all'indirizzo 10 del modulo di estensione 0.

LogicLab (Ptp116, ST_SysPhrVWr)
PROGRAM ST_SysPhrVWr
VAR
Result : BOOL; (* Function execution result *)
TimeBf : UDINT; (* Time buffer (mS) *)
Value : REAL; (* Value to write *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_SysPhrVWr"
// *****************************************************************************
// This program every second writes a REAL variable to extension module 0 at
// address 10.
// -----------------------------------------------------------------------------

// -------------------------------------------------------------------------
// VARIABLE WRITE
// -------------------------------------------------------------------------
// Check if a second is passed and write variable.

IF ((SysTimeGetMs()-TimeBf) > TO_UDINT(T#1s)) THEN
TimeBf:=SysTimeGetMs(); //Time buffer (mS)
Result:=SysPhrVWr(0, 10, REAL_TYPE, ADR(Value));
END_IF;

// [End of file]

CODESYS (Ptp161, ST_SysPhrVWr)

PROGRAM ST_SysPhrVWr
VAR
Result : BOOL; //Function execution result
TimeBf : UDINT; //Time buffer (uS)
Value : REAL; //Value to write
END_VAR

// *****************************************************************************
// PROGRAM "ST_SysPhrVWr"
// *****************************************************************************
// This program every second writes a REAL variable to extension module 0 at
// address 10.
// -----------------------------------------------------------------------------

// -------------------------------------------------------------------------
// VARIABLE WRITE
// -------------------------------------------------------------------------
// Check if a second is passed and write variable.

IF ((SysGetSysTime(TRUE)-TimeBf) > 1000000) THEN
TimeBf:=SysGetSysTime(TRUE); //Time buffer (uS)
Result:=SysPhrVWr(0, 10, VR_TYPE.REAL_TYPE, ADR(Value));
END_IF;

// [End of file]