13/09/2023 - max.riservo ha scritto:
Devi ricavare il giorno della settimana dalla data di sistema (che in genere è un insieme di variabili di sistema che vanno comunque inizializzate).
In merito ai test suddivisi per i vari giorni della settimana è buona norma avere anche una banda di inazione (ovvero isteresi).
Esempio :
IF Temperatura >= 50 THEN
AriaCondizionata := TRUE;
ELSIF Temepratura < 48 THEN
AriaCondizionata := FALSE;
END_IF
Immagina un macchinario (magari con un forte assorbimento elettrico) che si accende e si spegne in continuo perchè il valore di temperatura che ti arriva dall'ingresso analogico oscilla tra 50,0 e 49,9 (lasciamo perdere la validità di una siffatta misura).
Nel tuo codice potresti anche essertela cavata gestendo la misura di temperatura con una variabile di tipo intero (e quindi 49 oppure 50) resta il fatto che va sempre verificato se e quanto ampia serve l'isteresi.
P.S. : Di che PLC stiamo parlando?
Hai ragione e grazie per avermi dato questa info importante.
13/09/2023 - sihsandrea ha scritto:
Intanto sarebbe necessario avere delle informazioni in più
- La data come la prendi?
- Il plc non ha la funzione dayofweek che restituisce 1 per lunedì fino a 7 per la domenica?
Case f_DayOfWeek of
2: ariacondizionata := (temperatura >11 and temperatura <23) ;
// il martedì se la temperatura ha quel range si accende altrimenti si spegne
5, 6 : ariacondizionata := not (temperatura <11 or temperatura >23) ;
// venerdì e sabato se la temperatura è inferiore a 11 gradi o superiore a 23 gradi si spegne altrimenti si accende
Else: ariacondizionata:=false;
// tutti gli altri giorni si spegne
End;
Mi segno anche questa, più fluida e comoda se inizio ad avere più codice
Non si tratta di un PLC fisico. Come scritto nel post di apertura sto studiando il codice ST per esigenze di lavoro e, utilizzando Codesys sto realizzando dei progetti per mettere in pratica le nozioni e migliorarmi.
Per ricavare la data dal sistema ho visto che Codesys usa la libreria SysTime (installata)..ora devo capire come applicarla e utilizzarla (non ho molta esperienza in questo senso). Spero di aggiornarvi presto