Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #valore := 0; // Inizializza le variabili #valore e #stato a 0
- #stato := 0;
- IF (#acquisizione <> 16#7FFF) THEN // Se non c'è stato errore di acquisizione
- #valore := #a * INT_TO_REAL(WORD_TO_INT(#acquisizione)) + #b; (* Converte in reale (da WORD a INT, da INT a REAL)
- il valore acquisito, lo moltiplica per #a e vi
- somma #b *)
- IF (#valore > #soglia_sup) THEN // Se il valore reale è maggiore della soglia superiore
- #stato := 2#10000010; (* Allora setta il bit 1 di superamento soglia superiore e il bit 7 di
- presenza di un errore*)
- ELSIF (#valore < #soglia_inf) THEN // Altrimenti se il valore reale è minore della soglia inferiore
- #stato := 2#10000100; (* Allora setta il bit 2 di superamento soglia inferiore e il bit 7 di
- presenza di un errore*)
- ELSE // Se invece non ci sono stati errori o superamenti di soglie allora
- #stato := 2#00000000; // Restta tutti bit di errore
- END_IF;
- ELSE // Se si è verificato un errore nell'acquisizione allora
- #stato := 2#10000001;
- #valore := DWORD_TO_REAL(16#FFFF); (* Allora setta il bit 0 di "errore" nell'acquisizione e il bit 7 di
- presenza di un errore, mentre carica in uscita il valore esadecimale
- (convertito in reale) FFFF *)
- END_IF;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement