SysGetSerialCTS, get serial CTS signal status

List

Questa pagina fa parte del Manuale Programmazione IEC 61131-3. Vai all indice.

Questa funzione ritorna lo stato del segnale CTS della porta seriale connessa al parametro File, precedentemente aperto con il FB SysSerialPort.

Information Circle

Funzione

CODESYS: Non disponibile

LogicLab: eLLabXUnified12Lib

Descrizione

File (FILEP) Flusso dati stream ritornato dal FB SysSerialPort.

La funzione ritorna un (BOOL) FALSE segnale CTS non attivo, TRUE segnale CTS attivo.

Immagine F SysGetSerialCTS

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 verificando se l’ultimo errore ha ObjectID 9993, relativo alla funzione.

LogicLab (Ptp116), ST_SysGetSerialCTS
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]
Was this article helpful?