at404 Inserito: 1 giugno 2007 Segnala Share Inserito: 1 giugno 2007 Salve a tutti, sono nuovo ed ho un problema.....Ho un CPM2A e ho colegato un encoder incrementale utilizzato con gli ingressi a contatori veloci.Sono riuscito a vedere i valori nelle zone 248 e 249 IR ed effetture l'azzeramento con il flag 252.00Le aree di memoria contengono un massimo FFFF e quindi al superare di questo numero mi scrive i successivi nella Word successiva.Se io volessi ridurre la grandezza del numero ad una sola Word per poterlo meglio gestire e quindi ridurre la precisione di lettura che istruzioni dovrei usare ?DIV (dividere) o SHIFT (spostare i bit delle WORD) è corretto leggere direttamente la 248 e 249, visto che vengono azzerati ad ogni spegnimento del plc e quindi sono obbligato ad un azzeramento ad ogni spegnimento?Grazie a tutti.... Link al commento Condividi su altri siti More sharing options...
edogol Inserita: 1 giugno 2007 Segnala Share Inserita: 1 giugno 2007 Ciao. Il valore è detto in gergo in 'doppia lunghezza'. Per gestirlo usa semplicemente tutte le istruzioni in doppia lunghezza tipo ADDL, CMPL, MULL ecc non è necessario ridurlo ad una word! Anche perchè perderesti la possibilità di gestirlo con istruzioni dedicate tipo la CTBL.... Per settare un valore diverso da zero all'accensione del PLC devi utilizzare l'istruzione INI con i dati 0,2, e il primo di due DM nei quali è presente il valore che vuoi impostare (magari quello copiato prima dello spegnimento dai canali 248 e 249 con una MOVL. Spero di essere stato d'aiuto. Ciao! Link al commento Condividi su altri siti More sharing options...
at404 Inserita: 1 giugno 2007 Autore Segnala Share Inserita: 1 giugno 2007 Ti ringrazio per la risposta, Ma il CPM2A non supporta il set esteso per il confronto e la copia di 2 word alla volta,Per semplicità di collegamento con la supervisione e per le molte operazioni che devo andare a fare sopra a questo encoder preferire lavorare con un a sola Word.Con 2 Word il programma per la fermata in prossimità del punto di arrivo (+-10%) diverrebbe più complicato e avendo 10 posizioni diverse vorrei evitare di fare uno sproloquio di codiceGrazie ancora e ciao Link al commento Condividi su altri siti More sharing options...
BitLogic Inserita: 1 giugno 2007 Segnala Share Inserita: 1 giugno 2007 Il CPM2 esegue il CMPL, cioè compara due canali, non esegue il MOVL, ma puoi utilzzare XFER. Link al commento Condividi su altri siti More sharing options...
at404 Inserita: 1 giugno 2007 Autore Segnala Share Inserita: 1 giugno 2007 ok, con la Xfer si può fare, ma se da remoto invii una aggiornamento ad una variabile, e ne aggiorno 1 alla volta (perchè l'aggiornamento è così .... ) c'è il rischio (la certezza) che il programma veda una delle 2 variabili cambiata, la macchina si muove e mentre si muove gli arriva il secondo valore di aggiornamento che obbliga la cmp a rivalutare la direzione di movimento. Si potrebbe mettere un flag che ablita l'esecuzione del comando.....Ma resto dell'idea TUTTO QUELLO CHE NON C'E' NON SI ROMPEComunque con le istruzioni che mi avete dato sono riuscito a completare il programma vorrei qualche esplicazione sul funzionamento dell CTBL PRV BCMP perchè le vedo comaprire in molti programmi per la gestione degli encoder e forse potrebbero tornarmi utili il solo problema che la guida in linea non lascia trasparire granchè sul loro funzionamento e scopo finale.....ciao a tutti Link al commento Condividi su altri siti More sharing options...
biondo Inserita: 2 giugno 2007 Segnala Share Inserita: 2 giugno 2007 Ciao se vai sul sito Omron ti puoi scaricare il manuale di programmazione completo in italiano della serie CPM1 e 2.Nelle varie sezioni vengono trattati INterrupt,ingressia conteggio veloce,uscite a treno di impulsi ecc.Io l'ho trovato molto utile..... Link al commento Condividi su altri siti More sharing options...
BitLogic Inserita: 2 giugno 2007 Segnala Share Inserita: 2 giugno 2007 Il manuale di programmazione l'ho mandato al forum, penso che molto presto lo puoi scaricare anche nella sezione "Archivio files - OMRON PLC"Saluti Link al commento Condividi su altri siti More sharing options...
at404 Inserita: 3 giugno 2007 Autore Segnala Share Inserita: 3 giugno 2007 Ho letto il manuale, ma non essendo un addetto ai lavori ho avuto qualche problemino....SE dovessi fare un confronto con l'encoder per potermi fermare dovrei usare una percentuale di errore (non penso che il motore riesca fermarsi e così anche la meccanica in tempo zero) che istruzione posso usareapparte quella di sommare il valore di arrotondamento e verificare se è MAggiore di e quindi fermarsi .... ???Non c'è qualcosa di meglio per gestire la cosa???Grazie a tutti e ciao Link al commento Condividi su altri siti More sharing options...
cisio Inserita: 3 giugno 2007 Segnala Share Inserita: 3 giugno 2007 Puoi usare l'istruzione ZCP (o ZCPL se il numero è a doppio canale)gli devi fornire come operandi un limite superiore e uno inferioree lei ti risponde con i flag di minore, maggiore o ugualeciao Link al commento Condividi su altri siti More sharing options...
BitLogic Inserita: 4 giugno 2007 Segnala Share Inserita: 4 giugno 2007 Se per fermarti devi fare una rampa di decelerazione con il CPM2 non puoi far altro che costriurti qualcosa che in base all'avvicinamento del punto di stop cominci a decelerare; altrimenti dovresti passare al CJ o CP1H e poi potremmo rivedere il tutto con istrizioni o FB molto più potenti di quelle del CPM2.Saluti 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