Jump to content
PLC Forum
Informazione di servizio:
Questa versione del forum si basa su una installazione non completa in quanto a seguito dell'incendio del datacenter di Strasburgo avvenuto il 10 marzo.
Stiamo attendendo di avere accesso agli ultimi backup siti nello stesso datacenter. Appena disponibili provvederemo all’integrazione dei dati.
Tutti i malfunzionamenti che potreste riscontrare (mancanza di file, immagini, messaggi privati, discussioni, post e funzionalità del sito) sono dovuti al ripristino ancora in versione parziale dei database, file e pagine web.
Per chi volesse fare delle segnalazioni può scrivere a segnalazioni@plcforum.it o attraverso la nostra sezione di assistenza disponibile su ticket.plcforum.it

Vi ringraziamo anticipatamente per la pazienza e l'attesa a cui, nostro malgrado, vi stiamo sottoponendo.

Grazie
L'amministrazione di PLC Forum.



Garzo

CP1E con Oriental Motors ARD-K

Recommended Posts

Garzo

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.

 

Cassettiera.jpg

Link to post
Share on other sites

Ctec

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 to post
Share on other sites
Garzo
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 to post
Share on other sites
Ctec

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 to post
Share on other sites
Nicola Carlotto

image.thumb.png.b90827ce247cd277a9de03feda66920f.png

guarda qui .. se ti basta il pulse normale io lo uso cosi.. ciao

Link to post
Share on other sites
Garzo

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

Immagine.jpg

Link to post
Share on other sites
Garzo

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 to post
Share on other sites
gianff

@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

 

WP_20180507_12_01_01_Pro.jpg

Link to post
Share on other sites
Garzo
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 to post
Share on other sites
gianff

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 to post
Share on other sites
Garzo

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 to post
Share on other sites
gianff

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 to post
Share on other sites
Garzo

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 to post
Share on other sites
gianff

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 to post
Share on other sites
Garzo
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

 

Immagine.jpg.164c825a8d928d0df351f86d14309f4b.jpg

Link to post
Share on other sites
gianff

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 to post
Share on other sites
lelos

ciao

ma perché non chiami  l'assistenza Omron che è gratis?

 

Link to post
Share on other sites
Garzo

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 to post
Share on other sites
Nicola Carlotto

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 to post
Share on other sites
Nicola Carlotto

image.thumb.png.d7bbe23776edfb985d0fcde9356b7af6.png

cosi' azzeri il conteggio usando pulse 2 su d32100 ci scrivi il valore di azzeramento

image.thumb.png.39c9f2c152c736cbf246a0367915f91c.png

cosi fai partire il pulse 2

Link to post
Share on other sites
Nicola Carlotto

image.thumb.png.cac3a23a6db537b4fd6f862d23905b4e.png

queste le specifiche delle aree di memoria in gioco

ciao

Link to post
Share on other sites
Garzo

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 to post
Share on other sites
Garzo

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 to post
Share on other sites
Garzo

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)

Immagine.jpg

Immagine1.jpg

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...