Vai al contenuto
PLC Forum


Inviare due comandi di start MDI consecutivi a un S120


Cesare Nicola

Messaggi consigliati

Ho un problema con dei Sinamics S120 che proprio non capisco, sebbene non sia la prima volta che li uso. Premetto che comando gli S120 scrivendo e leggendo direttamente il telegramma coi blocchi DPWR e DPRD. Mi trovo a dover inviare due comandi consecutivi di start posizionamento in MDI, a quote ovviamente differenti, a distanza di un ciclo PLC. Il secondo comando non viene eseguito, sebbene quota e velocità vengano acquisite; è come se il primo movimento non fosse ancora del tutto concluso quando invio il secondo comando. Ho provato a testare diversi bit prima di inviare il secondo comando, per essere sicuro che l'asse sia fermo e pronto ad accettare il comando: "ZSW_1."Acknowledge travesing block", "POS_ZSW_1."MDI active", "POS_ZSW_2."Traversing command active", "POS_ZSW_2."Setpoint is stationary"; niente da fare. Avete qualche idea?

Link al commento
Condividi su altri siti


Mi rendo conto di aver spiegato molto male, scusate. Il secondo comando di posizionamento che devo inviare, è a distanza di un ciclo PLC dalla conclusione del precedente, che è stato correttamente eseguito. Cioè:
1) Comando di start MDI alla quota X
2) Asse arriva alla quota X
3) Tolgo il comando di start MDI
4) passa un ciclo PLC

5) Nuovo comando MDI alla quota Y: questo comando non viene eseguito, sebbene la quota e la velocità vengono correttamente inviate al telegramma

Spero sia più chiaro.
Grazie

Link al commento
Condividi su altri siti

non utilizzi Sina_pos o i blocchi funzione messi a disposizione da siemens?

non hai qualche warning attivo?

come dai il comando? impulso oppure un fronte di salita (impulso di una scansione)?

Link al commento
Condividi su altri siti

Ciao Cesare Nicola,

un solo ciclo di PLC è troppo poco e il drive non fa a tempo a vedere lo "stacca/attacca" del comando di start.

Io di solito faccio così:

1) Comando di start MDI alla quota X
2) Tolgo il comando di start appena l'asse comincia a muoversi (verifica del bit 15 di POS_ZSW2)
3) Nuovo comando MDI alla quota Y dopo che l'asse è arrivato alla quota X

Ciao.

 

Massimo

Link al commento
Condividi su altri siti

Cesare Nicola
9 ore fa, ken scrisse:

non utilizzi Sina_pos o i blocchi funzione messi a disposizione da siemens?

non hai qualche warning attivo?

come dai il comando? impulso oppure un fronte di salita (impulso di una scansione)?

No, non uso SIna_pos e non ho warning. Il comando di start lo dò mettendo a 1 i bit , contemporaneamente: ZSW_1.Operation_enabled, POS_STW_1."Activate MDI", STW_1.Do_not_reject_trav_task, STW_1."No intermediate stop", STW_1."Setpoint transfer MDI". Così facendo, finchè il mio comando è a 1, 'asse è in movimento, togliendo il comando l'asse si arresta (se non si è già arrestato perchè è arrivato in quota, ovviamente).


 

 

5 ore fa, bleny scrisse:

Ciao Cesare Nicola,

un solo ciclo di PLC è troppo poco e il drive non fa a tempo a vedere lo "stacca/attacca" del comando di start.

Io di solito faccio così:

1) Comando di start MDI alla quota X
2) Tolgo il comando di start appena l'asse comincia a muoversi (verifica del bit 15 di POS_ZSW2)
3) Nuovo comando MDI alla quota Y dopo che l'asse è arrivato alla quota X

Ciao.

 

Massimo

Con che bit dai il comando di start, per far sì che l'asse continui a muoversi pur togliendolo? E come dai lo stop durante il movimento? Coi bit che uso io, sopra descritti, ottengo che se tolgo lo start l'asse si ferma; quindi io lo start lo tolgo solo a movimento concluso (salvo non voglia interrompere volutamente il posizionamento).

Link al commento
Condividi su altri siti

Ciao Cesare, 

prova a mettere un timer prima del secondo start.

Se funziona vuol dire che potrebbe essere utile verificare la parola di stato che ti restituisce qualche bit importante che non hai controllato.
Se non funziona è qualcos'altro

Link al commento
Condividi su altri siti

11 ore fa, Cesare Nicola scrisse:

Con che bit dai il comando di start, per far sì che l'asse continui a muoversi pur togliendolo? E come dai lo stop durante il movimento? Coi bit che uso io, sopra descritti, ottengo che se tolgo lo start l'asse si ferma; quindi io lo start lo tolgo solo a movimento concluso (salvo non voglia interrompere volutamente il posizionamento).

 

Se devi dare uno stop intermedio la questione è leggermente diversa. Innanzitutto ti consiglierei di non settare da 0 a 1 (e viceversa) troppi bit insieme, ma di usare solo quelli che realmente ti servono.

Per fare partire il posizionamento devi alzare il bit 6 di STW1; è un bit che lavora sul fronte, quindi anche se lo rimetti a zero il posizionamento deve continuare.

Se vuoi fermare a metà strada l'asse hai due possibilità e devi lavorare sui bit 4 e 5, sempre di STW1; questi due bit devono stare sempre a 1, se li metti a 0 succede questo:

- bit 4: rifiuto del job di movimento, si ferma tutto e il comando di posizionamento viene "dimenticato", quindi per ripartire devi rimettere il bit a 1 e ridare di nuovo lo start

- bit 5: arresto intermedio, si ferma tutto ma se rimetti il bit a 1 l'asse riparte per raggiungere la sua destinazione.

 

Comunque puoi utilizzare anche il suggerimento di pigroplc di utilizzare un timer: per la mia esperienza il drive vede un cambiamento dello stato del segnale tenendolo "fermo" già per 10 msec.

Ciao.

 

Massimo

Link al commento
Condividi su altri siti

Cesare Nicola

La soluzione del timer l'ho già provata perché è ciò che ho sempre fatto, anche con altri azionamenti non Siemens. Qui non funziona, non so perché, a meno di mettere tempi esageratamente lunghi.
Probabilmente ha ragione bleny perché ho guardato un altro software non fatto da me e la gestione dei bit è più o meno quella che suggerisce: alcuni dei bit che io metto a 1 allo start, vengono tenuti fissi e lo start si dà con un bit solo. In quel software non era però previsto uno stop intermedio.
Al momento ho risolto utilizzando il bit "continuos acceptance" del telegramma: lo metto a 1 insieme allo start (gestito "alla mia maniera") del primo dei movimenti che mi creano problemi e da quel momento in poi è sufficiente dare una quota MDI perché venga eseguita, finché quel bit è a 1. Non ho idea di cosa succeda se serve uno stop intermedio, non ho avuto modo di provare, la macchina è adesso in fase di smontaggio.
 

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...