Vai al contenuto
PLC Forum


Analisi Segnale Analogico Plc Cj2M


MABE

Messaggi consigliati

Fatto esempio simulato, ecco qua.

Siano D14-D19 area dati (ho messo quelli del tuo precedente post

D5 contiene il numero di dati nella tabella meno uno (nostro caso 5).

D0 valore differenza oltre il quale si considera variazione repentina (ho messo 3)

D1 conterrà il valore in cui il massimo ha avuto repentina variazione, e IR0 punterà al valore in tabella: D1 sarà 9999 se non trova il massimo

IR0 è il registro indice puntatore, e D6 un contatore per verificare di aver trovato un massimo all'uscita del loop

E' messo in simil ST per problemi di rappresentazione del ladder...

MOVR D14 IR0 // Indirizzo di D14 in IR0

MOV &0 D6 // prepara l'ausiliario a 0

FOR D5 // imposta il FOR al numero di elementi meno uno

MOV ,IR0+ D2 // Sposta il valore del dato puntato da IR0 in D2 e incrementa IR0

MOV ,IR0 D3 // Sposta il valore del dato puntato da IR0 in D3

++ D6 // Incrementa Contatore

- D3 D2 D4 // Calcola la differenza tra i due valori letti e mettila in D4

> D4 D0 // Se la differenza è maggiore del preimpostato D0

BREAK // Interrompi la scansione

NEXT // Next For Loop

MOV &999 D1 // predisponi valore indicante massimo non trovato

<= D6 D5 // Se il contatore è inferiore al massimo numero di elementi, allora c'è stato un massimo

MOV D3 D1 // Sposta il valore massimo in D1

Modificato: da Ctec
Link al commento
Condividi su altri siti


Ti dava errore alla sottrazione perchè stavi tentando di fare la sottrazione tra due IR, cosa non consentita perchè gli IR sono doppia word (quindi avresti dovuto casomai usare -L).

Ma l'operazione -L IR1 IR0 IR3 esegue la differenza tra gli indirizzi contenuti in IR0 e IR1 e mette l'indirizzo risultato in IR3, che non è quello che volevi...

Fate attenzione alle virgole prima delle IR, specificano il valore puntato da, e non il valore contenuto in...

Link al commento
Condividi su altri siti

Si e no.

La FOR, la NEXT non devono avere nulla prima.

la BREAK segue la comparazione del rigo che la precede, non serve il contatto P_On

Lo stesso per l'ultima MOV che segue il confronto al penultimo rigo.

E' una semplificazione del ladder, per motivi grafici.

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