Vai al contenuto
PLC Forum


Structured language


Reverendo bit

Messaggi consigliati

Reverendo bit

Ciao a tutti,

 

In un progetto ho una routine Ladder con circa 250 variabili in OR per scrivere una variabile cumulativa.

La gestione di questa routine è non poco antipatica per il numero di variabili, per questo motivo, volevo sostituire la routine ladder con una in linguaggio strutturato.

Ingenuamente pensavo di mettere le stesse variabili presenti nel ladder, in OR con la seguente sintassi:

 

Var1:= Var2 or

           Var3 or

           Varn;

 

solo che mi sono accorto che dopo un certo numero di istruzioni OR (mi sembra 5 o 6) mi da errore, dicendomi che ho inserito troppe OR senza parentesi.

Allorche cambio strategia:

 

Var1:= (Var2 or

           Var3 or

           Varn) or

          (Var2 or

           Var3 or

           Varn);

 

Ma anche così non gli piace, ricevo lo stesso errore.

Qualcuno se è possibile mettere in or le 250 variabili con il linguaggio strutturato?

Ho scaricato anche il manuale, ma non ho trovato nulla a riguardo.

 

Grazie.

Saluti.

Duccio.

Link al commento
Condividi su altri siti

  • 5 months later...

Ciao,

 

probabilmente danno fastidio al codice troppe or in fila, se le raggruppi in piccoli gruppi tra parentesi non da errore

 

Bool_00 := (Bool_01 or Bool_02 or Bool_03 or Bool_04) or (Bool_05 or Bool_06 or Bool_07 or Bool_08) ;

 

 

 

Saluti

 

Link al commento
Condividi su altri siti

Io non tocco prodotti Allen Bradley da 15 anni circa quindi sono fuori gioco, ma pensare di leggere questi flag come dword e verificare che la dword sia diversa da zero?
 

Link al commento
Condividi su altri siti

Conviene, ma bisogna pensarci all'inizio, agire con array. Dichiarando le controller tags

 

dato          BOOL[300]
risultato     BOOL
indice          INTEGER

 

// con un ciclo

risultato := 0;
FOR indice :=1 to 255 DO
risultato := risultato OR dato[indice]
END_FOR;

    

Link al commento
Condividi su altri siti

Mi accodo ai consigli che ti sono stati dati: salva tutti i bit in un array e cicla sull'array, oppure salva ogni condizione su word e verifica se le word risultanti sono uguali o meno a zero.

Stai usando CCW? Per gioco ho provato a creare un progetto con 2048 variabili bool in or e me lo compila senza problemi.

Link al commento
Condividi su altri siti

  • 2 months later...

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