Ema78 Inserito: 29 luglio 2010 Segnala Share Inserito: 29 luglio 2010 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 More sharing options...
Ema78 Inserita: 29 luglio 2010 Autore Segnala Share Inserita: 29 luglio 2010 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 More sharing options...
Massimuccio Inserita: 29 luglio 2010 Segnala Share Inserita: 29 luglio 2010 ciaoappoggia 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 More sharing options...
Ema78 Inserita: 29 luglio 2010 Autore Segnala Share Inserita: 29 luglio 2010 ciao, non avendo molte competente in merito..potresti farmi un esempio?grazie Link al commento Condividi su altri siti More sharing options...
Ema78 Inserita: 29 luglio 2010 Autore Segnala Share Inserita: 29 luglio 2010 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 More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora