Makro / CSMIO - problem...

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

Autor tematu
Czepek
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 1
Posty: 15
Rejestracja: 23 paź 2007, 19:23
Lokalizacja: ZG

Makro / CSMIO - problem...

#1

Post napisał: Czepek » 02 kwie 2018, 16:21

Witam,
mam jak dla mnie dziwny problem i nie mogę sobie z nim poradzić.
Dla przykładu stworzyłem makro które nie działa jak powinno.

Sekwencja powinna wyglądać tak: po wywołaniu start silnika, najazd na czujnik i wyłączenie silnika.

O ile silnik startuje to nie zatrzymuje się na czujniku. CSMIO sygnalizuje załączenie czujnika, ale silnik nie staje.
Przypuszczam, że problem leży w składni kodu VB....

Kod: Zaznacz cały

    'Deklaracja wejść
    Const CZUJNIK_1 = 17              'CSMIO input

    'Deklaracja wyjść
    Const SILNIK_1 = 12                'CSMIO output

    'Załączenie silnika
    Call SILNIK()

End Sub


Function SILNIK()
    Call SetCsmioOut(SILNIK_1, True)        'załączenie silnika
    If GetCsmioIn(CZUJNIK_1, True) Then
        Call SetCsmioOut(SILNIK_1, False)   'wyłączenie silnika
    End If
End Function


Public Function GetCsmioIn(ByVal n As Integer) As Boolean
    Dim reg As Integer

    If (n < 16) Then
        reg = 90
    Else
        reg = 91
        n = n - 16
    End If

    If (GetInBit(reg, n)) Then
        GetCsmioIn = True
    Else
        GetCsmioIn = False
    End If
    Exit Function
End Function

Public Sub SetCsmioOut(ByVal n As Integer, ByVal state As Boolean)
    If (state) Then
        SetOutBit(90, n)
    Else
        ResetOutBit(90, n)
    End If
End Sub
Kolejny problem to, że gdy wyjście silnika nie jest wpisane w Ports&Pins makro nie uruchamia silnika....
Ja już zgłupiałem, z tego co wiem powinienem nie wpisywać w Machu a tylko odwoływać się w makro bezpośrednio do wyjść.

Pozdrawiam.



Awatar użytkownika

andmar2005
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 190
Rejestracja: 15 sie 2009, 08:55
Lokalizacja: kujawsko-pomorski
Kontakt:

Re: Makro / CSMIO - problem...

#2

Post napisał: andmar2005 » 09 maja 2018, 05:59

co to jest "n"
poza tym Panowie z cismo pomogą jak zadzwonisz


grekot
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 1
Posty: 19
Rejestracja: 05 lis 2005, 19:47
Lokalizacja: Gnojnik

Re: Makro / CSMIO - problem...

#3

Post napisał: grekot » 06 maja 2020, 12:48

Oczekiwanie na zadziałanie czujnika musisz zrobić w pętli While

Function SILNIK()
Call SetCsmioOut(SILNIK_1, True) 'załączenie silnika

'OCZEKIWANIE NA ZADZIAŁANIE CZUJNIKA
While Not GetCsmioIn(CZUJNIK_1)
Sleep(15)
Wend

Call SetCsmioOut(SILNIK_1, False) 'wyłączenie silnika
End If
End Function


qqaz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 2123
Rejestracja: 28 sty 2007, 16:12
Lokalizacja: Łódź

Re: Makro / CSMIO - problem...

#4

Post napisał: qqaz » 07 maja 2020, 21:10

Dobrym zwyczajem jest wstawienie dodatkowego warunku kończącego pętlę
While coś lub jakieś inne
bo może się na coś nie doczekać i z pętli nie wyjdzie
a Mach tymczasem zakończył program i operator ładuje następny Gkod nie mając pojęcia że po załadowaniu pojawi się w nim nowe coś które zakończy pętle cały czas czekającą w tle która uruchomi reakcję z poprzedniego programu.
To chodzi pod Windows!

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Mach 2 / 3 / 4 (ArtSoft software)”