Logiche di "pensiero" per testo strutturato
Ciao a tutti, sono un novellino della programmazione in PLC, fino ad ora con Allen Bradley serie micro 800.
Ho ottima dimestichezza con il linguaggio di programmazione in generale, e quindi mi piacerebbe approfondire alcune logiche, riporto un esempio contro cui mi sono scontrato:
ciò che io volevo tradurre era
ed ho banalmente scritto così:
Ma mi sono ben presto reso conto che non sono affatto la stessa cosa:
in LD se la condizione "commutazione" viene a mancare, anche l'uscita cade, diversamente in ST una volta assegnato "true" all'uscita, questa non viene modificata al mancare della condizione.
Risolvo aggiungendo un elseif:
Ora la mia domandona è: questo è l'unico modo di operare sulle bobine? devo sempre avere una condizione e un ELSE per resettare l'uscita?
Se sì, risulta certamente molto più comodo il LD.... (relativamente a questo esempio)
Ho ottima dimestichezza con il linguaggio di programmazione in generale, e quindi mi piacerebbe approfondire alcune logiche, riporto un esempio contro cui mi sono scontrato:
ciò che io volevo tradurre era
ed ho banalmente scritto così:
- Codice: Seleziona tutto
if (commutazione) THEN
Reset_counter := TRUE; (*RESETTO IL CONTATORE DI IMPULSI*)
END_IF;
Ma mi sono ben presto reso conto che non sono affatto la stessa cosa:
in LD se la condizione "commutazione" viene a mancare, anche l'uscita cade, diversamente in ST una volta assegnato "true" all'uscita, questa non viene modificata al mancare della condizione.
Risolvo aggiungendo un elseif:
- Codice: Seleziona tutto
IF (commutazione) THEN
Reset_counter := TRUE; (*RESETTO IL CONTATORE DI IMPULSI*)
ELSEIF
Reset_counter := FALSE;
END_IF;
Ora la mia domandona è: questo è l'unico modo di operare sulle bobine? devo sempre avere una condizione e un ELSE per resettare l'uscita?
Se sì, risulta certamente molto più comodo il LD.... (relativamente a questo esempio)