DAS  3.1.6 - 18/09/2017
AMS Comandi (IT)

1. LETTURA REVISIONE PROGRAMMA
Codice decimale: 37
Carattere ASCII equivalente: %
Parametri: Nessuno
Ritorna un numero che indica la revisione del programma di gestione di AMS moltiplicato x 10.

2. IMPOSTA LA CORRENTE DI FASE DEI MOTORI
Codice decimale: 38
Carattere ASCII: &
Parametri: PAR1, PAR2
Formato Parametri:
PAR1 - Byte, 2 Cifre esadecimali.
PAR2 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-4C
Default: 19H (0.5A)
Imposta la corrente per fase dei motori, i parametri PAR1 e PAR2 vanno a settare il valore di questa per il motore A e B. Valori validi di PAR vanno da 0 a 4CH. Il peso del bit e' 0.02A.

Esempio in C:
int d, er;
int Pow[2];
Pow[0] = Pow[1] = 40; // 800 mA per motore
// Trasmette il power
sprintf(buftx, "&%02X%02X", Pow[0], Pow[1]);
TxStr(buftx, 5);
d = ACKLEN;
er = RxStr(buf, &d);
if(er) Message("Error on POWER!");

3. IMPOSTA IL PASSO ANGOLARE DEI MOTORI
Codice decimale: 39
Carattere ASCII: '
Parametri: PAR1, PAR2
Formato Parametri:
PAR1 - Byte, 2 Cifre esadecimali.
PAR2 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-0D
Default: 2 (1000 s/r)
Imposta il passo dei motori, i parametri PAR1 e PAR2 vanno a settare il valore del passo, valori validi vanno da 0 a DH per i seguenti valori frazionari del passo nominale:
Esempio in C:

int d, er;
int Pow[2];
Pow[0] = Pow[1] = 40; // 800 mA per motore
// Trasmette il power
sprintf(buftx, "&%02X%02X", Pow[0], Pow[1]);
TxStr(buftx, 5);
d = ACKLEN;
er = RxStr(buf, &d);
if(er) Message("Error on POWER!");

4. IMPOSTA RAMPA DI ACCELERAZIONE E DECELERAZIONE
Codice decimale: 40
Carattere ASCII: (
Parametri: PAR1, PAR2
Formato Parametri:
PAR1 - Byte, 2 Cifre esadecimali.
PAR2 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-FF
Default: 20

Con questo comando si imposta la lunghezza in passi della rampa di accelerazione e decelarazione dei motori, effettuata durante un posizionamento. Valori validi di PAR vanno da 1 a 255.

int d, er;
int Slope[2];
// Sviluppa la rampa di accelerazione/decelerazione in otto passi
Slope[0] = Slope[1] = 8;
// Trasmette lo slope
sprintf(buftx, "(%02X%02X", Slope[0], Slope[1]);
TxStr(buftx, 5);
d = ACKLEN;
er = RxStr(buf, &d);
if(er) Message("Error on SLOPE!");

5. NUMERO IDENTITA' AMS
Codice decimale: 41
Carattere ASCII:)
Parametri: PAR
Formato Parametri:
PAR - Byte, 2 Cifre esadecimali.
Range Parametri: 00-FF
Default: 0
Imposta il nuovo numero di identita' (0-255) dell'AMS indirizzato.

int d, er, a;
scanf("%d", &a);
if(a >= 0 && a <= 255)
{
sprintf(buftx,")%02X", a);
TxStr(buftx, 3);
d = ACKLEN;
er = RxStr(buf, &d);
if(er) Message("New Address Not Done");
Addr = a;
}
<b> 6.  POLARITA' FINE CORSA </b>\n

Codice decimale: 42\n
Carattere ASCII:*\n
Parametri: PAR1, PAR2, PAR3, PAR4\n
Formato Parametri:\n
    PAR1 - Byte, 2 Cifre esadecimali.\n
    PAR2 - Byte, 2 Cifre esadecimali.\n
    PAR3 - Byte, 2 Cifre esadecimali.\n
    PAR4 - Byte, 2 Cifre esadecimali.\n
Range Parametri: 00-01\n
Default: 0\n

Imposta la polarita', quando attivi, dei fine corsa collegati. I parametri PAR1 e PAR2 riguardano il motore A ed indicano la polarita' (0 - 1) della posizione Home e Work, analogamente i successivi parametri sono per il motore B.


