Jump to content
PLC Forum


Structured language


Reverendo bit
 Share

Recommended Posts

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 to comment
Share on other sites

  • 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 to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...