Vai al contenuto
PLC Forum


Errore In Puntamento Aree Dm


Xenatron

Messaggi consigliati

Salve a tutti ho un problema che non riesco a risolvere, devo memorizzare 50 dati in relative DM consecutive puntandole in maniera indiretta tramite la funzione XFER, leggo un valore da 1 a 20 da seriale dopodichè eseguo un calcolo semplicissimo pointer=(n*50)+2000 per partire dalla DM2000 e il 99% delle volte i dati vanno nell'area designata eppure qualche volta in dati vengono registarti in maniera anomala. Giuro che non capisco :blink:

Link al commento
Condividi su altri siti


I plc è un CJ1G-H, n al massimo è 20 (con controllo di limite) , da altri forum ho rilevato che prima di iniziare il calcolo occorre usare il CLC se no il calcolo può essere falsato, qualcuno sa qualcosa di ciò? <_<

Link al commento
Condividi su altri siti

Si, nel rung in cui effettui il calcolo prima dell'istruzione di calcolo stesso devi inserire l'istruzione CLC in modo che venga azzerato il carry (riporto) in quanto le operazioni tengono anche del riporto nel risultato.

es.:

LD CF113

CLC

MUL D0 #50 D4

LD CF113

CLC

SUM D4 #2000 D6

Link al commento
Condividi su altri siti

Ciao

Mi spieghi meglio cosa intendi x

>> eppure qualche volta in dati vengono registarti in maniera anomala ??

Fai la chiamata di XFER su fronte di salita [at]XFER e con [at]MOV salva l'indirizzo del puntatore in un'alra DM libera in modo da poter controllare l'indirizzo puntato

Modificato: da sndaniele
Link al commento
Condividi su altri siti

Lo avevo fatto ma l'errore è molto sporadico circa 1 volta ogni 2 - 3 gg e non sono mai riuscito a visualizzarlo. Come mai la Omron non segnala questa mancanza nel manuale? adesso provo poi vi faccio sapere.

Link al commento
Condividi su altri siti

Prima di tutto, guardate che le istruzioni aritmetiche '+' e '-' del CJ1 NON sommano (o sottraggono) il Carry, a meno che non venga esplicitamente richiesto (in tal caso si utilizzano le istruzioni '+C' e '-C')... Tanto meno la '*'

Quindi prima di accusare i poveri manuali... :lol:

Il Carry veniva sommato o sottratto solo nelle istruzioni (BCD) ADD e SUB dei PLC 'vecchi' (CPM1,CQM1, C200H...) ma questo è un altro discorso.

POi:

Condivido il suggerimento di sndaniele. Secondo me poi il tuo puntatore viene influenzato da qualche altra istruzione in certe condizioni. QUindi potresti anche provare a cambiare indirizzo del puntatore stesso con uno lontano da quelli usati nel tuo programma e vedere se il problema persiste.

Ciao!

Modificato: da edogol
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...