int Pol[4], d, er;
// Imposta l'attivita' di tutti i fine corsa a 1
Pol[0] = Pol[1] = Pol[2] = Pol[3] = 1;
sprintf(buftx, "*%02X%02X%02X%02X", Pol[0], Pol[1], Pol[2], Pol[3]);
TxStr(buftx, 9);
d = ACKLEN;
er = RxStr(buf, &d);
if(er) Message("Error: Polarity command");

7. POSIZIONE DI HOME

Codice decimale: 43\n
Carattere ASCII:+\n
Parametri: PAR1, PAR2\n
Formato Parametri:\n
    PAR1 - Byte, 2 Cifre esadecimali.\n
    PAR2 - Byte, 2 Cifre esadecimali.\n
Range Parametri: 00-01\n

Questo comando fa posizionare il motore sulla posizione di Home, il motore gira in senso antiorario finche non trova attivo questo ingresso. I parametri PAR1, PAR2 selezionano quale motore e' coinvolto (1 = ON). Questo comando per realizzarsi accende automaticamente il motore coinvolto, imposta un passo di 2000 s/r ed una frequenza di posizionamento di 1KHz. Il campionamento del fine corsa e' effettuato mille volte al secondo. Se si desidera utilizzare una diversa frequenza o passo occorre utilizzare il comando successivo.


int d, er;
// Cerca la posizione di Home su entrambi gli assi
sprintf(buftx, "+%2X%2X", 1, 1);
TxStr(buftx, 5);
d = ACKLEN;
er = RxStr(buf, &d);
if(er) Message("Error on HOME!", er);

8. POSIZIONE DI HOME CON DEFAULT

Codice decimale: 60\n
Carattere ASCII:<\n
Parametri: PAR1, PAR2\n
Formato Parametri:\n
    PAR1 - Byte, 2 Cifre esadecimali.\n
    PAR2 - Byte, 2 Cifre esadecimali.\n
Range Parametri: 00-01\n


<em>Questo comando fa posizionare il motore sulla posizione di Home, il motore gira in senso antiorario finche non trova attivo questo ingresso. I parametri PAR1, PAR2 selezionano quale motore e' coinvolto (1 = ON). A differenza del comando precedente viene utilizzata l'attuale frequenza di posizionamento e l'attuale passo.
Danbo(21/02/2006):
ATTENZIONE: I motori utilizzano la frequenza F2 per il posizionamento e la frequenza F1 per i posizionamenti continui (Home, Work e Tracking) La frequenza F1 di default e' impostata a 125 Hz (=10E6/n/2, dove n = 40000 e' il divisore).Modificando "n" si puo' variare la frequenza F1 iniziale, ma attenzione bisogna anche modificare il moltiplicatore nell'impostazione della frequenza di posizionamento F2. Quindi un modo per utilizzare il comando di Home(o Work) con Default e quello di impostare il divisore, appena prima di effettuare il comando, al valore tale per cui si ottenga la frequenza di posizionamento F2 impostata, poi ri-settare il divisore al valore di Default (40000)
Durante le operazioni di Home e Work tutti gli altri task devono essere disabilitati per non interferire con la lettura dello stato delle porte di input. </em>  


Esempio in C:

int d, er;
// Cerca la posizione di Home su entrambi gli assi con valori preimpostati
sprintf(buftx, "<%2X%2X", 1, 1);
TxStr(buftx, 5);
d = ACKLEN;
er = RxStr(buf, &d);
if(er) Message("Error on HOME!");

9. POSIZIONE DI WORK

Codice decimale: 44\n
Carattere ASCII:,\n
Parametri: PAR1, PAR2\n
Formato Parametri:\n
    PAR1 - Byte, 2 Cifre esadecimali.\n
    PAR2 - Byte, 2 Cifre esadecimali.\n
Range Parametri: 00-01\n

Questo comando fa posizionare il motore sulla posizione di Work, il motore gira in senso orario finche non trova attivo questo ingresso. I parametri PAR1, PAR2 selezionano quale motore e' coinvolto (1 = ON). Questo comando per realizzarsi accende automaticamente il motore coinvolto, imposta un passo di 2000 s/r ed una frequenza di posizionamento di 1KHz. Il campionamento del fine corsa e' effettuato mille volte al secondo. Se si desidera utilizzare una diversa frequenza o passo occorre utilizzare il comando successivo.


10. POSIZIONE DI WORK CON DEFAULT

