Vai al contenuto
PLC Forum


Somachine : Test Array


Messaggi consigliati

zanellatofabio
Inserito:

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


Inserita:

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

  • 2 months later...
Inserita: (modificato)

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

prova a guardare la libreria Toolbox della Schneider

il blocco si chiama "ArrayOfByte_TO_String"

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