Sterowanie dwoma silnikami z LPT w VB

Rozmowy dotyczące oprogramowania sterującego maszynami CNC i sterowników CNC obrabiarek numerycznych

Autor tematu
zibi11
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 1
Posty: 11
Rejestracja: 30 maja 2004, 10:26

Sterowanie dwoma silnikami z LPT w VB

#1

Post napisał: zibi11 » 06 lut 2007, 12:51

Witajcie jak sterować portem LPT
tak żeby można było sterować dwoma silnikami krokowymi
Lpt ma port 0-7 8 pinów, do sterowania silnika wystarczy cztery
pozostałe cztery chciałem wykorzystać do sterowania drugim silnikiem
ale jak to zroić jednocześnie???
tak aby jakoś podzielić port na dwa??? 0-3 jeden silnik 4-7 drugi

TO do sterowania jednego silnika

Private Sub cmdkoniec_Click()
xx = sld.Value
Label1 = xx

For i = 1 To xx
Out PortAddress1, 0
krok = krok + 1
If krok = 5 Then
krok = 1
Out PortAddress, 0
End If
step 'wykonanie kroku
Next i

End Sub


Private Sub step()
' system sterowania pełno krokowy
If krok = 1 Then
Out PortAddress, 10
End If
If krok = 2 Then
Out PortAddress, 6
End If
If krok = 3 Then
Out PortAddress, 5
End If
If krok = 4 Then
Out PortAddress, 9
End If
Sleep 3
End Sub



Tagi:


MarK
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 108
Rejestracja: 28 sty 2006, 08:32
Lokalizacja: Lublin

#2

Post napisał: MarK » 06 lut 2007, 13:25

Portu LPT nie da się podzielić na dwa :wink: Najlepiej jeśli przyjmiesz sobie jakąś zmienną, która będzie przechowywała stan bitów na porcie i najpierw będziesz zapisywał do tej zmiennej, a dopiero potem na port. Wtedy generujesz bity dla jednego silnika, następnie dla drugiego. Wynikiem jest jakaś liczba binarna, czyli układ bitów o postaci 0000xxxx. Dla pierwszego silnika zapisujesz to do zmiennej bezpośrednio. Wynik dla drugiego silnika przesuwasz o cztery bity w lewo (np. mnożąc przez 16 - nie znam VB, programuję w C, a w C do takich rzeczy są operatory bitowe), czyli uzyskujesz coś takiego: xxxx0000. Taki "przesunięty" wynik sumujesz logicznie z naszą "buforową" zmienną i dopiero teraz zapisujesz to do rejestru LPT.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Ogólne Dyskusje na Temat Systemów Sterowania CNC”