Makro / CSMIO - problem...
: 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....
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.
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
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.