Funzioni ed FB per gestione terminale di I/O¶
Sysfopen, file open¶
Type | Library |
---|---|
Function | XTarget_07_0 |
Questa funzione permette l’apertura del collegamento tra la risorsa indicata dal parametro FName, ed un flusso di dati stream da impiegare nelle successive chiamate alle funzioni di I/O. La funzione ritorna il pointer alla risorsa.
Se la risorsa indicata è già aperta oppure il nome della risorsa è errato, la funzione ritorna NULL. Se si sta aprendo un file su disco per crearlo, accertarsi che il disco sia formattato.
Parametri funzione:
FName (STRING[20]) | E” il nome della risorsa da utilizzare. COM0: Serial port COM0
COM1: Serial port COM1
COM1
COM2: Serial port COM2
PCOMx.y Porta
seriale y su
modulo
periferico
con
indirizzo x
UDPSKT: UDP socket
TCPSKT: TCP socket
pathname: Percorso
completo
comprensivo
del nome
file (es.:
“Storage/myF
ile.txt”)
|
Mode (STRING[4]) | Indica il modo in cui la risorsa è aperta: r=read; w=write ; a=append. Per le porte seriali definire “rw”. Per creare un file su disco, occorre eseguire l’apertura in “w” o “a”. L’apertura in “w” su un file esistente, provoca la cancellazione del contenuto. L’apertura in “r” o “w” posizionano l’indicatore di posizione dello stream all’inizio del file, l’apertura in “a” lo posiziona alla fine. |
La funzione ritorna:
(FILEP) | Pointer alla risorsa. NULL: In caso di errore. |
Codici di errore
In caso di errore la funzione torna con NULL e con SysGetLastError è possibile rilevare il codice di errore.
9996100 | Nome risorsa FName ha lunghezza errata. |
9996110 | Nome risorsa FName ha lunghezza errata. |
9996200~2 | Impossibile utilizzare porta da programma utente. |
9996990 | Non implementata nel simulatore. |
Esempi¶
Viene aperta la porta seriale in read/write.
Definizione variabili |
![]() |
Esempio ST (PTP116A100, ST_Sysfopen)
IF (Fp = NULL) THEN
Fp:=Sysfopen('COM0', 'rw'); (\* Port COM0 file pointer \*)
END_IF;
SysFIsOpen, get the file open status¶
Type | Library |
Function | XTarget_12_0 |
Questa funzione controlla se File è aperto.
La funzione ritorna TRUE se file aperto.
Parametri funzione:
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen. |
La funzione ritorna:
(BOOL) | FALSE: File non corretto (Può essere NULL) o chiuso. TRUE: File aperto. |
Codici di errore
In caso di errore la funzione torna con FALSE e con SysGetLastError è possibile rilevare il codice di errore.
9973990 | Non implementata nel simulatore. |
Esempi¶
Viene aperta e successivamente chiusa la porta seriale COM0. Se la porta è correttamente chiusa viene attivata l’uscita Do01M00.
Definizione variabili |
![]() |
Esempio ST (PTP116B000, ST_SysFIsOpen)
(\* Here the COM0 port is opened in read/write. \*)
IF (Fp = NULL) THEN Fp:=Sysfopen('COM0', 'rw'); END_IF;
(\* Here the COM0 port is closed. \*)
IF (SysFIsOpen(Fp)) THEN
Do01M00:=(Sysfclose(Fp) <> EOF); (\* Output is set if port is closed \*)
END_IF;
Sysfclose, file close¶
Type | Library |
---|---|
Function | XTarget_07_0 |
Questa funzione permette la chiusura del collegamento alla risorsa indicata dal parametro File, precedentemente aperto dalla funzione Sysfopen.
In caso di errore chiusura, la funzione ritorna EOF.
Parametri funzione:
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen. |
La funzione ritorna:
(INT) | 0: Se esecuzione corretta. EOF: In caso di errore. |
Codici di errore
In caso di errore la funzione torna con EOF e con SysGetLastError è possibile rilevare il codice di errore.
9973100 | Funzione usata in task diversa da Back. |
9973200 | Errore nella chiusura della risorsa. |
9973990 | Non implementata nel simulatore. |
Esempi¶
Viene aperta e successivamente chiusa la porta seriale COM0. Se la porta è correttamente aperta viene attivata l’uscita Do00M00. Se la porta è correttamente chiusa viene attivata l’uscita Do01M00.
Definizione variabili |
![]() |
Esempio ST (PTP116A100, ST_Sysfclose)
(\* Here the COM0 port is opened in read/write. \*)
IF (Fp = NULL) THEN
Fp:=Sysfopen('COM0', 'rw'); (\* Port COM0 file pointer \*)
Do00M00:=(Fp <> NULL); (\* Output is set if port is opened \*)
END_IF;
(\* Here the COM0 port is closed. \*)
IF (Fp <> NULL) THEN
Do01M00:=(Sysfclose(Fp) <> EOF); (\* Output is set if port is closed \*)
END_IF;
Sysfgetc, get character from file¶
Type | Library |
Function | XTarget_07_0 |
Questa funzione ritorna un carattere dal flusso dati stream indicato dal parametro File, precedentemente aperto dalla funzione Sysfopen.
La funzione ritorna il carattere letto dallo stream. In caso di errore o se nessun dato dallo stream, la funzione ritorna EOF. Per essere certi che vi siano caratteri dallo stream è possibile utilizzare la funzione SysGetIChars che ne ritorna il numero.
Parametri funzione:
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen. |
La funzione ritorna:
(INT) | Carattere letto dal flusso di dati. EOF: In caso di errore o se nessun dato dallo stream. |
Codici di errore
In caso di errore la funzione torna con EOF e con SysGetLastError è possibile rilevare il codice di errore.
9972100 | Funzione usata in task diversa da Back. |
9972990 | Non implementata nel simulatore. |
Esempi¶
Viene eseguita apertura porta seriale COM0 e controllato se caratteri disponibili dalla porta. Se almeno un carattere è disponibile ne viene eseguita lettura ed il carattere letto è trasferito nella variabile Ch.
Definizione variabili |
![]() |
Esempio ST (PTP116A100, ST_Sysfgetc)
(\* Here the COM0 port is opened in read/write. \*)
IF (Fp = NULL) THEN
Fp:=Sysfopen('COM0', 'rw'); (\* Port COM0 file pointer \*)
END_IF;
(\* Here check if a character is available from port and read it. \*)
IF (Fp <> NULL) THEN
IF (TO_BOOL(SysGetIChars(Fp))) THEN
Ch:=Sysfgetc(Fp); (\* Get input character \*)
END_IF;
END_IF;
Sysfputc, put character to file¶
Type | Library |
Function | XTarget_07_0 |
Questa funzione invia un carattere sul flusso dati stream indicato dal parametro File, precedentemente aperto dalla funzione Sysfopen.
La funzione ritorna il carattere scritto sullo stream. In caso di errore o se lo stream non accetta il dato, la funzione ritorna EOF. Per essere certi che vi sia spazio sullo stream per accettare il carattere, è possibile utilizzare la funzione SysGetOSpace che ritorna lo spazio disponibile.
Parametri funzione:
Ch (INT) | Carattere da inviare sul flusso dati. |
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen. |
La funzione ritorna:
(INT) | Carattere scritto sul flusso di dati. EOF: In caso di errore o se lo stream non accetta il dato. |
Codici di errore
In caso di errore la funzione torna con EOF e con SysGetLastError è possibile rilevare il codice di errore.
9971100 | Funzione usata in task diversa da Back. |
9971990 | Non implementata nel simulatore. |
Esempi¶
E” riportato un semplice programma che esegue l’eco dei caratteri ricevuti dalla porta seriale COM0. Viene eseguita apertura porta seriale COM0 e controllato se caratteri disponibili dalla porta. Se almeno un carattere è disponibile ne viene eseguita lettura e successiva ritrasmissione.
Definizione variabili |
![]() |
Esempio ST (PTP116A100, ST_Sysfputc)
(\* Here the COM0 port is opened in read/write. \*)
IF (Fp = NULL) THEN
Fp:=Sysfopen('COM0', 'rw'); (\* Port COM0 file pointer \*)
END_IF;
(\* Here execute the received characters echo. \*)
IF (Fp <> NULL) THEN
IF (TO_BOOL(SysGetIChars(Fp))) AND (TO_BOOL(SysGetOSpace(Fp))) THEN
Ch:=Sysfgetc(Fp); (\* Get input character \*)
Ch:=Sysfputc(Ch, Fp); (\* Put input character \*)
END_IF;
END_IF;
Utilizzando le funzioni di gestione terminale di I/O è possibile realizzare un semplice programma che esegue l’echo del carattere ricevuto dalla porta seriale COM0. La porta viene aperta con ed impostata a 19200 e, 8, 1. Tutti i caratteri ricevuti dalla porta sono ritrasmessi.
Definizione variabili |
![]() |
Esempio FBD (PTP119B000, FBD_SerialEcho) |
![]() |
Sysfread, read data from file¶
Type | Library |
Function | XTarget_07_0 |
Questa funzione esegue la lettura di un numero definito di stringhe di lunghezza definita dal flusso dati stream indicato dal parametro File, precedentemente aperto dalla funzione Sysfopen.
La funzione ritorna il numero di stringhe dati lette. Se nello stream non ci sono abbastanza stringhe da soddisfare i parametri, viene ritornato un numero minore di stringhe lette rispetto al valore definito.
Parametri funzione:
Buf (@STRING) | Indirizzo della stringa dove trasferire le stringhe lette. |
Size (INT) | Lunghezza in caratteri delle stringhe da leggere. |
Count (INT) | Numero di stringhe da leggere. |
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen _. |
La funzione ritorna:
(INT) | Numero di stringhe lette, se il valore ritornato è minore di Count, significa che non vi erano abbastanza dati nello stream. |
Codici di errore
In caso di errore la funzione torna con 0 e con SysGetLastError è possibile rilevare il codice di errore.
9970100 | Funzione usata in task diversa da Back. |
9970990 | Non implementata nel simulatore. |
Esempi¶
Vengono attesi almeno 5 caratteri ricevuti dalla porta seriale e quando ricevuti viene letta una stringa di 5 caratteri (5 stringhe di 1 carattere), la stringa letta è trasferita nella variabile RxString. La stringa letta viene poi ritrasmessa sulla porta seriale, notare come anche nella trasmissione è trasmessa una stringa di 5 caratteri (1 stringa di 5 caratteri) .
Definizione variabili |
![]() |
Esempio ST (PTP116A100, ST_Sysfread)
(\* Here the COM0 port is opened in read/write. \*)
IF (Fp = NULL) THEN
Fp:=Sysfopen('COM0', 'rw'); (\* Port COM0 file pointer \*)
END_IF;
(\* Here wait until at least 5 chars are received and echoes them. \*)
IF (Fp <> NULL) THEN
IF (SysGetIChars(Fp) >= 5) THEN
RxChars:=Sysfread(ADR(RxString), 1, 5, Fp); (\* Received characters
\*)
TxChars:=Sysfwrite(ADR(RxString), 5, 1, Fp); (\* Transmitted
characters \*)
END_IF;
END_IF;
Sysfwrite, write data to file¶
Type | Library |
Function | XTarget_07_0 |
Questa funzione esegue la scrittura di un numero definito di stringhe di lunghezza definita nel flusso dati stream indicato dal parametro File, precedentemente aperto dalla funzione Sysfopen.
La funzione ritorna il numero di stringhe dati scritte. Se nello stream non c’è abbastanza spazio per contenere il numero di stringhe definito, viene ritornato un numero minore di stringhe scritte rispetto al valore definito.
Parametri funzione:
Buf (@STRING) | Indirizzo della stringa da scrivere. |
Size (INT) | Lunghezza in caratteri delle stringhe da scrivere. |
Count (INT) | Numero di stringhe da scrivere. |
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen _. |
La funzione ritorna:
(INT) | Numero di stringhe scritte, se valore ritornato minore di Count, non vi era abbastanza spazio nello stream. |
Codici di errore
In caso di errore la funzione torna con 0 e con SysGetLastError è possibile rilevare il codice di errore.
9969100 | Funzione usata in task diversa da Back. |
9969990 | Non implementata nel simulatore. |
Esempi¶
Vengono attesi almeno 5 caratteri ricevuti dalla porta seriale e quando ricevuti viene letta una stringa di 5 caratteri (5 stringhe di 1 carattere), la stringa letta è trasferita nella variabile RxString. La stringa letta viene poi ritrasmessa sulla porta seriale, notare come anche nella trasmissione è trasmessa una stringa di 5 caratteri (1 stringa di 5 caratteri) .
Definizione variabili |
![]() |
Esempio ST
(\* Here the COM0 port is opened in read/write. \*)
IF (Fp = NULL) THEN
Fp:=Sysfopen('COM0', 'rw'); (\* Port COM0 file pointer \*)
END_IF;
(\* Here wait until at least 5 chars are received and echoes them. \*)
IF (Fp <> NULL) THEN
IF (SysGetIChars(Fp) >= 5) THEN
RxChars:=Sysfread(ADR(RxString), 1, 5, Fp); (\* Received characters \*)
TxChars:=Sysfwrite(ADR(RxString), 5, 1, Fp); (\* Transmitted characters \*)
END_IF;
END_IF;
SysFGetIChars, get input available characters from file¶
Type | Library |
---|---|
Function | XTarget_12_0 |
Alias della funzione SysGetIChars.
Questa funzione ritorna il numero di caratteri disponibili per la lettura dal flusso dati stream indicato dal parametro File, precedentemente aperto dalla funzione Sysfopen.
Se il valore ritornato è diverso da 0 i caratteri potranno essere letti con la funzione Sysfgetc.
Parametri funzione:
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen _. |
La funzione ritorna:
(INT) | Numero di caratteri disponibili dal flusso dati. |
Codici di errore
In caso di errore la funzione torna con 0 e con SysGetLastError è possibile rilevare il codice di errore.
9968100 | Funzione usata in task diversa da Back. |
9968990 | Non implementata nel simulatore. |
Esempi¶
E” riportato un semplice programma che esegue l’eco dei caratteri ricevuti dalla porta seriale COM0. Viene eseguita apertura porta seriale COM0 e controllato se caratteri disponibili dalla porta. Se almeno un carattere è disponibile ne viene eseguita lettura e successiva ritrasmissione.
Definizione variabili |
![]() |
Esempio ST
(\* Here the COM0 port is opened in read/write. \*)
IF (Fp = NULL) THEN
Fp:=Sysfopen('COM0', 'rw'); (\* Port COM0 file pointer \*)
END_IF;
(\* Here execute the received characters echo. \*)
IF (Fp <> NULL) THEN
IF (TO_BOOL(SysGetIChars(Fp))) AND (TO_BOOL(SysGetOSpace(Fp))) THEN
Ch:=Sysfgetc(Fp); (\* Get input character \*)
Ch:=Sysfputc(Ch, Fp); (\* Put input character \*)
END_IF;
END_IF;
SysFGetOSpace, get output available space on file¶
Type | Library |
---|---|
Function | XTarget_12_0 |
Alias della funzione SysGetOSpace.
Questa funzione ritorna lo spazio disponibile per la scrittura dati sul flusso dati stream indicato dal parametro File, precedentemente aperto dalla funzione Sysfopen.
Se il valore ritornato è diverso da 0 i caratteri potranno essere scritti con la funzione Sysfputc.
Parametri funzione:
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen _. |
La funzione ritorna:
(INT) | Spazio disponibile sul flusso dati per trasferire caratteri. Se buffer vuoto viene ritornata la dimensione del buffer di trasmissione. |
Codici di errore
In caso di errore la funzione torna con 0 e con SysGetLastError è possibile rilevare il codice di errore.
9967100 | Funzione usata in task diversa da Back. |
9967990 | Non implementata nel simulatore. |
Esempi¶
E” riportato un semplice programma che esegue l’eco dei caratteri ricevuti dalla porta seriale COM0. Viene eseguita apertura porta seriale COM0 e controllato se caratteri disponibili dalla porta. Se almeno un carattere è disponibile ne viene eseguita lettura e successiva ritrasmissione.
Definizione variabili |
![]() |
Esempio ST
(\* Here the COM0 port is opened in read/write. \*)
IF (Fp = NULL) THEN
Fp:=Sysfopen('COM0', 'rw'); (\* Port COM0 file pointer \*)
END_IF;
(\* Here execute the received characters echo. \*)
IF (Fp <> NULL) THEN
IF (TO_BOOL(SysGetIChars(Fp))) AND (TO_BOOL(SysGetOSpace(Fp))) THEN
Ch:=Sysfgetc(Fp); (\* Get input character \*)
Ch:=Sysfputc(Ch, Fp); (\* Put input character \*)
END_IF;
END_IF;
SysFGetIBfSize, get file Rx input buffer size¶
Type | Library |
---|---|
Function | XTarget_12_0 |
Alias della funzione SysGetRxBSize.
Questa funzione ritorna la dimensione del buffer di input (Ricezione) sul flusso dati stream indicato dal parametro File, precedentemente aperto dalla funzione Sysfopen.
Parametri funzione:
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen. |
La funzione ritorna:
(UDINT) | Dimensione buffer di input espressa in numero di caratteri (Bytes). |
Codici di errore
In caso di errore la funzione torna con 0 e con SysGetLastError è possibile rilevare il codice di errore.
9966100 | Funzione usata in task diversa da Back. |
9966990 | Non implementata nel simulatore. |
Esempi¶
E” riportato un semplice programma che ritorna la dimensione del buffer di input (Ricezione) della porta seriale COM2. Il valore ritornato espresso in numero di caratteri (Bytes), è trasferito nella variabile Space.
Definizione variabili |
![]() |
Esempio LD
SysFGetOBfSize, get file Tx output buffer size¶
Type | Library |
---|---|
Function | XTarget_12_0 |
Alias della funzione SysGetTxBSize.
Questa funzione ritorna la dimensione del buffer di output (Trasmissione) sul flusso dati stream indicato dal parametro File, precedentemente aperto dalla funzione Sysfopen.
Parametri funzione:
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen. |
La funzione ritorna:
(UDINT) | Dimensione buffer di output espressa in numero di caratteri (Bytes). |
Codici di errore
In caso di errore la funzione torna con 0 e con SysGetLastError è possibile rilevare il codice di errore.
9965100 | Funzione usata in task diversa da Back. |
9965990 | Non implementata nel simulatore. |
Esempi¶
E” riportato un semplice programma che ritorna la dimensione del buffer di output (Trasmissione) della porta seriale COM2. Il valore ritornato espresso in numero di caratteri (Bytes), è trasferito nella variabile Space.
Definizione variabili |
![]() |
Esempio LD
SysFIBfClear, file input buffer clear¶
Type | Library |
Function | XTarget_07_0 |
Questa funzione elimina tutti i caratteri in lettura presenti sul flusso dati stream indicato dal parametro File, precedentemente aperto dalla funzione Sysfopen.
La funzione ritorna FALSE in caso di errore.
Parametri funzione:
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen. |
La funzione ritorna:
(BOOL) | FALSE: Errore esecuzione. TRUE: Funzione eseguita correttamente. |
Codici di errore
In caso di errore la funzione torna FALSE e con SysGetLastError è possibile rilevare il codice di errore.
9964100 | Funzione usata in task diversa da Back. |
9964990 | Non implementata nel simulatore. |
Esempi¶
Se è attivo l’ingresso Di00M00 tutti i caratteri in ingresso dalla porta seriale saranno cancellati e l’uscita Do00M00 attivata.
Definizione variabili |
![]() |
Esempio ST
(\* Here the COM0 port is opened in read/write. \*)
IF (Fp = NULL) THEN
Fp:=Sysfopen('COM0', 'rw'); (\* Port COM0 file pointer \*)
END_IF;
(\* If the input is active the input buffer is cleared. \*)
IF (Fp <> NULL) THEN
IF (Di00M00) THEN Do00M00:=SysFIBfClear(Fp); END_IF;
END_IF;
SysFOBfClear, file output buffer clear¶
Type | Library |
Function | XTarget_07_0 |
Questa funzione elimina tutti i caratteri in uscita presenti sul flusso dati stream indicato dal parametro File, precedentemente aperto dalla funzione Sysfopen.
La funzione ritorna FALSE in caso di errore.
Parametri funzione:
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen. |
La funzione ritorna:
(BOOL) | FALSE: Errore esecuzione. TRUE: Funzione eseguita correttamente. |
Codici di errore
In caso di errore la funzione torna FALSE e con SysGetLastError è possibile rilevare il codice di errore.
9963100 | Funzione usata in task diversa da Back. |
9963990 | Non implementata nel simulatore. |
Esempi¶
Se è attivo l’ingresso Di00M00 tutti i caratteri in uscita dalla porta seriale saranno cancellati e l’uscita Do00M00 attivata.
Definizione variabili |
![]() |
Esempio ST
(\* Here the COM0 port is opened in read/write. \*)
IF (Fp = NULL) THEN
Fp:=Sysfopen('COM0', 'rw'); (\* Port COM0 file pointer \*)
END_IF;
(\* If the input is active the ouput buffer is cleared. \*)
IF (Fp <> NULL) THEN
IF (Di00M00) THEN Do00M00:=SysFOBfClear(Fp); END_IF;
END_IF;
SysFOBfFlush, file output buffer flush¶
Type | Library |
Function | XTarget_07_0 |
Questa funzione forza l’uscita immediata dei caratteri presenti sul flusso dati stream indicato dal parametro File, precedentemente aperto dalla funzione Sysfopen, sulla risorsa connessa.
La funzione ritorna FALSE in caso di errore.
Parametri funzione:
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen. |
La funzione ritorna:
(BOOL) | FALSE: Errore esecuzione. TRUE: Funzione eseguita correttamente. |
Codici di errore
In caso di errore la funzione torna FALSE e con SysGetLastError è possibile rilevare il codice di errore.
9962100 | Funzione usata in task diversa da Back. |
9962990 | Non implementata nel simulatore. |
Esempi¶
Se è attivo l’ingresso Di00M00 tutti i caratteri presenti nel buffer di uscita della porta seriale saranno trasmessi e l’uscita Do00M00 attivata.
Definizione variabili |
![]() |
Esempio ST
(\* Here the COM0 port is opened in read/write. \*)
IF (Fp = NULL) THEN
Fp:=Sysfopen('COM0', 'rw'); (\* Port COM0 file pointer \*)
END_IF;
(\* If the input is active the ouput buffer is cleared. \*)
IF (Fp <> NULL) THEN
IF (Di00M00) THEN Do00M00:=SysFOBfFlush(Fp); END_IF;
END_IF;
SysVarfprintf, variable print to file¶
Type | Library |
Function | XTarget_07_0 |
Questa funzione esegue la stampa formattata di una variabile sullo stream collegato al parametro File, precedentemente aperto dalla funzione Sysfopen.
La stringa Format specifica il formato con il quale stampare la variabile. Mentre in VarType è indicato il tipo di variabile ed in VarAdd il suo indirizzo.
La funzione ritorna il numero di caratteri trasferiti nello stream, EOF in caso di errore.
Parametri funzione:
File (FILEP) | Flusso dati stream ritornato dalla funzione Sysfopen. |
Format (STRING[80]) | Ha due tipi di argomenti, i caratteri ordinari che vengono copiati nello stream di uscita, e le specifiche di conversione, contraddistinte dal simbolo percentuale (%) e da un carattere che specifica il formato con il quale stampare la variabile definita. |
VarType (USINT) | Tipo variabile, come indicato nella tabella Variable types definition. |
VarAdd (UDINT) | Indirizzo variabile. |
La funzione ritorna:
(INT) | Numero di caratteri trasferiti nello stream. EOF: Errore esecuzione. |
Codici di errore
In caso di errore la funzione torna con EOF e con SysGetLastError è possibile rilevare il codice di errore.
9998010 | Valore di File non definito. |
9968100 | Funzione usata in task diversa da Back. |
9998200 | Tipo variabile non gestito, controllare VarType. |
9998990 | Non implementata nel simulatore. |
Esempi¶
Su fronte attivazione ingresso Di00M00 viene incrementata la variabile Counter ed il suo valore inviato sulla porta seriale COM0. Nella variabile NrOfChars viene caricato il numero di caratteri inviati in uscita sulla porta seriale.
Definizione variabili |
![]() |
Esempio ST (PTP116A300, ST_SysVarfprintf)
(\* Here the COM0 port is opened in read/write. \*)
IF (Fp = NULL) THEN Fp:=Sysfopen('COM0', 'rw'); END_IF;
IF (Fp <> NULL) THEN
IF (Di00M00 <> Pulse) THEN
Pulse:=Di00M00; (\* Pulse flag \*)
IF (Di00M00) THEN
Counter:=Counter+1; (\* Counter \*)
NrOfChars:=SysVarfprintf(Fp, 'Counter:%04d$r$n', UDINT_TYPE, ADR(Counter));
END_IF;
END_IF;
END_IF;