Vai al contenuto

Gestione motore Passo Passo con SlimLine

Home Forum Discussioni su problematiche generali Gestione motore Passo Passo con SlimLine

Stai visualizzando 5 post - dal 1 a 5 (di 5 totali)
  • Autore
    Post
  • #59856
    milesi.1907
    Partecipante

    Stò pilotando un motore passo passo con CPU SlimLine MPS050. Utilizzo l’uscita DO0 in PWM per comandare il motore; la stessa uscita è collegata sull’ingresso veloce DI0, come controllo feedback della poszione.

    Eseguo il conteggio degli impulsi con la funzione SysGetCounter. Utilizzo l’ingresso di Reverse per decrementare il conteggio quando si inverte il senso di rotazione. Tuttavia, “perdo” impulsi durante il funzionamento, infatti mi ritrovo con posizione reale e torica che non coincidono.

    Avete idee o suggerimenti?

    #59859
    Sergio Bertana
    Amministratore del forum

    Qual’è la frequenza massima che comandi sull’uscita PWM?

    Quando comandi l’ingresso di Reverse il motore è fermo ?

    Hai provato a comandare solo in una direzione (Ammesso che tu possa) e verificato se in questo caso la posizione acquisita corrisponde alla reale ?

    #59862
    milesi.1907
    Partecipante

    Comando il motore a frequenze di 50-100 Hz PWM. Quando il motore gira nella stessa direzione, non sembra perdere impulsi. Mentre per il comando di reverse, può capitare che non venga dato il comando di stop al motore, ma immediatamente il cambio di rotazione.

    #59865
    Sergio Bertana
    Amministratore del forum

    La frequenza è bassissima, il contatore sull’ingresso digitale è hardware quindi non perde conteggi indipendentemente dalla esecuzione del FB SysGetCounter. Il FB esegue la lettura dal contatore hardware degli impulsi ed esegue la differenza con il valore acquisito precedentemente:

    Pulses:=CounterValue-CounterMemo;
    CounterMemo:=CounterValue;

    Ad ogni esecuzione calcola il numero di impulsi acquisiti, questo numero viene sommato (Sottratto se Reverse) al valore di impulsi ritornato in Value. Ora è evidente che se cambi Reverse in movimento non potrai mai essere sincrono con il reale comportamento del motore certamente perderai qualche impulso che magari viene ancora sommato quando il motore invece ruota al contrario o viceversa.

    #59867
    milesi.1907
    Partecipante

    Cercherò di arginare il problema con un sensore di rifasamento che azzera il conteggio ogni volta che l’asse passa per quel punto.

Stai visualizzando 5 post - dal 1 a 5 (di 5 totali)
  • Devi essere connesso per rispondere a questo topic.