Questa funzione ritorna lo stato del segnale CTS della porta seriale connessa al parametro File, precedentemente aperto con il FB SysSerialPort.
Function
CODESYS: Non disponibile
LogicLab: eLLabXUnified12Lib
File (FILEP) Flusso dati stream ritornato dal FB SysSerialPort.
La funzione ritorna un (BOOL) FALSE segnale CTS non attivo, TRUE segnale CTS attivo.
Errori
In caso di errore la funzione ritorna FALSE, eseguendo immediatamente dopo la funzione SysGetLastError è possibile rilevare il codice di errore. Fare riferimento alla tabella seguente per la descrizione.
Esempi
Come utilizzare gli esempi.
Nell'esempio seguente viene aperta una porta di comunicazione seriale ed acquisito lo stato del segnale CTS che viene appoggiato sulla variabile CTSIn. Nel programma viene gestito il controllo sull'errore di esecuzione che non avendo una variabile di indicazione deve essere gestito verificando se l'ultimo errore ha ObjectID 9993, relativo alla funzione.
PROGRAM ST_SysGetSerialCTS VAR CTSIn : BOOL; (* CTS signal status *) IsError : BOOL; (* Execution error *) Sp : SysSerialPort; (* Serial port management *) END_VAR // ***************************************************************************** // PROGRAM "ST_SysGetSerialCTS" // ***************************************************************************** // The program allows to read the status of the serial CTS signal. // ----------------------------------------------------------------------------- // ------------------------------------------------------------------------- // INITIALIZATION // ------------------------------------------------------------------------- IF (SysFirstLoop) THEN Sp.COM:=ADR('COM0'); //COM port definition Sp.Baudrate:=19200; //Baudrate Sp.Parity:='E'; //Parity Sp.DataBits:=8; //Data bits Sp.StopBits:=1; //Stop bits Sp.DTRManagement:=DTR_AUTO_WO_TIMES; //DTR management Sp.DTRComplement:=FALSE; //DTR complement Sp.EchoFlush:=FALSE; //Received echo flush Sp.DTROnTime:=0; //DTR On time delay (mS) Sp.DTROffTime:=0; //DTR Off time delay (mS) Sp.FlushTm:=0; //Flush time (mS) Sp.RxSize:=0; //Rx buffer size Sp.TxSize:=0; //Tx buffer size END_IF; // ------------------------------------------------------------------------- // DTR MANAGEMENT // ------------------------------------------------------------------------- // The DTR signal is managed. Sp(Open:=TRUE); //Serial port management IF (Sp.Opened) THEN CTSIn:=SysGetSerialCTS(Sp.File); //CTS signal status // To check if execution error, check if the return is FALSE and last // error code has the function ObjectID. IF NOT(CTSIn) THEN IsError:=((SysGetLastError(TRUE)/1000) = 9993); //Execution error END_IF; END_IF; // [End of File]
Ultimo aggiornamento: 2 Dicembre 2019