SysGetSerialCTS, obțineți starea semnalului CTS

Listă

Această pagină face parte din Manual de programare IEC 61131-3. Mergeți la index.

Această funcție returnează starea semnalului CTS al portului serial conectat la parametrul File, deschis anterior cu FB SysSerialPort.

Cercul de informații

funzione

CODESYS: Indisponibil

LogicLab: eLLabXUnified12Lib

Descriere

File (FILEP) Flux de date în flux returnat de FB SysSerialPort.

Funcția returnează un (BOOL) FALSE Semnalul CTS nu este activ, TRUE semnal CTS activ.

Imagine F SysGetSerialCTS

Exemple

Cum se utilizează exemplele.
În exemplul următor, se deschide un port de comunicație serial și se obține starea semnalului CTS, care este suportat de variabila CTSIn. Controlul erorilor de execuție este gestionat în program prin verificarea ultimei erori ObjectID 9993, referitor la funcție.

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]
A fost util acest articol?