Passa al contenuto principale

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.

Descrizione​

Immagine F SysSetSerialDTR

ParametroTipoDescrizione
StatusBOOLStato a cui settare il segnale DTR su porta seriale.
FileFILEPFlusso dati stream ritornato dal FB SysSerialPort.
OutBOOLFALSE errore esecuzione, TRUE esecuzione ok.

Esempi​

Come utilizzare gli esempi.
Nell’esempio seguente viene aperta una porta di comunicazione seriale e gestito il segnale DTR.

LogicLab (Ptp116, ST_SysSetSerialDTR)
PROGRAM ST_SysSetSerialDTR
VAR
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 eTO_JUNK(SysSetSerialDTR(DTROut, Sp.File)); END_IF;

// [End of File]