Vai al contenuto
PLC Forum


Incremento Valore Variabile Di Registro %r


Ema78

Messaggi consigliati

Salve a tutti, espongo subito il problema.

Devo programmare gli allarmi di un touchscreen che, nella sua modalità di configurazione, accetta solo variabili di registro (max. 4) e l'utilizzo dei bit al suo interno per associarvi il corrispondente allarme (max. 256 allarmi x variabile).

Ad esempio:

%R1 -> bit0 -> OFF nessun allarme attivo - ON attiva allarme "Alto livello silo 1"

-> bit1 -> OFF nessun allarme attivo - ON attiva allarme "Alto livello silo 2"

-> bit2 -> OFF nessun allarme attivo - ON attiva allarme "Alto livello silo 3"

In totale gli allarmi sono 48 e non posso associare un allarme ad una variabile di registro distinta in quanto al massimo posso utilizzare 4 blocchi di allarmi ognuno associato ad una variabile di registro.

Sono quindi costretto a crearmi nel programma del PLC, invece dei merker %M associati ad ogni allarme, un blocco che ad es. quando %M1(soglia alto livello silo 1) è ON attivi il bit 0 (il più a destra) della variabile %R1, che da uno stato iniziale di 0 passi ad 1 ; quando %M1 è OFF il bit ritorna a 0.

Quando %M2(soglia alto livello silo 2) è ON attivi il bit 1 (secondo da destra) della variabile %R1, che da uno stato iniziale di 0 passi ad 1 ; quando %M2 è OFF il bit ritorna a 0.

E così via finchè non ho riempito tutti i bit. In pratica associare ogni %m1 a un distinto bit della stessa variabile di registro e che lo faccia lavorare ad ogni sua attivazione o disattivazione.

Poichè gli stati di allarme sono 48 posso utilizzare una variabile di registo in formato reale e con una sola di essa espletare il tutto.

Qualcuno sa se esiste una funzione specifica per fare quello che mi serve? o se no il procedimento passo-passo per creala?

Spero di essermi spiegato bene, grazie in anticipo.

Ema78.

Link al commento
Condividi su altri siti


So che esiste la funzione BIT_SEQUENCE, ma non so che implica la funzione di RESET, ovvero quando il blocco viene energizzato (in questo caso da %M1 attivo) il relativo bit scelto passa a 1, ma non so se quando %M1 non è attivo se il BIT della variabile di registo torna a 0

Link al commento
Condividi su altri siti

ciao

appoggia gli allarmi su delle memorie. Es. all1---> m1, all2----> m2, ecc ecc, alla fine prova a fare un move sul registro che legge il pannello(es r1). dovresti trovarti tutti i bit in un unico registro sul pannello.

Link al commento
Condividi su altri siti

penso di aver risolto utilizzando i blocchi funzioneBIT_SET_WORD e BIT_CLR_WORD utilizzando la memoria %M rispettivamente con contatto NO per il SET e con contatto NC per il CLEAR.

ciao

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...