Garzo Inserito: 4 maggio 2018 Segnala Share Inserito: 4 maggio 2018 Buongiorno! Mi sono appena iscritto al forum ma già altre volte ho preso questo foro come riferimento per risolvere alcuni problemi che mi si sono presentati, ed ho notato che vi sono persone molto capaci. Mi scuso in anticipo se dovevo presentarmi in qualche sezione, ma il tempo stringe davvero. Lavoro in un'azienda di automazioni industriali, ho 19 anni e sono entrato a far parte del mondo dei PLC da 4 mesi circa. Fin'oggi ho programmato macchinari dotati di PLC e HMI da parte di Rockwell, Allen-Bradley, ora mi trovo una situazione diversa con un PLC Omron CP1E-NA con due Oriental Motors ARD-K. Premetto che non mi piace per niente CX-Programmer, anzi mi sto trovando malissimo ... con Allen-Bradley è tutto molto più basilare ed efficiente. Venendo al problema, sto cercando di far muovere i motori, X e Y dotati entrambi di due uscite, una per l'impulso e uno per la direzione, quindi, su 100.00 e 100.01 ho impulso e direzione per X, 100.02 e 100.03 per Y. Ctec scrive in un'altra discussione: " [supponendo che tu abbia collegato l'ingresso a impulsi dell'MX2 alla uscita 100.0 del PLC. Potresti collegare lo start dell'inverter alla 100.2, facendo in modo che quando usi la SPED in CCW l'inverter si ferma (100.2 = 0) e in CW parte (100.2 = 1). In pratica dovrai usare, per far partire l'inverter, la SPED #0000 #0100 Veloc, dove Veloc è la frequenza in Hz (occhio che è una doppia word). Il parametro #0100 è la modalità, impostata a Pulse+Dir e in CW. Per fermarlo, userai poi la INI #0000 #0003 Value, dove value è una Dword.] " Ho seguito le istruzioni, portando ad 1 sia 100.00 che 100.01, utilizzando la porta #0000 (si presume, quindi, 100.00 e 100.01) senza però ottenere nessun risultato. Insomma, le ho provate un po' tutte !!! In allegato lascio lo screenshot del rung, in maniera che il problema sia chiaro. Grazie a tutti in anticipo, la macchina andrebbe consegnata lunedì alle 17.00, ma la vedo dura EDIT: ho anche provato a mettere una UDINT per la frequenza degli impulsi a SPED, e una DINT invece per PULS, al posto del numero di impulsi , impostando però lo stesso valore inserito nell'immagine. Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 4 maggio 2018 Segnala Share Inserita: 4 maggio 2018 Quel mio esempio era per pilotare un inverter in velocità, e non un driver in posizione. Premetto che mi dispiace non ti piaccia il CX, che io considero uno dei migliori, anche se un po' vecchio e senza compilazione puramente simbolica. Il vecchio Rockwell (non li uso più da anni) era tutto fuorché intuitivo, anche se cento colte meglio dello Step7. Ma comunque... Allora ho visto che quegli oriental motor sono stepper. Per andare in posizione, usa pa PLS2, molto più pratica, con una istruzione fai tutto. In questa avrai PLS2 P M S F, dove: P = porta (0 per asse 0 e 1 per asse 1) M = modalità (#0101 se vuoi andare in posizione assoluta, #0100 in posizione relativa avanti, #0110 in posizione relativa indietro) S = primo indirizzo di una tabella dati così composta: S1 valore accelerazione (valori alti, rampa ripida) UINT S2 valore decelerazione (valori alti, rampa ripida) UINT S3 valore velocità (frequenza impulsi) UDINT S4 valore posizione (in impulsi) DINT (UDINT se relativo) F = velocità di partenza (di solito 0, ma coi passo passo che stallano potrebbe essere comodo un valore diverso) UDINT Eseguila impulsivamente (@ davanti) altrimenti viene aggiornata ad ogni scansione. Come la lanci, deve apparirti un treno in uscita. Non usare mai le uscite a treno come bobine o set/reset, altrimenti avrai errori PS: quante volte finite le macchine nei finesettimana o la mattina presto pregando che il container arrivi in ritardo... Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 4 maggio 2018 Autore Segnala Share Inserita: 4 maggio 2018 1 ora fa, Ctec scrisse: [S = primo indirizzo di una tabella dati così composta: S1 valore accelerazione (valori alti, rampa ripida) UINT S2 valore decelerazione (valori alti, rampa ripida) UINT S3 valore velocità (frequenza impulsi) UDINT S4 valore posizione (in impulsi) DINT (UDINT se relativo) F = velocità di partenza (di solito 0, ma coi passo passo che stallano potrebbe essere comodo un valore diverso) UDINT Eseguila impulsivamente (@ davanti) altrimenti viene aggiornata ad ogni scansione. Come la lanci, deve apparirti un treno in uscita. Non usare mai le uscite a treno come bobine o set/reset, altrimenti avrai errori] Ctec, speravo proprio in una tua risposta, perciò grazie !! Alcune cose non mi sono molto chiare : S = come faccio ad inserire 4 valori, in una Word sola ? (S1,S2,S3,S4) F = a velocità 0, il motore non dovrebbe non muoversi (?) poi, il valore inserito in F, sarebbe corrispondente in Hz (quindi rappresenta la sua frequenza) ? Eseguirla impulsivamente, ma come ? Immettendo @PLS2 invece che PLS2? Inoltre, io su CompactLogix di Allen-Bradley, solitamente, ho i miei 7 PIN di uscita, (Start, Stop, Reset, Homing, PRG1, PRG2, PRG3) , perciò, come faccio a dargli lo start se non portando ad 1 la bobina per l'impulso (100.00) ? Sto facendo confusione... Mi scuso in anticipo per l'ignoranza in materia, ma sono alle prime armi ... mi manca molta della parte teorica, e appena mi capita qualcosa di un po' diverso da ciò che sono abituato a fare trovo degli intoppi. Grazie, Federico. Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 4 maggio 2018 Autore Segnala Share Inserita: 4 maggio 2018 EDIT: Cosa rappresenta "hex" (?) Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 4 maggio 2018 Segnala Share Inserita: 4 maggio 2018 Dunque. S è l'indirizzo di partenza di una tabella di 4 valori (S1-S4) contenuti in 6 word. Se per esempio metterai al posto di S l'indirizzo D100, avrai la tabella seguente da compilare prima dell'esecuzione della PLS2 D100 S1 UINT (word) D101 S2 UINT (word) D102 S3 DINT (doppia word) D104 S4 UINT (doppia word) quindi avrai occupate tutte le word da D100 a D105 comprese. Purtroppo col CP1 non si possono creare le strutture. Se metti la velocità a 0, ovviamente avrai una frequenza 0Hz in uscita (nessun impulso) e pertanto nessun moto. Ma occhio perché a tale velocità non raggiungerai mai la quota impostata, per cui evitare sempre la velocità 0. E si, la velocità è espressa in impulsi al secondo quindi in Hz. Si, per rendere impulsiva una istruzione (che lo consente, quasi tutte ma non tutte) si mette una @ davanti. In pratica viene lanciata appena la condizione è vera, e l'istruzione esegue subito quanto specificato nella tabella S (più la velocità iniziale F). Se clicchi doppio sull'istruzione e nella finestra Modifica Istruzione premi Guida Istruzione, ti si apre l'. (in inglese) dell'istruzione, dove trovi una descrizione anche grafica e degli esempi. La gestione dello start e stop non si esegue con uscite multiple, ma solo con le Y dedicate a ciascun asse, e sono 2, CW e CCW o Pulse/Dir a seconda della modalità impostata nella PLS2. Appena lanci la PLS2, gli impulsi escono e il moto viene eseguito fino al suo termine, o finché con una INI decidi di arrestarlo. Se devi fare anche l'homing, allora devi prima di tutto andare in Impostazioni-> Uscita a Impulsi 0 (o 1) e dare dei parametri. Come vedi, in primis ci sono da specificare i limiti di corsa. Se non li usi, mettili su NO (Normally Open, non che non si usano...). Se per esempio non li hai usati e hai lasciato l'impostazione NC, lui vede i limiti massimo e minimo aperti, quindi non eseguirà mai il moto voluto. Se usi l'homing, devi attivare la parte Usa Operazione Definizione Origine e poi nel manuale vedi dove è assegnato l'ingresso di riferimento per ciascun asse (ok, te lo dico, 0.06 per asse 0, 0.07 per asse 1...). Vedi capitolo 12 del manuale W480. C'è la descrizione totale del funzionamento delle uscite a impulsi. Per lanciare l'homing, devi eseguire la ORG (@ORG impulsiva sempre meglio) che può anche eseguire un ritorno all'origine (non penso di averlo mai usato...) Per i dettagli, la trattazione è lunga. Se vedi quel capitolo, vedrai che ci sono tutta una serie di bit e word interne (area A) che ti fa vedere lo stato, la posizione, se l'origine è fatta, i limiti di corsa, ecc., tutte cose importanti per gestire al meglio un asse. Io con i CP1, nei limiti delle loro caratteristiche, ho fatto posizionamenti discretamente incasinati e performanti, usando servomotori, Purtroppo i passo passo non chiudono l'anello di posizione, quindi Dio solo sa se è davvero dove te credi che sia... PS: Hex vuol dire numero in notazione esadecimale. In Omron CX si ottiene anteponendo il # davanti al numero. Per i decimali senza segno, si antepone un &, il + o il - per numeri interi con segno e virgola mobile Link al commento Condividi su altri siti More sharing options...
Nicola Carlotto Inserita: 6 maggio 2018 Segnala Share Inserita: 6 maggio 2018 guarda qui .. se ti basta il pulse normale io lo uso cosi.. ciao Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 7 maggio 2018 Autore Segnala Share Inserita: 7 maggio 2018 Ragazzi, non ci sto capendo nulla ... oggi è lunedi ed i motori ancora non si sono mossi di un millimetro. @Ctec mi sono creato la mia tabella , con le seguenti memorie in D100, D101, D102-D103, D104-D105 mettendo i valori che la guida di CX presenta come esempi. cosa sono questi valori stranissimi espressi in numeri e lettere ?! Non ho mai visto nulla di simile ... nell'istruzione @PLS2, nella terza operazione, come faccio a selezionare la tabella che mi identifica S1,S2,S3,S4 in un solo valore (quindi, si presume, S) Le sto provando tutte, sono ore che provo e riprovo ma nulla !! Sto impazzendo , e la macchina doveva già essere pronta. Con Allen-Bradley l'avrei finita in un'ora... Nella terza operazione dell'istruzione mi fa inserire solamente D100, ho provato ad affiancargli anche le altre memorie ma nulla ... è possibile avere uno screenshot di un esempio ? Su come lo usate voi ? Poi, come faccio ad impostare il valore ad una doppia word ?! Mi sto trovando davvero male e sono incaz.. nero ! Grazie comunque per il supporto e le spiegazioni davvero ben dettagliate, il problema principalmente sono io xD Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 7 maggio 2018 Autore Segnala Share Inserita: 7 maggio 2018 EDIT: Sono disposto a pagare un'assistenza in TeamViewer, non ho altre opzioni ... secondo me la situazione dev'essere approfondita per capire la problematica. Link al commento Condividi su altri siti More sharing options...
gianff Inserita: 7 maggio 2018 Segnala Share Inserita: 7 maggio 2018 @pls2 #1.....PORTA 1.... 2 out ( dipende dl plc ) #0 ......controllo tipo di ucita D100...dati di funzinamento: D100...accelerazione D101...decelerazione D102+D103...frequenza inpulsi ( D102 e' il valore piu' basso ) D104+D105...numero di inpulsi da eseguire ( D104 e' il valore piu' basso ) D110+D111...frequenza di avvio ..................... @PLS2 ( COSI A ME PARTE SUBITO ) sto usando CP1H si vedono gli inpulsi in modo lento #1 #0 D100...0001---D101..0001----D102...0010---D103...0000---D104....0020----D105....0000 D110...0000----D111...000 ci sono anche dei limiti...ESEMPIO se la frequenza e troppo alta e l'accelerazzione troppo bassa..NON PARTE scusa SE DICI CHE OMRON E' DIFFICILE !!!!!! abb ti ha veramente rovinato...senza offesa in alto alla pagina di cx-programmer ce la guida funzioni cp1e pulse istruction e tutto spiegato passo passo Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 7 maggio 2018 Autore Segnala Share Inserita: 7 maggio 2018 1 minuto fa, gianff scrisse: @pls2 #1.....PORTA 1.... 2 out ( dipende dl plc ) #0 ......controllo tipo di ucita D100...dati di funzinamento: D100...accelerazione D101...decelerazione D102+D103...frequenza inpulsi ( D102 e' il valore piu' basso ) D104+D105...numero di inpulsi da eseguire ( D104 e' il valore piu' basso ) D110+D111...frequenza di avvio ..................... @PLS2 ( COSI A ME PARTE SUBITO ) sto usando CP1H si vedono gli inpulsi in modo lento #1 #0 D100...0001---D101..0001----D102...0010---D103...0000---D104....0020----D105....0000 D110...0000----D111...000 ci sono anche dei limiti...ESEMPIO se la frequenza e troppo alta e l'accelerazzione troppo bassa..NON PARTE scusa SE DICI CHE OMRON E' DIFFICILE !!!!!! abb ti ha veramente rovinato...senza offesa in alto alla pagina di cx-programmer ce la guida funzioni cp1e pulse istruction e tutto spiegato passo passo Ti ringrazio davvero per la risposta! Assolutamente, non ho voluto sminuire Omron ... semplicemente mi sono trovato ad iniziare con ABB che è (a mio parere) molto più semplice ed intuitivo... ed il lavoro suo lo fa BENISSIMO .. forse, se avessi iniziato direttamente con CX che probabilmente ha una sintassi leggermente più dettagliata e complessa, mi sarei trovato meglio in futuro . Ti assicuro che per me che sono abituato a Siemens ed ABB, Omron (e non parlo del sysmac) risulta CENTO VOLTE più "rognoso", anche se ha Guide istruzioni e manuali davvero ben fatti, e per chi si lamenta dell'inglese... secondo me è la cosa primaria da sapere prima di interfacciarsi a questo pianeta. Tra poco proverò e vi faro sapere. P.S. davvero le memorie si devono scrivere così nell'istruzione?! xD D100...0001---D101..0001----D102...0010---D103...0000---D104....0020----D105....0000 D110...0000----D111...000 Link al commento Condividi su altri siti More sharing options...
gianff Inserita: 7 maggio 2018 Segnala Share Inserita: 7 maggio 2018 no la D100 Va scritta da sola nella funzione ( idem D110 ) ( Qeste sono di riferimento iniziali ) poi la stessa funzione usa le altre di conseguenza che andrai a scrivere nell'area del plc.... manualmente ...da programma..o da tastierino i dati che ci vai a scrivere posso essere decimali oppure esadecimali il mio esempio e in decimale Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 7 maggio 2018 Autore Segnala Share Inserita: 7 maggio 2018 In risposta a @Ctec : Sto girovagando per il manuale, ed ho trovato la seguente voce: "The PLS2 instruction can be used to set a starting frequency or separate acceleration and deceleration rates, but there are limitations on the operating range because the end point must be specified in the PLS2 instruction." Perciò, si presuppone che finchè non definisca gli input di extra-corsa (almeno noi li chiamiamo così) io sia impossibilitato all'uso dell'istruzione @PLS2 , ed ugualmente, non posso dare al motore un moto assoluto ma solamente relativo. Adesso mi sono molto più chiare tantissime cose, inoltre sto capendo che la soluzione fai-da-te alla ricerca di informazioni sparse per i manuali a volte è la miglior cosa. Non si può andar a sbattere da altri per ogni singolo problema che si presenta, perché da come sto capendo, in questo mestiere ne escono molti e di continuo. Venendo al dunque, io su MicroLogix di ABB mi trovo il mio comando PTOX.ControlStop (.CS) in cui, settandolo come bobina, posso inserire nelle condizioni del rung tutti gli ingressi/bit in sequenza OR che, quando sono veri, mi fermano di colpo il motore (come sensori extra-corsa o barriere di sicurezza) ok, qui la situazione è diversa, vado in Impostazioni --> Uscita di a impulsi 0 (o 1) --> Segnala ingresso limite: NC (Normally closed ?) e fino a qua ci siamo ... ma dove definisco quali siano i sensori? Mi prende in automatico gli ingressi 0.6 - 0.7 necessari anche nell'homing? Ringrazio a tutti in anticipo per la pazienza e la collaborazione! Link al commento Condividi su altri siti More sharing options...
gianff Inserita: 7 maggio 2018 Segnala Share Inserita: 7 maggio 2018 nelle inpostazioni plc solitamente si usa il finecorsa di ricerca origine se ai fatto modifiche nelle impostazioni plc ..uscita inpulsi 0/1 forse..? ai selezzioneto ricerca origine allora vengono ablitati i finecorsa ma normalmente sono disabilitati e le uscite funzionano subito Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 7 maggio 2018 Autore Segnala Share Inserita: 7 maggio 2018 Forse ho trovato il problema !! Sul manuale mi dice che devo applicare le modifiche anche nelle aree di memoria: "The following Auxiliary Area words contain the pulse output PVs Pulse output 0: A277 (leftmost 4 digits) and A276 (rightmost 4 digits) Pulse output 1: A279 (leftmost 4 digits) and A278 (rightmost 4 digits)" Cosa rappresentano ? Credo che dopo questo io abbia risolto, anche perchè sto studiano le istruzioni e le ho immesse in tutti i modi possibili inimmaginabili .. per cui, il problema o è hardware, oppure c'è un punto mancante ... Comunque ho chiamato un ingegnere che programma da anni con Omron, e mercoledì dovrebbe essere qui da me ... ma comunque vorrei iniziare a metter su qualcosina. Tra l'altro, sto cambiando parere riguardo CX.. ha i suoi pro e contro, ma alla fine basta saperlo usare. Supporto Omron è GRATUITO, ed ha manuali con esempi ben descritti per ogni singola cosa. Cordialmente, Federico. Link al commento Condividi su altri siti More sharing options...
gianff Inserita: 7 maggio 2018 Segnala Share Inserita: 7 maggio 2018 certo che devi scrivere i numeri nelle D100...ecc altrimenti e sepre tutto a zero lo puoi fare anche manualmente basta che sei online Con la cpu e anche con l'area DM la cpu deve essere in MONITOR oppure PROGRAM ( NON IN RUN ) Per scrivere nelle DM menu a tendina sx alla voce memoria ..apri e CLICCA D clicca la casella con gli ( occhiali ) e vai oline con l'area dati reale attuale della cpu poi vai alla 100 e comincia a inserire i numeri al posto giusto SE impari a usare CX-PROGRAMMER poi odierai ABB E SIEMENS Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 7 maggio 2018 Autore Segnala Share Inserita: 7 maggio 2018 23 minuti fa, gianff scrisse: Per scrivere nelle DM menu a tendina sx alla voce memoria ..apri e CLICCA D clicca la casella con gli ( occhiali ) e vai oline con l'area dati reale attuale della cpu poi vai alla 100 e comincia a inserire i numeri al posto giusto Ma questo l'avevo già fatto ... infatti ogni cosa quadra, credo proprio che il problema sia altrove... (anche se trovo altre aree di memoria compilate che io non sono andato assolutamente a modificare) P.S. ho usato le memorie da D100 A D105 e per la frequenza impulsi D110 e D111 Link al commento Condividi su altri siti More sharing options...
gianff Inserita: 7 maggio 2018 Segnala Share Inserita: 7 maggio 2018 le DM100....111 debbono essere usate solo per la pls2 dove non vanno scritti numeri ci deve essere 0000 io vedo troppi numeri e troppo grossi cosi non puo' andare Link al commento Condividi su altri siti More sharing options...
lelos Inserita: 7 maggio 2018 Segnala Share Inserita: 7 maggio 2018 ciao ma perché non chiami l'assistenza Omron che è gratis? Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 7 maggio 2018 Autore Segnala Share Inserita: 7 maggio 2018 Ciao lelos, Ho già chiamato due volte ... ma non danno assistenza su un punto di vista software. Per esempio mi ha detto quali erano le uscite a treno di impulsi del mio PLC e mi ha indicato dove collegare impulso e direzione. Credimi le sto provando tutte, questa era la mia ultima spiaggia 😂 anche se ho letto sulla rete che Omron fa assistenza remota TeamViewer, il che è Ottimo ... mi piace comunque confrontarmi con persone che fanno il mio stesso lavoro da molti anni, sono ancora in fase upgrade .. ho 19 anni ed un giorno vi supererò tutti😀😀 (con ironia) Cordialmente, Federico. Link al commento Condividi su altri siti More sharing options...
Nicola Carlotto Inserita: 7 maggio 2018 Segnala Share Inserita: 7 maggio 2018 sulle dm che vedi scritto dei numeri grandi scrivici zero , poi scrivi il valore che ritieni giusto, praticamente da quel che si capisce hai le memorie sporche , probabilmente il plc e' rimasto senza batteria a lungo in magazzino. ciao prova come l'esempio che ti ho postato , io programmo omron dal 1994 , ciao Link al commento Condividi su altri siti More sharing options...
Nicola Carlotto Inserita: 7 maggio 2018 Segnala Share Inserita: 7 maggio 2018 cosi' azzeri il conteggio usando pulse 2 su d32100 ci scrivi il valore di azzeramento cosi fai partire il pulse 2 Link al commento Condividi su altri siti More sharing options...
Nicola Carlotto Inserita: 7 maggio 2018 Segnala Share Inserita: 7 maggio 2018 queste le specifiche delle aree di memoria in gioco ciao Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 8 maggio 2018 Autore Segnala Share Inserita: 8 maggio 2018 Infatti, quando faccio partire il monitoraggio In linea delle memorie, me le da tutte compilate con numeri a caso ... spero non sia un problema del mio plc Comunque, valori come D32100 io non posso impostarli ... il mio plc arriva fino a D9000 Circa. Nel caso, è scontato che io possa usare altre memorie.. Idem con le memorie in "A" !!! Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 8 maggio 2018 Autore Segnala Share Inserita: 8 maggio 2018 Comunque provato e riprovato in tutti i modi ... forse il problema non è dove credo che sia .. grazie comunque a tutti per la collaborazione, e buon lavoro Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 8 maggio 2018 Autore Segnala Share Inserita: 8 maggio 2018 Come immaginavo, il problema era altrove... è stato un errore di cablaggio, su 100.00 e 100.02 invece che avere il morsetto dell'Impulso avevo il reset... per cui, potevo provare all'infinito ma i motori non si sarebbero mai mossi. Comunque, per comodità ho usato questo altro metodo (sempre con il @PLS2) in modo che non devo andare a ricercarmi le memorie manualmente. Infine, ho sbagliato a sottovalutare questa piattaforma a causa della mia ignoranza. Ne terrò conto per il futuro. Buona giornata a tutti (#CLOSED) 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