Codice decimale: 61\n
Carattere ASCII:=\n
Parametri: PAR1, PAR2\n
Formato Parametri:\n
    PAR1 - Byte, 2 Cifre esadecimali.\n
    PAR2 - Byte, 2 Cifre esadecimali.\n
Range Parametri: 00-01\n

Questo comando fa posizionare il motore sulla posizione di Work, il motore gira in senso orario finche non trova attivo questo ingresso. I parametri PAR1, PAR2 selezionano quale motore e' coinvolto (1 = ON). A differenza del comando precedente viene utilizzata l'attuale frequenza di posizionamento e l'attuale passo.


11. INVERSIONE DIREZIONE

Codice decimale: 45\n
Carattere ASCII:-\n
Parametri: PAR1, PAR2\n
Formato Parametri:\n
    PAR1 - Byte, 2 Cifre esadecimali.\n
    PAR2 - Byte, 2 Cifre esadecimali.\n
Range Parametri: 00-01\n
Default: 0\n

Questo comando inverte la rotazione dei motori comandata. Puo' succedere che il motore non giri nel verso voluto, e' quindi possibile effettuare una rotazione dei sensi di rotazione affinche' poi nel comando di posizionamento i sensi CW e CCW siano rispettati. 1 = inverte.


12. POSIZIONAMENTO SUI DUE ASSI

Codice decimale: 46\n
Carattere ASCII:.\n
Parametri: PAR1, PAR2, PAR3, PAR4\n
Formato Parametri:\n
    PAR1 - Byte, 2 Cifre esadecimali.\n
    PAR2 - Unsigned 32 bit, 8 Cifre esadecimali.\n
    PAR3 - Byte, 2 Cifre esadecimali.\n
    PAR4 - Unsigned 32 bit, 8 Cifre esadecimali.\n
Range Parametri: PAR1.3 = 00-01, PAR2.4 = 00000000-FFFFFFFF\n

Esegue il posizionamento sui due assi di un numero di passi e direzione voluti. PAR1 indica il senso di rotazione 0 = CW e 1 = CCW mentre PAR2 specifica con otto numeri esadecimali il numero di passi che il motore A deve eseguire, PAR3 e PAR4 sono analoghi per il motore B.L'AMS rispondera' subito con un ACK anche se il posizionamento deve essere sempre eseguito, per verificare la completa attuazione di questo vedere l'esempio sottostante.


13. LEGGE GLI INPUT

Codice decimale: 47
Carattere ASCII: /
Parametri: Nessuno

Questo comando restituisce lo stato della porta di ingresso dei fine corsa. Viene restituito uno status specificato da due cifre esadecimali, i primi quattro bit sono utilizzati come HOME e WORK per i due assi, mentre i restanti sono a disposizione dell'utente.

14. TRACKING

Codice decimale: 48
Carattere ASCII: 0
Parametri: DIRa, COUNTa, DIRb, COUNTb
Formato Parametri:
    DIRa.b - Byte, 2 Cifre esadecimali.
    COUNTa.b - Unsigned 32 bit, 8 Cifre esadecimali.
Range Parametri: 
    DIR: 00-01
    COUNT: 00000000-FFFFFFFF\n\n

<em>Con questo comando e' possibile far eseguire all'AMS un tracking arbitrario su entrambi gli assi. Il parametro DIR specifica la direzione di tracking 0 = CW, 1 = CCW. COUNT rappresenta invece il fattore di divisione che determina insieme alla base dei tempi interna (10 MHz) la frequenza prodotta ai motori, questo valore e' codificato su 8 cifre esadecimali (32 bit unsigned). 
Per calcolare la frequenza che bisogna fornire al motore per realizzare un certo numero di giri al minuto e':
F = 200 / S  *  N / 60
Dove:
F = Frequenza in Hz
S = Passo utilizzato, ½ ¼ etc.
N = Numero di giri al minuto.

L'equazione che si applica per calcolare i vari parametri e' conoscendo la frequenza necessaria hai motori e':
COUNT = 10E6 / F</em>\n

15. LEGGE I PASSI EFFETTUATI

Codice decimale: 49
Caratteri ASCII: 1
Parametri: PAR1
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-01

Legge i passi effettuati di un motore selezionato. Il parametro PAR1 seleziona da quale motore si vuole leggere il numero di passi fatti (0 = A, 1 = B), il comando produce in uscita otto cifre esadecimali (long).

16. MOTORE ON/OFF

