Vai al contenuto
PLC Forum


test array_0...3 / INT >< 0


 ghismo1974

Messaggi consigliati

buona sera.

come screen shot allegato, vorrei testare che almeno una delle 4 DW abbia assunto il valore diverso da zero.

In allegato gli array da testare.

Grazie per il supporto. Ciao.

array.png

Link al commento
Condividi su altri siti


Tempo fa  risposi ad una discussione simile

Puoi fare una cosa del genere.

Crei un fc nuovo e incolli questo codice:

 

Interfaccia dell'fc:

IN:

OefkXbt.png

OUT:

iWLyLnM.png
TEMP:

xQtuKiw.png

TEMP:BITSUM:

r0z6s6y.png

      UN    #TRIGGER
      SPB   END
      L     0
      T     #WORD_DIVERSE_DA_0
      T     #BIT_TOTALI_A_1
      L     P##START_ADDR
      LAR1  
      L     W [AR1,P#0.0]
      T     #NUM_DB
      L     D [AR1,P#2.0]
      LAR1  
      AUF   DB [#NUM_DB]
LOOP: L     DBW [AR1,P#0.0]
      L     0
      <>I   
      SPBN  _0
      L     #WORD_DIVERSE_DA_0
      +     1
      T     #WORD_DIVERSE_DA_0
      L     DBW [AR1,P#0.0]
      T     #APP
      L     0
      T     #APP_B_1
      L     #APP
      T     #BITSUM.CNT
A001: L     0
      L     #BITSUM.CNT
      ==D   
      SPB   A002
      SRD   1
      T     #BITSUM.CNT
      SPZ   A001
      L     #APP_B_1
      L     1
      +I    
      T     #APP_B_1
      SPA   A001
A002: NOP   0
      L     #APP_B_1
      L     #BIT_TOTALI_A_1
      +I    
      T     #BIT_TOTALI_A_1
_0:   NOP   0
      L     #SW_EXEC
      +     1
      T     #SW_EXEC
      L     #LENGHT
      L     #SW_EXEC
      ==I   
      SPB   END
      +AR1  P#2.0
      SPA   LOOP
END:  SET   
      R     #TRIGGER

Da ob1 o da dove preferisci, richiami l'fc appena creato, così:

DMVpEGd.png

(come lunghezza ho messo 24 visto che hai 24 word complessive, ma puoi spezzare come preferisci

 

xa2Z4je.png

 

Poi semplicemente ti basterà fare un confronto.

L MW18 (word diverse da 0)

L 0

<>I

= operazioni

 

Con questo fc puoi controllare in automatico se hai word diverse da 1 per qualsiasi lunghezza tu voglia controllare.

 

Altrimenti, ti fai i confronti singoli.

L Word1

L 0

<>I

= operazione

 

L Word2

L 0

<>I

= operazione

etc etc

 

Ciao!

 

Link al commento
Condividi su altri siti

Purtroppo ci sono stati almeno 4 aggiornamenti del forum, l'ultimo solo un paio di settimane fa. Ad ogni aggornamento si perde sempre quekche cosa molto antica.:angry:

 

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