Jump to content
PLC Forum


Garzo

Sottrazione con risultato negativo

Recommended Posts

Garzo

Buongiorno a tutti,

ho ripreso il mio progetto della cassettiera automatica dopo un bel po' di tempo (soprattutto dopo aver studiato nella giusta maniera)... per farla breve, mi sono "creato" il mio moto assoluto tramite il relativo, con varie istruzioni.

Il macchinario è costituito da una cassettiera con 35 celle, a cui sul ciclo dell'automatico, ho impostato le proprie quote per ognuna, per X e per Y. E' comandata con degli oriental motors di tipo Stepper.

Adesso, il problema è che io faccio fare la differenza della posizione attuale in cui si trovano i motori con la prossima a cui devono arrivare

 

ESEMPIO:

La prima cella ha per il motore X una quota di 10.000 Hz. alla seconda cella imposto una quota di 5.000 Hz, quindi ci si aspetta che il movimento sia di 5.000 impulsi indietro, per cui: 5.000 - 10.000 = -5.000 che sposto nella DINT che mi indica il Target_Pulses nel @PLS2.

Venendo al punto: 

Quando la sottrazione ha un risultato sotto zero, la DINT della destinazione del risultato mi va al valore massimo (ergo 4 miliardi e passa) ... ma io non sto usando una UDINT che va da 0 a 4 miliardi bensì una DINT, che sempre secondo teoria, dovrebbe partire da -2 miliardi e qualcosa fino a 2 miliardi !!! 

 

Uso l'istruzione @-L visto che devo operare con delle doppie word.

Uso un CP1E-NA.

 

Ho implementato un metodo che sarà funzionante al 100% (simile a quello che uso per MicroLogix) e risolto questo posso concludere la macchina.

 

Soluzioni? (In allegato lo screenshot)

 

Immagine.png

Link to post
Share on other sites

leleviola

La posizione assoluta memorizzata nel PLC dovrebbe essere a 32bit e quindi un numero sopra 4 miliardi ma non può essere negativo, perciò se vai sotto la posizione zero sei a 4miliardi e passa, non vai a una posizione negativa, considera la posizione assoluta sempre un valore senza segno. Inoltre invece di fare un posizionamento relativo perchè non fai fare posizionamenti assoluti visto che la posizione delle varie stazioni le conosci? Altra cosa mi immagino che l'Homing sia nella posizione minima che puoi assumere, giusto?

Meglio se fai gestire tutto al PLC con posizionamenti assoluti, ci pensa il PLC a effettuare il posizionamento relativo alla posizione attuale con la rampa necessaria o che può eseguire

Link to post
Share on other sites
Ctec

E' solo un "problema" di visualizzazione, devi avere impostato la visualizzazione dei numeri come UINT (come si evince dalla & davanti al numero).

In questa mia risposta a un problema simile, trovi come poter impostare, o meglio non impostare, una visualizzazione di default

Link to post
Share on other sites
Garzo
1 ora fa, leleviola scrisse:

La posizione assoluta memorizzata nel PLC dovrebbe essere a 32bit e quindi un numero sopra 4 miliardi ma non può essere negativo, perciò se vai sotto la posizione zero sei a 4miliardi e passa, non vai a una posizione negativa, considera la posizione assoluta sempre un valore senza segno. Inoltre invece di fare un posizionamento relativo perchè non fai fare posizionamenti assoluti visto che la posizione delle varie stazioni le conosci? Altra cosa mi immagino che l'Homing sia nella posizione minima che puoi assumere, giusto?

Meglio se fai gestire tutto al PLC con posizionamenti assoluti, ci pensa il PLC a effettuare il posizionamento relativo alla posizione attuale con la rampa necessaria o che può eseguire

 

Si lo so, basterebbe che nella seconda istruzione del PLS2 impostassi #0101 invece che #0100. Il problema è che non mi funziona ! E non ho tempo per mettermi a capire perchè non effettua il moto, pertanto me lo sono creato io tramite varie combinazioni di istruzioni.

 

1 ora fa, Ctec scrisse:

E' solo un "problema" di visualizzazione, devi avere impostato la visualizzazione dei numeri come UINT (come si evince dalla & davanti al numero).

In questa mia risposta a un problema simile, trovi come poter impostare, o meglio non impostare, una visualizzazione di default

 

Non avevo notato, la discussione è anche molto recente! :) 

 

Grazie ragazzi, se ho altri problemi vi faccio sapere

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