Codice decimale: 50
Caratteri ASCII: 2
Parametri: PAR1,PAR2
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
    PAR2 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-01
Default: 1

Permette togliere corrente ai motori. I parametri PAR1 (A) e PAR2 (B) identificano per ciascuno dei motori quale attivita' si vuole impostare, 0 = spegni, 1 = corrente nominale. 

17. AZZERA LE COORDINATE

Codice decimale: 51
Carattere ASCII: 3
Parametri: PAR1, PAR2
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
    PAR2 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-01

Azzera le coordinate (numero di passi effettuati) del motore selezionato, 0 = A, 1 = B.

18. SETTA LA VELOCITA' DI POSIZIONAMENTO

Codice decimale: 52
Carattere ASCII: 4
Parametri: PAR1,PAR2
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
    PAR2 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-FF
Default: 7\n

<em>Imposta la velocita' di posizionamento dei motori, il parametro PAR1 accetta un range da 0 a FF con una corrispondenza:

Frequenza di posizionamento (Hz)  = 125 * (n + 1)

Impostando quindi 1 avremo  250Hz, 3 = 1KHz etc.</em>\n

19. TRACKING ON/OFF

Codice decimale: 53
Carattere ASCII: 5
Parametri: PAR1, PAR2
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
    PAR2 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-02

Permette di disabilitare (PAR = 0) o abilitare (PAR = 1) PAR = 2) il tracking su ciascun asse. si puo' anche utilizzare il valore 2 per ignorare l'asse desiderato.

20. ABILITA L'USCITA PWM

Codice decimale: 54
Carattere ASCII: 6
Parametri: PAR1, PAR2
Formato Parametri:
    PAR1 - Byte, 8 Cifre esadecimali.
    PAR2 - Byte, 8 Cifre esadecimali.
Range Parametri: 00000001-FFFFFFFF

Abilita l'uscita PWM stabilendo con il parametro PAR1 la durata di inattivita' dell'impulso (0) mentre con il parametro PAR2 si imposta per quanto tempo l'impulso sta attivo (1). La base dei tempi utilizzata e' di 1ms. Per cui si possono ottenere frequenze di uscita da 500Hz a 4.656612873E-10Hz.

21. DISABILITA L'USCITA PWM

Codice decimale: 55
Carattere ASCII: 7
Parametri: Nessuno

Disabilita l'uscita PWM.

22. STATO DEL POSIZIONAMENTO

Codice decimale: 56
Carattere ASCII: 8
Parametri: PAR1
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-01

Permette di verificare se il posizionamento di un asse (PAR1) e' stato completato (1) oppure e' sempre in esecuzione (0). La risposta e' fornita con due cifre esadecimali.

23. SCRIVE SULLA PORTA OPTOISOLATA

Codice decimale: 57
Carattere ASCII: 9
Parametri: PAR1
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-FF
Default: FF

Permette di scrivere sulla porta di uscita optoisolata. SI ricorda che il bit 0 e' utilizzato anche dal PWM.

24. LEGGE UN CANALE DEL CONVERTITORE A/D

Codice decimale: 58
Carattere ASCII: :
Parametri: PAR1
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-07

Permette di leggere un canale del convertitore A/D da 10 bit, il campo di ingresso di ogni canale e' di 0 - 5V. Vengono restituite quattro cifre esadecimali.

25. MODO DI POSIZIONAMENTO

Codice decimale: 59
Carattere ASCII: ;
Parametri: PAR1
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-01
Default: 0

Permette di abilitare (0) o disabilitare (1) le rampe di accelerazione/decelerazione sui posizionamenti.

26. DIVISORE

Codice decimale: 62
Carattere ASCII: >
Parametri: PAR1,PAR2
Formato Parametri:
    PAR1 - Unsigned 32 bit, 8 Cifre esadecimali.
    PAR2 - Unsigned 32 bit, 8 Cifre esadecimali.
Range Parametri: 00000000-FFFFFFFF
Default: 40000

Imposta la frequenza di base (F1) utilizzata per il tracking ed il posizionamento veloce.

27. SCRIVE EEPROM

Codice decimale: 63
Carattere ASCII: ?
Parametri: PAR1,PAR2
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
    PAR2 - Unsigned 16 bit, 4 Cifre esadecimali.
Range Parametri: 00-3F

Scrive la EEPROM interna dell'AMS. Il parametro PAR1 rappresenta l'indirizzo, mentre PAR2 e' un numero che vi si vuole scrivere. Attenzione l'indirizzo 0 e' utilizzato per l'identita' dell'AMS.

