Xenatron Inserito: 8 gennaio 2008 Segnala Share Inserito: 8 gennaio 2008 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 Link al commento Condividi su altri siti More sharing options...
sndaniele Inserita: 8 gennaio 2008 Segnala Share Inserita: 8 gennaio 2008 CiaoChe valore max ha n ??Che PLC stai usando ? Link al commento Condividi su altri siti More sharing options...
Xenatron Inserita: 9 gennaio 2008 Autore Segnala Share Inserita: 9 gennaio 2008 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 More sharing options...
orsoblu Inserita: 9 gennaio 2008 Segnala Share Inserita: 9 gennaio 2008 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 CF113CLCMUL D0 #50 D4LD CF113CLCSUM D4 #2000 D6 Link al commento Condividi su altri siti More sharing options...
sndaniele Inserita: 9 gennaio 2008 Segnala Share Inserita: 9 gennaio 2008 (modificato) CiaoMi 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: 9 gennaio 2008 da sndaniele Link al commento Condividi su altri siti More sharing options...
Xenatron Inserita: 10 gennaio 2008 Autore Segnala Share Inserita: 10 gennaio 2008 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 More sharing options...
edogol Inserita: 10 gennaio 2008 Segnala Share Inserita: 10 gennaio 2008 (modificato) 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... 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: 10 gennaio 2008 da edogol Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora