PORTA PARALLELA
Per pilotare i motori passo passo del CNC ho utilizzato la porta parallela.
La porta parallela mi permette di avere 12 piedini di
output e 5 piedini di input.

I piedini della porta parallela sono collegati nel seguente
modo:
4 piedini di output per il motore dell’asse X
4 piedini di output per il motore dell’asse Y
4 piedini di output per il motore dell’asse Z
5 piedini di input per gli interruttori di fine corsa.
La porta parallela viene utilizzata per le trasmissioni
parallele ovvero quando l’informazione è inviata tutta nello stesso momento,
grazie a questa caratteristica posso collegare e controllare più motori
contemporaneamente.
La porta parallela è suddivisa in tre registri, il registro
di stato, il registro dei dati ed il registro di controllo, si può fare
riferimento ai citati registri tramite gli indirizzi seguenti: 378H, 278H, 3BCH.
I registri e gli indirizzi sono rappresentati in figura:

Dalla figura possiamo vedere le 12 porte di output ovvero i
piedini colorati di rosso e di blu e le 5 porte di input ovvero i piedini
colorati in verde, i piedini colorati in nero non vengono utilizzati.
I motori del CNC sono stati collegati nel seguente modo:
ASSE X:
2 = D0
3 = D1
4 = D2
5 = D3
-------------------
ASSE Y:
6 = D4
7 = D5
8 = D6
9 = D7
-------------------
ASSE Z:
1= /AUTOFD
14= /INIT
16= SELIN
17= /STROBE
-------------------
INGRESSI:
10= ACK
11= /BUSY
12= PE
13= SEL Z
15= ERROR
Con queste informazioni non facciamo altro che inviare il
valore (binario od esadecimale) al registro interessato per muovere i relativi
motori.
Supponiamo di voler far ruotare di un passo l'asse X
dobbiamo mandare il valore binario "00000001" all'indirizzo 278H.
Per muoverlo di 4 passi dobbiamo inviare i seguenti valori
in sequenza sempre all'indirizzo 278H:
00000001 Primo passo
00000010 Secondo passo
00000100 Terzo passo
00001000 Quarto passo
Le porte precedute dal carattere"/" stanno ad indicare che
sono negate, per esempio /AUTOFD oppure /BUSY.
Quando andremmo ad usare queste porte ci dobbiamo ricordare di invertire i
valore, se dobbiamo inviare il valore 1 (uno) al registro dovremmo inviare
uno 0 (zero), se preleviamo dalla porta uno 0 (zero), in realtà è presente un 1(uno).
Per quanto riguarda gli interruttori di fine corsa, non
facciamo altro che monitorare il registro di stato aspettando il valore
desiderato.
Supponiamo di avere un deviatore collegato al piedino 15,
se vogliamo sapere il suo stato, ci basta creare un ciclo che controlli il
valore del registro e lo paragoni a quello da noi desiderato.
Inizio ciclo
Se (REGISTRO_DI_STATO = “00010010”) = FERMA_TUTTO
Fine ciclo
Fate molta attenzione al secondo bit, è posto ad uno perché
la porta è invertita, ovvero quando all’ingresso della porta 11 è presente un
uno, nel registro avremmo uno zero.
Purtroppo la porta parallela ha dei svantaggi dovuti alle
interferenze, per questo è bene usare dei cavi molto corti e possibilmente
schermati, altrimenti i disturbi (chiamati anche “rumori”) della fresa possono
causare delle anomalie nel movimento della macchina e quindi delle imprecisioni
nella realizzazione del pezzo.
Deviatori