28. LEGGE EEPROM

Codice decimale: 64
Carattere ASCII: @
Parametri: PAR1
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-3F
Restituisce il contenuto dell EEPROM.

Legge la EEPROM interna dell'AMS. Il parametro PAR1 rappresenta l'indirizzo della EEPROM.

29. CARICAMENTO VALORI INIZIALI

Codice decimale: 65
Carattere ASCII: A
Parametri: nessuno

Imposta i parametri iniziali dell'AMS, in particolare per Tracking, Multiplier, Mode, Step, Slope, Enable e Corrente di alimentazione dei motori.

30. LEGGE LA REVISIONE HARDWARE FPGA

Codice decimale: 66
Carattere ASCII: B
Parametri: nessuno
Restituisce il valore di revisione su due cifre esadecimali ascii.

Legge la revisione hardware della FPGA che gestisce i motori. Questo comando e' di uso interno per lo sviluppo di programmi diagnostici.

31 LEGGE LO STATO DEL JOYSTICK

Codice decimale: 67
Carattere ASCII: C
Parametri: nessuno
Restituisce lo stato del joystick su due cifre esadecimali ascii.

Legge lo stato del joystick in accordo con la seguente tabella:

CODICE  AZIONE
0   Joystick disattivo
1   Movimento verso l'alto
2   Movimento verso il basso
4   Movimento verso destra
8   Movimento verso sinistra

32. SCRIVE UN REGISTRO DELLA FPGA

Codice decimale: 69
Carattere ASCII: E
Parametri: PAR1,PAR2
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
    PAR2 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-FF
Scrive il contenuto del registro selezionato.

Scrive il registro interno dell'FPGA. Il parametro PAR1 rappresenta l'indirizzo del registro, PAR2 e' cio' che vi si vuole scrivere.

33. LEGGE UN REGISTRO DELLA FPGA

Codice decimale: 70
Carattere ASCII: F
Parametri: PAR1
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-FF
Restituisce il contenuto del registro selezionato.

Legge il registro interno dell'FPGA. Il parametro PAR1 rappresenta l'indirizzo del registro.

34. MODALITA' POSIZIONAMENTO MANUALE CON JOYSTICK

Codice decimale: 68
Carattere ASCII: D
Parametri: PAR1,PAR2,PAR3
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
    PAR2 - Word, 4 Cifre esadecimali.
    PAR3 - Word, 4 Cifre esadecimali.
Range Parametri PAR1: 00-11
Range Parametri PAR1: 0001-FFFF

Questo comando pone l'AMS nella modalita' posizionamento manuale. Una volta che questo comando e' stato avviato l'AMS legge in continuazione lo stato del joystick ed esegue un posizionamento conseguente.
Finche' questa modalita' e' attiva vengono accettati solo due comandi:

    Inviando il comando 'x' si esce dalla modalita' posizionamento manuale.
    Inviando il comando '1' si puo' leggere il valore dei contatori con la stessa sintassi del comando analogo LEGGE I PASSI EFFETTUATI.

I parametri che devono essere associati a questo comando sono:

    PAR1 la cifra esadecimale piu' significativa stabilisce se a 0 che durante il movimento verso l'alto il valore dei contatori verra' incrementato, diversamente se la cifra conterra' un 1 il valore dei contatori sara' decrementato. Analogamente la stessa cosa vale per la cifra meno significativa che va associata al movimento verso sinistra.
    PAR2, PAR3 contengono rispettivamente il numero di passi che deve essere eseguito in orizzontale (PAR2) e verticale (PAR3). I valori accettati vanno da 1 a 65535.

Conviene prima di eseguire questo comando di disabilitare il valore di rampa di accelerazione/decelerazione.

35. VERIFICA LA POSIZIONE DI HOME

Codice decimale: 71
Carattere ASCII: G
Parametri: PAR1
Formato Parametri:
    PAR1 - Byte, 2 Cifre esadecimali.
Range Parametri: 00-01

Verifica la posizione di HOME per uno degli assi selezionati (0/1), ritorna 1 se in posizione di HOME.

<CENTER>
\e Back \e to \ref amscommands\n
\e Back \e to \ref amsmainpage\n 
</CENTER>
______________________________________________________________________________________
Generated on Mon Sep 18 2017 11:47:04 for DAS - Rel. 3.1.6 - 18/09/2017.