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




Settare variabili DB


Messaggi consigliati

Inserito:

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.


Inserita: (modificato)

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
Inserita:

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

Inserita:

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.
 

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