SysSetSerialDTR, set DTR signal status

  1. Home
  2. Knowledge Base
  3. Manualistica
  4. Programmazione IEC 61131-3
  5. Streams di comunicazione
  6. SysSetSerialDTR, set DTR signal status

Questa funzione imposta lo stato del segnale DTR della porta seriale connessa al parametro File, precedentemente aperto con il FB SysSerialPort impostando parametro DTRManagement a DTR_OFF o a DTR_ON.

Se il parametro DTRManagement è impostato in modalità automatica, eseguendo la funzione il segnale DTR sarà settato al valore definito ma alla prima trasmissione di un carattere il suo stato verrà modificato.

La funzione ritorna una variabile (BOOL), TRUE se esecuzione corretta e FALSE se errore esecuzione.

Function
CODESYS: Non disponibile
LogicLab: eLLabXUnified12Lib

Status (BOOL) Stato a cui settare il segnale DTR su porta seriale.

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

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

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 agendo da debug sulla variabile DTROut è possibile gestire lo stato del segnale DTR in uscita.

LogicLab (Ptp116)
PROGRAM ST_SysSetSerialDTR
VAR
    i : BOOL;    (* Auxiliary variable *)
    DTROut : BOOL;    (* DTR command variable *)
    Sp : SysSerialPort;    (* Serial port management *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_SysSetSerialDTR"
// *****************************************************************************
// It's possible to change the status of DTR signal on the defined serial port,
// acting by debug on DTROut variable.
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // 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_OFF; //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 i:=SysSetSerialDTR(DTROut, Sp.File); END_IF;

// [End of File]

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 2 Dicembre 2019