RICERCA TESTO
Visualizza i risultati ultima ricerca eseguita Risultati ricerca
 VAI A TOPIC
 LOGIN  
Username
Password
 Ricorda dati
Visualizza pagina registrazione al sito Registrati ora
Visualizza pagina iscrizione alla mailing list Newsletter
Permette accesso di emergenza al sito Dimenticato psw?
 NOVITA'
Visualizza pagine aggiornate di recente Pagine
Visualizza i nuovi prodotti Prodotti
Visualizza i nuovi downloads Downloads
Visualizza i nuovi posts Forum
 VETRINA
Modulo USB 24I/O digitali
Modulo USB 24I/O digitali
Convertitore ethernet-seriale ATC-1000
Convertitore ethernet-seriale ATC-1000
Convertitore USB-seriale isolato ATC-850
Convertitore USB-seriale isolato ATC-850
SlimLine Modulo esp. I/O uscite statiche 16In 8Out
SlimLine Modulo esp. I/O uscite statiche 16In 8Out
Modulo USB sensore Umidità/temperatura
Modulo USB sensore Umidità/temperatura
Convertitore Wi-Fi seriale ATC-2000WF
Convertitore Wi-Fi seriale ATC-2000WF
Radiomodem VHF DL169
Radiomodem VHF DL169
Router UMTS/HSUPA UR5i Dual SIM
Router UMTS/HSUPA UR5i Dual SIM
Convertitore RS232-RS422/485 isolato ATC-108N
Convertitore RS232-RS422/485 isolato ATC-108N
Radiomodem XBeePro 2,4GHz 250KBps RS232
Radiomodem XBeePro 2,4GHz 250KBps RS232
 OFFERTE Visualizza prodotti in offerta 
Terminale Touch screen 7.7" 256 Colori TFT MT508T
Terminale Touch screen 7.7" 256 Colori TFT MT508T
€ 629.00
Prodotto in offerta € 629.00
 CONSIGLI
Cerchi un sistema di acquisizione dati su bus USB? Prova i moduli OAK Toradex! Vai alla pagina
 SERVIZI
Invia una Email con la richiesta di informazioni Rich. informazioni
Visualizza il modulo richiesta quotazioni Rich. quotazioni
Go to the English version of the page English page
Stampa il solo contenuto della pagina Stampa pagina
Invia la pagina per Email ad un amico Invia la pagina
Aggiunge l'indirizzo della pagina tra i preferiti del browser Aggiungi preferiti
Leggi Elsist news, il nostro bollettino bimestrale
 Voi siete qui: Elenco forums  LogicLab: Informazioni su p... IEC 61131  Gestire te... in linguaggio ST
Elenco messaggi
 FORUM
Informazioni su programmazione IEC 61131
Informazioni sulla programmazione IEC 61131 in ambiente LogicLab
Discussione
Gestire temporizzazioni in linguaggio ST
Come gestire delle temporizzazioni utilizzando il linguaggio ST
Autore:  TEC0097 Data (GMT):  27/07/2010 15:04:00
Flags Messaggio
Messaggio in Italiano
Nuovo messaggio
Data (GMT):  27/07/2010 15:04:00  
Autore:  TEC0097
Devo gestire una temporizzazione in linguaggio ST. Precedentemente utilizzavo i vostri prodotti Picolog e programmavo in linguaggio "C".
 
Nelle vostre librerie era disponibile la funzione IsMsecTimeOver() che rendeva l'esecuzione delle temporizzazioni estremamente semplice. Esiste qualcosa di simile su SlimLine ?
Messaggio in Italiano
Nuovo messaggio
Data (GMT):  27/07/2010 15:07:50  
Autore:  Utente in linea Bertaser
La funzione IsMsecTimeOver() si basa sul controllo del tick di sistema che nei sistemi Picolog si incrementa automaticamente ogni 1 mS.
 
Nei sistemi SlimLine è possibile da linguaggio ST testare la variabile di sistema SysTime di tipo UDINT che si incrementa ad ogni mS raggiunto il valore massimo si reinizializza. In pratica per eseguire la temporizzazione similarmente a quanto facevi in "C" sui sistemi Picolog puoi fare qualcosa simile al programma sottoriportato che esegue l'inversione della uscita Do00M00 ogni secondo. La variabile RefTimeBuf deve essere dichiarata di tipo UDINT.
 
(* Init the reference time at first program loop. *)
 
IF SysFirstLoop THEN
    RefTimeBuf:=SysTime; (* Save the reference time *)
END_IF;
 
(* Check if 1 Sec is passed and invert the logic DoOOM00 state. *)
 
IF (SysTime > (RefTimeBuf+1000)) THEN
    RefTimeBuf:=SysTime; (* Save the reference time *)
    Do00M00:=NOT(Do00M00);
END_IF;
Messaggio in Italiano
Nuovo messaggio
Data (GMT):  27/07/2010 15:23:35  
Autore:  Utente in linea Bertaser
Esiste anche la funzione SysGetSysTime() che permette la lettura di un tick di sistema che si incrementa ogni uS, in questo caso il programma precedente può essere modificato nel modo.
 
(* Init the reference time at first program loop. *)
 
IF SysFirstLoop THEN
    RefTimeBuf:=SysGetSysTime(TRUE); (* Save the reference time *)
END_IF;
 
(* Check if 1 Sec is passed and invert the logic DoOOM00 state. *)
 
IF (SysGetSysTime(TRUE) > (RefTimeBuf+1000000)) THEN
    RefTimeBuf:=SysGetSysTime(FALSE); (* Save the reference time *)
    Do00M00:=NOT(Do00M00);
END_IF;
 
Da notare la chiamata a SysGetSysTime() con la flag FALSE per avere lo stesso tempo utilizzato nel confronto e non perdere i uS di tempo necessari alla esecuzione delle istruzioni di confronto.
Messaggio in Italiano
Nuovo messaggio
Data (GMT):  27/07/2010 15:52:31  
Autore:  Utente in linea Bertaser
Esistono comunque anche i blocchi funzione eTOF, Timer Off ed eTON, Timer On che possono essere utilizzati in tutti e 5 i linguaggi della IEC61131. Entrambi i blocchi funzione eseguono temporizzazioni con tempo definibile in mS.
Pagina:  (1)      
 © Copyright 1996-2010 ELSIST Srl