Untitled
unknown
plain_text
2 years ago
2.6 kB
14
Indexable
(* Dichirazione delle Variabili *)
VAR
ACCENDI_MOTORE: BOOL := FALSE;
statoCorrente : ENUM {Iniziale, Carico, Lavaggio, Risciacquo, Disinfestazione, Spegnimento};
MostraMessaggio: STRING;
quantitaDetergente: REAL;
quantitaDisinfettante: REAL := 150 (* Quantita di disinfettante *)
temperaturaLavaggio: INT;
tempoLavaggio: TIME;
quantitaAcqua: INT;
tempoRisciacquo: TIME;
cicliRisciacquo: INT;
tempAcqua: INT;
END_VAR
(* Logica di Controllo Principale *)
IF NOT ACCENDI_MOTORE THEN
ACCENDI_MOTORE := TRUE (* Accendi il motore se non e gia acceso *)
statoCorrente := Carico (* Imposta lo stato iniziale a Carico *)
END_IF
CASE statoCorrente OF
Carico:
MostraMessaggio := "Per favore, inserisci i vestiti.";
WaitForUserInput();
statoCorrente := Lavaggio
Lavaggio:
MostraMessaggio := "Avvio del lavaggio..";
temperaturaLavaggio := 30; (* Temperatura dell acqua per il lavaggio in gradi Celsius *)
quantitaAcqua := 50; (* Livello dell acqua per il lavaggio *)
quantitaDetergente := 100.0; (* Quantita di detersivo in ml *)
tempoLavaggio := 20; (* Tempo di lavaggio di 20 minuti *)
OpenWaterValve(quantitaAcqua);
SetWaterTemperature(temperaturaLavaggio);
DispenseDetergent(quantitaDetergente);
StartWashingCycle(tempoLavaggio);
statoCorrente := Risciacquo;
Risciacquo:
MostraMessaggio := "Inizio della fase di risciacquo..";
tempAcqua := 25 (* Temperatura dell acqua di risciacquo in gradi Celsius *)
cicliRisciacquo := 2 (* Numero di cicli di risciacquo *)
tempoRisciacquo := 5 (* Tempo di risciacquo per il ciclo *)
quantitaAcqua := 40 (* Livello dell acqua per il risciacquo *)
FOR i := TO cicliRisciacquo DO
OpenWaterValve(quantitaAcqua);
SetWaterTemperature(tempAcqua);
StartRinseCycle(tempoRisciacquo);
END_FOR;
statoCorrente := Disinfestazione
Disinfestazione:
MostraMessaggio := "Inizio della fase di disinfestazione..";
quantitaDisinfettante = 150.0 (* Quantita di disinfettante in ml *)
OpenDisinfectantValve();
DispenseDisinfectant(quantitaDisinfettante);
RunDisinfectionProcess();
MostraMessaggio := "Disinfestazione completata";
statoCorrente := Spegnimento
Spegnimento:
MostraMessaggio := "Spegnimento del motore..";
ACCENDI_MOTORE := FALSE (* Spegni il motore *)
statoCorrente := Iniziale
END_CASEEditor is loading...
Leave a Comment