Vai al contenuto
PLC Forum


Come Resettare I Bit Di Una Word


lscarpetta85

Messaggi consigliati

per favore mi aiutereste, in qualsiasi linguaggio, a resettare tramite un ingresso (pulsante di reset) tutti i bit di una word.

mi spiego meglio: ho una lista di allarmi da trasferire allo scada;ogni allarme mi setta un bit di una %MW (p.e. utilizzati dalla %MW100:X0 alla %MW100:X15).

si riesce ad inviare un comando unico di reset a tutti gli elementi della word o devo resettare ogni bit singolarmente?

grazie e perdonate la banalità della domanda ma da un'occhiata al manuale e qualche mia prova non sono riuscito a venirne fuori.

luca

Link al commento
Condividi su altri siti


alessio.ciccarelli

Penso che basta passare il valore 0 a tutta la word... con omron io lo farei con il comando [at]MOV oppure con un Multiple Bit Reset [at]RSTA (resetta un determinato numero di bit)

[at] sta ad indicare l'attivazione differenziale su fronte di salita

Colleghi il tuo reset ad una delle tue istruzioni ed il gioco è fatto.

Ciao Alessio

Link al commento
Condividi su altri siti

Se usi siemens puoi fare cosi:

U ResetAllarmi
spbn Rst

L 0
T WordAllarmi

Rst: nop 0

Ovviamente gli allarmi devono essere nella stessa word altrimenti il giochetto non funziona :lol:

Good Luck, Jake ;)

Link al commento
Condividi su altri siti

grazie ragazzi, ma è proprio quello che non riesco a trovare su PL7.con siemens l'ho fatto più volte e cercavo di farlo anche con il premium.

Link al commento
Condividi su altri siti

in maniera più generale possibile il RESET di un bit corrisponde all'istruzione AND con un bit sempre =0

%m0 AND %m1 = %m0 (con %m1 sempre =0)

quindi nel tuo esempio (eseguendo un AND su parola)

IF pulsante reset THEN

%mw100:=%mw100 AND 16#0000; (in esadecimale) (oppure 2#0000000000000000 bit per bit)

END_IF;

in termini matematici azzerare tutti i bit di una word equivale a porre il valore 0 alla stessa

IF pulsante reset THEN

%mw100:=0;

END_IF;

Link al commento
Condividi su altri siti

  • 2 months later...
Claudio Monti

Se devi azzerare TUTTI i bit puoi fare come ti ha detto Stefano, in ST e' cosi':

IF input THEN 
     %MW100:=0;
END_IF
Addirittura se hai una tabella di allarmi la puoi azzerare tutta:
es. 10 word di allarmi sostituisci al codice di prima
    %MW100:10:=0;

;)

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...