macropump voor drie kleuren lamp

Alle vragen die betrekking hebben over Mach cnc controllers

Moderator: Moderators

Plaats reactie
Gebruikersavatar
zeeschuim
Donateur
Berichten: 869
Lid geworden op: 05 jun 2015 21:54
Locatie: Lelystad
Contacteer:

macropump voor drie kleuren lamp

Bericht door zeeschuim »

Dit is het gemodificeerde script van cs labs voor een 3 kleuren lamp. Ik probeer het ook voor andere controllers werkbaar te maken. Wat doe ik hier fout?

Code: Selecteer alles

	Sub Main
	
		If Not GetOEMLED(800) Then
		
			'Run	----------------------------------------------
			
			If GetOEMLED(804) And Not GetOEMLED(80) Then 
				ActivateSignal(OUTPUT2)
				DeactivateSigal(OUTPUT3)
				DeactivateSigal(OUTPUT4)
				If GetOEMLED(804) Then
	
			End If
			
			'Paused	----------------------------------------------
			
			If Not GetOEMLED(804) And GetOEMLED(80) Then  
				DeactivateSigal(OUTPUT2)
				ActivateSigal(OUTPUT3)
				DeactivateSigal(OUTPUT4)

			End If 
		
			'Idle	----------------------------------------------
			
			If Not GetOEMLED(804) And Not GetOEMLED(80) Then  
				DeactivateSigal(OUTPUT2)
				DeactivateSigal(OUTPUT3)
				ActivateSignal(OUTPUT4)

			End If 
		Else
			'Reset	----------------------------------------------
			
			CurrentTime = GetTickCount
			
			If CurrentTime > (LastTime  + 500) Then
				DeactivateSigal(OUTPUT2)
				DeactivateSigal(OUTPUT3)

				DeactivateSigal(OUTPUT4)

			End If
			
			If CurrentTime > (LastTime  + 1000) Then
				LastTime  = CurrentTime
				DeactivateSigal(OUTPUT2)
				DeactivateSigal(OUTPUT3)
				ActivateSignal(OUTPUT4)

			End If
			
			If LastTime  > CurrentTime Then
				LastTime  = CurrentTime
			End If
	End Sub                                                                                                         

Wij van cncfrees adviseren cncfrees.
Kjelt
Donateur
Berichten: 6309
Lid geworden op: 14 jun 2007 21:51
Locatie: Eindhoven

Re: macropump voor drie kleuren lamp

Bericht door Kjelt »

Ken deze taal niet maar 25 jaar C ervaring vertelt me:

Tel even het aantal if'jes en endif'jes.
Op regel 9 staat er bv een losse if zonder endif,waarschijnlijk copy paste foutje
Gebruikersavatar
zeeschuim
Donateur
Berichten: 869
Lid geworden op: 05 jun 2015 21:54
Locatie: Lelystad
Contacteer:

Re: macropump voor drie kleuren lamp

Bericht door zeeschuim »

Als ik het laat lopen door Mach, dan geeft hij een syntax error op het eind, bij de laatste End Sub..
Wij van cncfrees adviseren cncfrees.
Gebruikersavatar
zeeschuim
Donateur
Berichten: 869
Lid geworden op: 05 jun 2015 21:54
Locatie: Lelystad
Contacteer:

Re: macropump voor drie kleuren lamp

Bericht door zeeschuim »

Dit is trouwens het origineel,

Code: Selecteer alles

'-----------------------------------------------------------------------------------------------
Public Declare Function GetTickCount Lib "kernel32.dll" () As Long
'-----------------------------------------------------------------------------------------------

Dim CurrentTime As Long
Private LastTime As Long

'---------------------------------- Config -----------------------------------------------------

Const RunLamp		= 0	'Output number CSMIO / IP -- Lamp Run
Const PausedLamp	= 2	'Output number CSMIO / IP -- Lamp Paused
Const IdleResetLamp	= 1	'Output number CSMIO / IP -- Lamp Idle / Reset

'-----------------------------------------------------------------------------------------------

	Sub Main
	
		If Not GetOEMLED(800) Then
		
			'Run	----------------------------------------------
			
			If GetOEMLED(804) And Not GetOEMLED(80) Then 
				Call SetCsmioOut(RunLamp, true)
				Call SetCsmioOut(PausedLamp, false)
				Call SetCsmioOut(IdleResetLamp, false)
				
			End If
			
			'Paused	----------------------------------------------
			
			If Not GetOEMLED(804) And GetOEMLED(80) Then  
				Call SetCsmioOut(RunLamp, false)
				Call SetCsmioOut(PausedLamp, true)
				Call SetCsmioOut(IdleResetLamp, false)
			End If 
		
			'Idle	----------------------------------------------
			
			If Not GetOEMLED(804) And Not GetOEMLED(80) Then  
				Call SetCsmioOut(RunLamp, false)
				Call SetCsmioOut(PausedLamp, false)
				Call SetCsmioOut(IdleResetLamp, true)
			End If 
		Else
			'Reset	----------------------------------------------
			
			CurrentTime = GetTickCount
			
			If CurrentTime > (LastTime  + 500) Then
				Call SetCsmioOut(RunLamp, false)
				Call SetCsmioOut(PausedLamp, false)
				Call SetCsmioOut(IdleResetLamp, false)
			End If
			
			If CurrentTime > (LastTime  + 1000) Then
				LastTime  = CurrentTime
				Call SetCsmioOut(RunLamp, false)
				Call SetCsmioOut(PausedLamp, false)
				Call SetCsmioOut(IdleResetLamp, true)
			End If
			
			If LastTime  > CurrentTime Then
				LastTime  = CurrentTime
			End If
		End If
		
	End Sub

'-----------------------------------------------------------------------------------------------

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         

'-----------------------------------------------------------------------------------------------                                                                                                      
Wij van cncfrees adviseren cncfrees.
Kjelt
Donateur
Berichten: 6309
Lid geworden op: 14 jun 2007 21:51
Locatie: Eindhoven

Re: macropump voor drie kleuren lamp

Bericht door Kjelt »

Ja regel 13 verwijderen: If GetOEMLED(804) Then


en op het einde nog een End if toevoegen voor de End Sub

dan nog een keer testen.
Plaats reactie