Orologio programmatore festività con lettura da file CSV
Home › Forum › Programmazione IEC 61131 (LogicLab) › Orologio programmatore festività con lettura da file CSV
- Questo topic ha 3 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 7 anni, 6 mesi fa da
Sergio Bertana.
-
AutorePost
-
Ottobre 7, 2017 alle 9:34 am #36106
Fabio
PartecipanteAvrei la necessità di poter comandare un contatto NC che durante i giorni festivi (1/1, 6/1, 1/5, 2/6 ecc.. impostati precedentemente) rimanga aperto per l’intera giornata. Cosa potrei utilizzare, ci sono degli esempi ?
Ottobre 7, 2017 alle 9:36 am #39986Sergio Bertana
Amministratore del forumCon i nostri moduli CPUSlimLine è possibile facilmente realizzare quello che desideri. Il FB SysETimeToDate ti ritorna il valore del giorno, mese, anno, ora, minuti, secondi attuali, puoi in modo semplice da neofita della programmazione utilizzare le comparazioni per comparare il valore con le date da te definite. Naturalmente ci sarà una comparazione per ogni data, ecco un esempio in ST.
DateTime(); (* Date/Time value *)
Festivity:=FALSE; (* Festivity flag *)
IF ((DateTime.Day = 1) AND (DateTime.Month = 1)) THEN Festivity:=TRUE; END_IF;
IF ((DateTime.Day = 6) AND (DateTime.Month = 1)) THEN Festivity:=TRUE; END_IF;
IF ((DateTime.Day = 15) AND (DateTime.Month = 8)) THEN Festivity:=TRUE; END_IF;In questo modo quando desideri cambiare le date devi modificare il programma. Puoi anche usare al posto dei valori predefiniti da programma delle variabili tampone e modificare le variabili da debug oppure da pannello operatore, ma dovresti già a priori assumere un numero di confronti. Molto più versatile è invece gestire le date tramite un file CSV, ogni volta che vuoi modificare le date ti basterà trasferire via FTP il nuovo file nel sistema.
Sono partito dal FB riportato in questo topic per realizzare un nuovo FB che gestisce la lettura di un file CSV e attiva il comando se la data odierna è definita nel file, ecco il listato del FB. Il FB è volutamente ridotto al minimo, viene eseguita solo la ricerca di giorno/mese, deve servire da stimolo ai clienti per realizzare il proprio FB con gestione dell’anno, aggiungendo anche gli orari ecc.
Fornisco l’intero progetto LogicLab con un programma in FBD (Screenshot), che istanzia il blocco funzione in modo da poterne testare il funzionamento. Per completezza nel progetto (Ramo 0001) ho inserito anche l’aggiornamento automatico del real time clock con un server NTP su Internet in modo da avere sempre la data corretta. Nel ramo 0002 attivando Di00CPU viene eseguito il FB che attiverà Do00CPU se è un giorno festivo, nella tua richiesta se vuoi disattivare l’uscita inserirai un NOT (Download progetto con file CSV di esempio).
Ottobre 10, 2017 alle 9:38 am #39990Fabio
PartecipanteBuongiorno, volevo provare il programma di esempio e sono in possesso di uno SlimLine con codice MPS053A110 con programma LogicLab 2.5.0.0 e chiedevo se questo può andare bene per fare le prove. Quando carico il progetto ottengo questo “errore”:
Identificativo del sistema non corrispondente: progetto corrente ‘Mps053_XTarget_11_0’, sistema ‘Mps053_XTarget_12_0’.
Caricamento immagine del target .. completato.Confermo comunque con Si ed il programma si apre. Il dispositivo quando sarà programmato non dispone di nessuna connessione ad Internet per la verifica dell’ora attuale, questo è un problema ?
Per quanto riguarda le festività le date saranno sempre le stesse l’unico “problema” sarebbe il giorno della Pasquetta.Ottobre 10, 2017 alle 10:03 am #39991Sergio Bertana
Amministratore del forumIn realtà LogicLab ti segnala una warning, cioè un avviso, nel progetto è definito un target diverso dal tuo, basta che nel menù Project?Select Target tu selezioni il sistema Mps053 XTarget 12.0. Comunque il programma funziona correttamente anche con questa warning.
La connessione ad Internet per l’aggiornamento dell’ora è un optional, puoi tranquillamente cancellare il ramo FBD che lo gestisce. Il tuo sistema ha il real time clock che mantiene data/ora anche allo spegnimento. Se le date sono sempre le stesse, per il calcolo della data di Pasqua puoi utilizzare il blocco funzione riportato in questo topic.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.