Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Come Resettare I Bit Di Una Word


Messaggi consigliati

Inserito:

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


alessio.ciccarelli
Inserita:

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

Inserita:

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 ;)

Inserita:

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.

Inserita:

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;

Stefano Sormanni
Inserita:

in linguaggio istruzioni è semplice:

LD Puls_reset

[%mw0:100:=0]

  • 2 months later...
Claudio Monti
Inserita:

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;

;)

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