Advertisement
tanfy88

Untitled

Mar 11th, 2018
2,301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SCL 5.51 KB | None | 0 0
  1. #tempo_mantenimento := "database_tempi".tempo["selezione_tempo"];
  2.  
  3. // test per entrare nello stato di emergenza o azzerare il macchianario.
  4. IF ("richiesta_emergenza" OR "pulsante_emergenza") THEN
  5.     IF ("sensore_piatto_alto" AND (NOT "sensore_piatto_basso") AND
  6.         ("sensore_ganasce_aperte" AND (NOT "sensore_ganasce_chiuse"))
  7.         AND ("sequenza" = 0)) THEN
  8.         "stato_emergenza" := 1;
  9.         "richiesta_emergenza" := 0;
  10.     ELSE
  11.         "Emergenza"();
  12.     END_IF;
  13.     GOTO fine;
  14. END_IF;
  15.  
  16. // toglie stato emergenza quando si spegne il pulsante emergenza
  17. IF ((NOT "pulsante_emergenza" AND "stato_emergenza") AND
  18.     (NOT ("pulsante_dx" OR "pulsante_sx"))) THEN
  19.     "stato_emergenza" := 0;
  20.     "reset_timer_emerg_ganasce" := 0;
  21.     "reset_timer_emerg_piatto" := 0;
  22.     "reset_timer_emergenza" := 0;
  23.     "reset_timer_ganasce" := 0;
  24.     "reset_timer_piatto" := 0;
  25.     "reset_timer_pulsante" := 0;
  26.     "reset_timer_mantenimento" := 0;
  27.     "start_timer_emerg_ganasce" := 0;
  28.     "start_timer_emerg_piatto" := 0;
  29.     "start_timer_emergenza" := 0;
  30.     "start_timer_ganasce" := 0;
  31.     "start_timer_piatto" := 0;
  32.     "start_timer_pulsante" := 0;
  33.     "start_timer_mantenimento" := 0;
  34.     "stato_timer_emerg_ganasce" := 0;
  35.     "stato_timer_emerg_piatto" := 0;
  36.     "stato_timer_emergenza" := 0;
  37.     "stato_timer_ganasce" := 0;
  38.     "stato_timer_piatto" := 0;
  39.     "stato_timer_pulsante" := 0;
  40.     "stato_timer_mantenimento" := 0;
  41.     "richiesta_apertura" := 0;
  42.     "richiesta_chiusura" := 0;
  43.     "richiesta_discesa" := 0;
  44.     "richiesta_emergenza" := 0;
  45.     "richiesta_salita" := 0;
  46.     "occupato" := 0;
  47.     IF (("pulsante_dx" AND "pulsante_sx") AND
  48.         "pulsante_emergenza") THEN
  49.         "pulsante_sx" := 0;
  50.         "pulsante_dx" := 0;
  51.     END_IF;
  52.     "sequenza" := 0;
  53.     GOTO fine;
  54. END_IF;
  55.  
  56. rilascio:
  57. IF "errore" = 'X' THEN
  58.     IF ("pulsante_dx" OR "pulsante_sx") THEN
  59.         #consenso := 0; //definisco di non voler proseguire
  60.         GOTO fine;
  61.     ELSIF (NOT ("pulsante_dx" OR "pulsante_sx")) THEN
  62.         "reset_timer_pulsante" := 0;
  63.         "errore" := '0';
  64.         GOTO fine;
  65.      END_IF;
  66. END_IF;
  67.  
  68. IF (("pulsante_dx" OR "pulsante_sx") AND
  69.     ("sequenza" = 0)) THEN
  70.     IF "errore" = 'X' THEN
  71.         "reset_timer_pulsante" := 1;
  72.         GOTO rilascio;
  73.     END_IF;
  74.     #consenso := "pulsante_dx" OR "pulsante_sx";
  75.     "Gestione_pulsanti"(richiesta := #consenso);
  76.     // "Gestione_ciclo"();
  77. END_IF;
  78.  
  79. #consenso := "pulsante_dx" AND "pulsante_sx";
  80.  
  81. CASE "sequenza" OF
  82.     1:
  83.         IF (#consenso AND (("sensore_piatto_alto") AND
  84.             (NOT "sensore_piatto_basso"))) THEN
  85.             "reset_timer_piatto" := 0;
  86.             "richiesta_discesa" := 1;
  87.             "Discesa_piatto"(richiesta_discesa := "richiesta_discesa");
  88.         ELSIF (#consenso AND ((NOT "sensore_piatto_alto") AND
  89.             (NOT "sensore_piatto_basso"))) THEN
  90.             "Discesa_piatto"(richiesta_discesa := "richiesta_discesa");
  91.         ELSIF (#consenso AND ((NOT "sensore_piatto_alto") AND
  92.             ("sensore_piatto_basso"))) THEN
  93.             "Discesa_piatto"(richiesta_discesa := "richiesta_discesa");
  94.         ELSIF (NOT #consenso) THEN
  95.             "sequenza" := 10;
  96.             "richiesta_emergenza" := 1;
  97.         END_IF;
  98.     2:
  99.         IF (("sensore_ganasce_aperte") AND
  100.             (NOT "sensore_ganasce_chiuse")) THEN
  101.             "reset_timer_piatto" := 0;
  102.             "richiesta_chiusura" := 1;
  103.             "Chiusura_ganasce"(richiesta_chiusura := "richiesta_chiusura");
  104.         ELSIF ((NOT "sensore_ganasce_aperte") AND
  105.             (NOT "sensore_ganasce_chiuse")) THEN
  106.             "Chiusura_ganasce"(richiesta_chiusura := "richiesta_chiusura");
  107.         ELSIF ((NOT "sensore_ganasce_aperte") AND
  108.             ("sensore_ganasce_chiuse")) THEN
  109.             "Chiusura_ganasce"(richiesta_chiusura := "richiesta_chiusura");
  110.         END_IF;
  111.     3:
  112.         "Mantenimento"(tempo := #tempo_mantenimento);
  113.     4:
  114.         IF ((NOT "sensore_ganasce_aperte") AND
  115.             ("sensore_ganasce_chiuse")) THEN
  116.             "reset_timer_ganasce" := 0;
  117.             "richiesta_apertura" := 1;
  118.             "Apertura_ganasce"(richiesta_apertura := "richiesta_apertura");
  119.         ELSIF ((NOT "sensore_ganasce_aperte") AND
  120.             (NOT "sensore_ganasce_chiuse")) THEN
  121.             "Apertura_ganasce"(richiesta_apertura := "richiesta_apertura");
  122.         ELSIF (("sensore_ganasce_aperte") AND
  123.             (NOT "sensore_ganasce_chiuse")) THEN
  124.             "Apertura_ganasce"(richiesta_apertura := "richiesta_apertura");
  125.         END_IF;
  126.     5:
  127.         IF ((NOT "sensore_piatto_alto") AND ("sensore_piatto_basso")) THEN
  128.             "reset_timer_ganasce" := 0;
  129.             "richiesta_salita" := 1;
  130.             "Salita_piatto"(richiesta_salita := "richiesta_salita");
  131.         ELSIF ((NOT "sensore_piatto_alto") AND
  132.             (NOT "sensore_piatto_basso")) THEN
  133.             "Salita_piatto"(richiesta_salita := "richiesta_salita");
  134.         ELSIF (("sensore_piatto_alto") AND
  135.             (NOT "sensore_piatto_basso")) THEN
  136.             "Salita_piatto"(richiesta_salita := "richiesta_salita");
  137.         END_IF;
  138.     6:
  139.         "reset_timer_piatto" := 0;
  140.         "richiesta_apertura" := 0;
  141.         "richiesta_chiusura" := 0;
  142.         "richiesta_salita" := 0;
  143.         "richiesta_discesa" := 0;
  144.         "stato_timer_pulsante" := 0;
  145.         "sequenza" := 7;
  146.     10..11:;       //non eseguere nulla, sequenze riservate all'emergenza
  147.     ELSE
  148.         "sequenza" := 0;
  149.         //"errore" := '0';
  150.         GOTO fine;
  151. END_CASE;
  152.  
  153. fine:   ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement