Vai al contenuto
PLC Forum


Settare variabili DB


Zio Cerotto

Messaggi consigliati

Salve a tutti, esiste una qualche istruzione o sistema per settare tutti i valori di una DB di "bool" a 1 o a 0?
Intendo una roba simile a creare un merker che mandi in set se comandato tutte le singole variabili, che mi eviti però di scrivere a manina il papiro che mi servirebbe per farlo (sono più di 200).
Deve funzionare in maniera uguale appunto al SET/RESET, quindi senza che ci sia una variabile che scriva sempre ad 1, in modo che poi possa riscriverle a 0 anche singolarmente.

Link al commento
Condividi su altri siti


200 bit sono 7 Dword.o 14 Word più o meno...😁

metti a FFFFFFFFF ogni Dword oppure FFFF in ogni Word e sei a cavallo

in un DB non ottimizzato!

 

Questa "Deve funzionare in maniera uguale appunto al SET/RESET, quindi senza che ci sia una variabile che scriva sempre ad 1, in modo che poi possa riscriverle a 0 anche singolarmente." però non l'ho capita.

Modificato: da drn5
Link al commento
Condividi su altri siti

-Dichiari array di 200 bool 

-Ciclo FOR dentro ciclo IF 

-Stop. 

 

IF #Condizione_On THEN 

    FOR #in := 0 TO 199 DO 

        MyArray[#in] := TRUE; 

    END_FOR; 

END_IF;


 

IF #Condizione_Off THEN 

    FOR #in := 0 TO 199 DO 

        MyArray[#in] := FALSE; 

    END_FOR; 

END_IF;

 

Condizione_On e Condizione_Off meglio se sono i fronti della condizione. 

 

Quote

Questa "Deve funzionare in maniera uguale appunto al SET/RESET, quindi senza che ci sia una variabile che scriva sempre ad 1, in modo che poi possa riscriverle a 0 anche singolarmente." però non l'ho capita.

Credo intenda che la condizione che alza o abbassa i bit non deve essere un Sempre On. 

Link al commento
Condividi su altri siti

Se stai lavorando con un DB ottimizzato, non puoi adottare la soluzione proposta da @drn5.
Se i tuoi bit non fanno parte di un array perché ad ogni bit vuoi assegnare un nome, non puoi adottare la soluzione proposta da @step-80.

La soluzione più rapida è creare una struttura identica a quella che devi azzerare, con tutti i bit sempre a zero, e copiare tutta la struttura con una sola istruzione. Non nsono certo 200 bit in più che ti mettono in crisi per occupazione di memoria.
 

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