Vai al contenuto
PLC Forum


Somachine : Test Array


zanellatofabio

Messaggi consigliati

zanellatofabio

Ciao a tutti ,

in un programma ho un array dichiarato come array_allarmi: ARRAY[0..100] OF BOOL;

vorrei trovare il modo di testare se c'e' un bit a 1 .

C'è qualche strada veloce oppure bisogna farsi un blocco con un ciclo for next per scorrere l'intero array ?

Un grazie anticipato a chi risponderà .

Link al commento
Condividi su altri siti


ciao

io faccio così :

// dichiarazione delle variabili +++++++++++++++++++++++++

VAR

allarmi : ARRAY[0..100] OF BOOL;

test_allarmi: INT;

conta_allarmi: INT;

allarmi_attivi: INT;

END_VAR

// azzera conteggio numero allarmi attivi

conta_allarmi := 0;

// ciclo for per conteggio allarmi attivi

FOR (test_allarmi := 0) TO 100 DO

IF (allarmi[test_allarmi] <>0) THEN

conta_allarmi := conta_allarmi + 1;

END_IF

END_FOR

// aggiornamento numero di allarmi attivi

allarmi_attivi := conta_allarmi;

non mi sembra di aver trovato un'altro modo

saluti da Valvolina

Link al commento
Condividi su altri siti

  • 2 months later...

Potresti anche fare così:

crei un'altra array array_allarmiSempreZero: ARRAY[0..100] OF BOOL; della quale non attiverai mai alcun bit.

xAllarmiPresenti := array_allarmiSempreZero <> array_allarmiSempreZero; se la tua array è diversa da quella sempre a zero significa che almento un bit è attivo.

Ti piace?

Massimo

Modificato: da MaxSub
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...