Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #tempo_mantenimento := "database_tempi".tempo["selezione_tempo"];
- // test per entrare nello stato di emergenza o azzerare il macchianario.
- IF ("richiesta_emergenza" OR "pulsante_emergenza") THEN
- IF ("sensore_piatto_alto" AND (NOT "sensore_piatto_basso") AND
- ("sensore_ganasce_aperte" AND (NOT "sensore_ganasce_chiuse"))
- AND ("sequenza" = 0)) THEN
- "stato_emergenza" := 1;
- "richiesta_emergenza" := 0;
- ELSE
- "Emergenza"();
- END_IF;
- GOTO fine;
- END_IF;
- // toglie stato emergenza quando si spegne il pulsante emergenza
- IF ((NOT "pulsante_emergenza" AND "stato_emergenza") AND
- (NOT ("pulsante_dx" OR "pulsante_sx"))) THEN
- "stato_emergenza" := 0;
- "reset_timer_emerg_ganasce" := 0;
- "reset_timer_emerg_piatto" := 0;
- "reset_timer_emergenza" := 0;
- "reset_timer_ganasce" := 0;
- "reset_timer_piatto" := 0;
- "reset_timer_pulsante" := 0;
- "reset_timer_mantenimento" := 0;
- "start_timer_emerg_ganasce" := 0;
- "start_timer_emerg_piatto" := 0;
- "start_timer_emergenza" := 0;
- "start_timer_ganasce" := 0;
- "start_timer_piatto" := 0;
- "start_timer_pulsante" := 0;
- "start_timer_mantenimento" := 0;
- "stato_timer_emerg_ganasce" := 0;
- "stato_timer_emerg_piatto" := 0;
- "stato_timer_emergenza" := 0;
- "stato_timer_ganasce" := 0;
- "stato_timer_piatto" := 0;
- "stato_timer_pulsante" := 0;
- "stato_timer_mantenimento" := 0;
- "richiesta_apertura" := 0;
- "richiesta_chiusura" := 0;
- "richiesta_discesa" := 0;
- "richiesta_emergenza" := 0;
- "richiesta_salita" := 0;
- "occupato" := 0;
- IF (("pulsante_dx" AND "pulsante_sx") AND
- "pulsante_emergenza") THEN
- "pulsante_sx" := 0;
- "pulsante_dx" := 0;
- END_IF;
- "sequenza" := 0;
- GOTO fine;
- END_IF;
- rilascio:
- IF "errore" = 'X' THEN
- IF ("pulsante_dx" OR "pulsante_sx") THEN
- #consenso := 0; //definisco di non voler proseguire
- GOTO fine;
- ELSIF (NOT ("pulsante_dx" OR "pulsante_sx")) THEN
- "reset_timer_pulsante" := 0;
- "errore" := '0';
- GOTO fine;
- END_IF;
- END_IF;
- IF (("pulsante_dx" OR "pulsante_sx") AND
- ("sequenza" = 0)) THEN
- IF "errore" = 'X' THEN
- "reset_timer_pulsante" := 1;
- GOTO rilascio;
- END_IF;
- #consenso := "pulsante_dx" OR "pulsante_sx";
- "Gestione_pulsanti"(richiesta := #consenso);
- // "Gestione_ciclo"();
- END_IF;
- #consenso := "pulsante_dx" AND "pulsante_sx";
- CASE "sequenza" OF
- 1:
- IF (#consenso AND (("sensore_piatto_alto") AND
- (NOT "sensore_piatto_basso"))) THEN
- "reset_timer_piatto" := 0;
- "richiesta_discesa" := 1;
- "Discesa_piatto"(richiesta_discesa := "richiesta_discesa");
- ELSIF (#consenso AND ((NOT "sensore_piatto_alto") AND
- (NOT "sensore_piatto_basso"))) THEN
- "Discesa_piatto"(richiesta_discesa := "richiesta_discesa");
- ELSIF (#consenso AND ((NOT "sensore_piatto_alto") AND
- ("sensore_piatto_basso"))) THEN
- "Discesa_piatto"(richiesta_discesa := "richiesta_discesa");
- ELSIF (NOT #consenso) THEN
- "sequenza" := 10;
- "richiesta_emergenza" := 1;
- END_IF;
- 2:
- IF (("sensore_ganasce_aperte") AND
- (NOT "sensore_ganasce_chiuse")) THEN
- "reset_timer_piatto" := 0;
- "richiesta_chiusura" := 1;
- "Chiusura_ganasce"(richiesta_chiusura := "richiesta_chiusura");
- ELSIF ((NOT "sensore_ganasce_aperte") AND
- (NOT "sensore_ganasce_chiuse")) THEN
- "Chiusura_ganasce"(richiesta_chiusura := "richiesta_chiusura");
- ELSIF ((NOT "sensore_ganasce_aperte") AND
- ("sensore_ganasce_chiuse")) THEN
- "Chiusura_ganasce"(richiesta_chiusura := "richiesta_chiusura");
- END_IF;
- 3:
- "Mantenimento"(tempo := #tempo_mantenimento);
- 4:
- IF ((NOT "sensore_ganasce_aperte") AND
- ("sensore_ganasce_chiuse")) THEN
- "reset_timer_ganasce" := 0;
- "richiesta_apertura" := 1;
- "Apertura_ganasce"(richiesta_apertura := "richiesta_apertura");
- ELSIF ((NOT "sensore_ganasce_aperte") AND
- (NOT "sensore_ganasce_chiuse")) THEN
- "Apertura_ganasce"(richiesta_apertura := "richiesta_apertura");
- ELSIF (("sensore_ganasce_aperte") AND
- (NOT "sensore_ganasce_chiuse")) THEN
- "Apertura_ganasce"(richiesta_apertura := "richiesta_apertura");
- END_IF;
- 5:
- IF ((NOT "sensore_piatto_alto") AND ("sensore_piatto_basso")) THEN
- "reset_timer_ganasce" := 0;
- "richiesta_salita" := 1;
- "Salita_piatto"(richiesta_salita := "richiesta_salita");
- ELSIF ((NOT "sensore_piatto_alto") AND
- (NOT "sensore_piatto_basso")) THEN
- "Salita_piatto"(richiesta_salita := "richiesta_salita");
- ELSIF (("sensore_piatto_alto") AND
- (NOT "sensore_piatto_basso")) THEN
- "Salita_piatto"(richiesta_salita := "richiesta_salita");
- END_IF;
- 6:
- "reset_timer_piatto" := 0;
- "richiesta_apertura" := 0;
- "richiesta_chiusura" := 0;
- "richiesta_salita" := 0;
- "richiesta_discesa" := 0;
- "stato_timer_pulsante" := 0;
- "sequenza" := 7;
- 10..11:; //non eseguere nulla, sequenze riservate all'emergenza
- ELSE
- "sequenza" := 0;
- //"errore" := '0';
- GOTO fine;
- END_CASE;
- fine: ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement