VB probleem/vraag

Hoi CO,

Ik ben bezig met een visual basic programma dat ik ga gebruiken voor mijn computer controlled room (zie elders in het forum) dit programma beschikt over 8 knoppen om 8 bijbehorende relais te schakelen, maar nu wil ik van 1 van die knoppen een soort pulsdrukker maken > knop in relais aan, knop uit relais uit. Wie weet hoe ik dit moet programmeren ?

snuggel

http://www.tinus-online.nl :: Corolla G6 :: EOS 5D

Kan heel simpel...

Dim a = 0;

Als geklikt wordt

If a == 0 Then RelaisAan; a = 1;
Else RelaisUit; a = 0;

Weet niet of dis VB taal is maar iig zo iets werkt goed genoeg lijkt me

Het kan ook leuker,
Ik weet niet of het bij jou ook werkt maar ik gebruik VB6.
Als je naar components gaat, en Microsoft Forms 2.0 toevoegt, zit daar als het goed is de togglebutton bij. Die kan je gewoon indrukken dan gaat hij aan en uitdrukken dan gaat hij uit. Het ziet er ook veel leuker uit.

Hij was al kapot toen je em aan mij gaf!!!

hallo allemaal,

jeroentje, ik heb dat van jou geprobeert maar ik mis de vereiste biliotheekbestanden (VBCCE50)nu de andere eens proberen

http://www.tinus-online.nl :: Corolla G6 :: EOS 5D

Dat XOR 1 waar in de code moet dat staan?

http://www.tinus-online.nl :: Corolla G6 :: EOS 5D

Op 9 januari 2004 23:02:07 schreef Parcye:
Kan heel simpel...

Dim a = 0;

Als geklikt wordt

If a == 0 Then RelaisAan; a = 1;
Else RelaisUit; a = 0;

Weet niet of dis VB taal is maar iig zo iets werkt goed genoeg lijkt me

Dit zou het moeten zijn in VB (dit werkt iig):

Private Sub Command1_Click()
Dim Cmd1 As Boolean
If Cmd1 = True Then
Cmd1 = False
Relais1Uit
Else
Cmd1 = True
Relais1Aan
End If
End Sub

Vervang Relais1Aan/-uit met je eigen dingen, en bij elke knop moet Cmd1 natuurlijk Cmd2 enz worden.

Hij was al kapot toen je em aan mij gaf!!!

Mijn code is wat anders volgesn mij want ik krijg het niet voor elkaar.

Hieromder staat de source van het form bestand

(Sorry mods voor de grote lap tekst)

VERSION 5.00
Object = "{9FF7F1C2-9FA2-11D1-8FF6-30B803C10627}#1.0#0"; "IOPORT.OCX"
Begin VB.Form Form1
Caption = "Computer Controlled Room"
ClientHeight = 7590
ClientLeft = 60
ClientTop = 345
ClientWidth = 9975
KeyPreview = -1 'True
LinkTopic = "Form1"
MousePointer = 2 'Cross
ScaleHeight = 7590
ScaleWidth = 9975
StartUpPosition = 2 'CenterScreen
WindowState = 2 'Maximized
Begin VB.Timer Timer9
Interval = 1000
Left = 5520
Top = 7080
End
Begin VB.CommandButton cmdTime
Caption = "Tijd"
Height = 250
Left = 8040
TabIndex = 5
Top = 7200
Width = 1000
End
Begin VB.CommandButton cmdEnd
Caption = "exit"
Height = 250
Left = 9240
TabIndex = 32
Top = 7200
Width = 500
End
Begin VB.Frame Frame6
Height = 2565
Left = 2760
TabIndex = 28
Top = 3720
Width = 2100
Begin VB.CommandButton ButtonOnOff
Caption = "Bliksembol"
Height = 450
Index = 6
Left = 360
TabIndex = 31
Top = 240
Width = 1400
End
Begin VB.CommandButton Command2
Height = 450
Left = 360
TabIndex = 30
Top = 840
Width = 1400
End
Begin VB.CommandButton Command3
Height = 450
Left = 360
TabIndex = 29
Top = 1440
Width = 1400
End
Begin VB.Shape Indicator
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 390
Index = 6
Left = 840
Shape = 3 'Circle
Top = 2040
Width = 390
End
End
Begin IOPORTLib.Ioport Ioport1
Left = 4920
Top = 7080
_Version = 65536
_ExtentX = 661
_ExtentY = 661
_StockProps = 0
End
Begin VB.Timer Timer
Enabled = 0 'False
Index = 8
Interval = 500
Left = 4320
Top = 7080
End
Begin VB.Timer Timer
Enabled = 0 'False
Index = 7
Interval = 500
Left = 3720
Top = 7080
End
Begin VB.Timer Timer
Enabled = 0 'False
Index = 6
Interval = 500
Left = 3120
Top = 7080
End
Begin VB.Timer Timer
Enabled = 0 'False
Index = 5
Interval = 500
Left = 2520
Top = 7080
End
Begin VB.Timer Timer
Enabled = 0 'False
Index = 4
Left = 1920
Top = 7080
End
Begin VB.Timer Timer
Enabled = 0 'False
Index = 3
Interval = 500
Left = 1320
Top = 7080
End
Begin VB.Timer Timer
Enabled = 0 'False
Index = 2
Interval = 500
Left = 720
Top = 7080
End
Begin VB.Timer Timer
Enabled = 0 'False
Index = 1
Interval = 500
Left = 120
Top = 7080
End
Begin VB.Frame Frame8
Height = 2565
Left = 7560
TabIndex = 8
Top = 3720
Width = 2100
Begin VB.CommandButton Command6
Height = 450
Left = 360
TabIndex = 27
Top = 840
Width = 1400
End
Begin VB.CommandButton Command7
Height = 450
Left = 360
TabIndex = 26
Top = 1440
Width = 1400
End
Begin VB.CommandButton ButtonOnOff
Caption = "Auto verlichting"
Height = 450
Index = 8
Left = 360
TabIndex = 21
Top = 240
Width = 1400
End
Begin VB.Shape Indicator
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 390
Index = 8
Left = 840
Shape = 3 'Circle
Top = 2040
Width = 390
End
End
Begin VB.Frame Frame7
Height = 2565
Left = 5160
TabIndex = 7
Top = 3720
Width = 2100
Begin VB.CommandButton Command5
Height = 450
Left = 360
TabIndex = 25
Top = 1440
Width = 1400
End
Begin VB.CommandButton Command4
Height = 450
Left = 360
TabIndex = 24
Top = 840
Width = 1400
End
Begin VB.CommandButton ButtonOnOff
Caption = "TL Bureau"
Height = 450
Index = 7
Left = 360
TabIndex = 20
Top = 240
Width = 1400
End
Begin VB.Shape Indicator
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 390
Index = 7
Left = 840
Shape = 3 'Circle
Top = 2040
Width = 390
End
End
Begin VB.Frame Frame5
Height = 2565
Left = 360
TabIndex = 6
Top = 3720
Width = 2100
Begin VB.CommandButton ButtonReset
Caption = "Uit"
Height = 450
Index = 5
Left = 360
TabIndex = 19
Top = 1440
Width = 1400
End
Begin VB.CommandButton ButtonWissel1
Caption = "Knipperlicht"
Height = 450
Index = 5
Left = 360
TabIndex = 18
Top = 840
Width = 1400
End
Begin VB.CommandButton ButtonOnOff
Caption = "TV lamp"
Height = 450
Index = 5
Left = 360
TabIndex = 17
Top = 240
Width = 1400
End
Begin VB.Shape Indicator
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 390
Index = 5
Left = 840
Shape = 3 'Circle
Top = 2040
Width = 390
End
End
Begin VB.Frame Frame4
BackColor = &H8000000A&
Height = 2565
Left = 7560
MousePointer = 2 'Cross
TabIndex = 34
Top = 480
Width = 2100
Begin VB.CommandButton Buttonwissel1
Caption = "dimmen als mogelijk"
Height = 450
Index = 4
Left = 360
TabIndex = 16
Top = 840
Width = 1400
End
Begin VB.CommandButton ButtonOnOff
Caption = "Bedlamp"
Height = 450
Index = 4
Left = 360
MousePointer = 2 'Cross
TabIndex = 15
Top = 240
Width = 1400
End
Begin VB.Shape Indicator
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 390
Index = 4
Left = 840
Shape = 3 'Circle
Top = 2040
Width = 390
End
End
Begin VB.Frame Frame3
Height = 2565
Left = 5160
MousePointer = 2 'Cross
TabIndex = 33
Top = 480
Width = 2100
Begin VB.CommandButton ButtonReset
Caption = "Uit"
Height = 450
Index = 3
Left = 360
TabIndex = 14
Top = 1440
Width = 1400
End
Begin VB.CommandButton ButtonWissel1
Caption = "Knipperlicht"
Height = 450
Index = 3
Left = 360
TabIndex = 13
Top = 840
Width = 1400
End
Begin VB.CommandButton ButtonOnOff
Caption = "Dakkapel"
Height = 450
Index = 3
Left = 360
TabIndex = 12
Top = 240
Width = 1400
End
Begin VB.Shape Indicator
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 390
Index = 3
Left = 840
Shape = 3 'Circle
Top = 2040
Width = 390
End
End
Begin VB.Frame Frame2
Height = 2565
Left = 2760
TabIndex = 4
Top = 480
Width = 2100
Begin VB.CommandButton ButtonReset
Caption = "Uit"
Height = 450
Index = 2
Left = 360
TabIndex = 11
Top = 1440
Width = 1400
End
Begin VB.CommandButton ButtonWissel1
Caption = "Knipperlicht"
Height = 450
Index = 2
Left = 360
TabIndex = 10
Top = 840
Width = 1400
End
Begin VB.CommandButton ButtonOnOff
Caption = "Spots 2."
Height = 450
Index = 2
Left = 360
TabIndex = 9
Top = 240
Width = 1400
End
Begin VB.Shape Indicator
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 390
Index = 2
Left = 840
Shape = 3 'Circle
Top = 2040
Width = 390
End
End
Begin VB.Frame Frame1
Height = 2565
Left = 360
TabIndex = 0
Top = 480
Width = 2100
Begin VB.CommandButton ButtonReset
Caption = "Uit"
Height = 450
Index = 1
Left = 360
TabIndex = 3
Top = 1440
Width = 1400
End
Begin VB.CommandButton ButtonWissel1
Caption = "Knipperlicht"
Height = 450
Index = 1
Left = 360
TabIndex = 2
Top = 840
Width = 1400
End
Begin VB.CommandButton ButtonOnOff
Caption = "Spots 1."
Height = 450
Index = 1
Left = 360
TabIndex = 1
Top = 240
Width = 1400
End
Begin VB.Shape Indicator
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 390
Index = 1
Left = 840
Shape = 3 'Circle
Top = 2040
Width = 390
End
Begin VB.Label PortOutput
Height = 0
Left = 0
TabIndex = 22
Top = 0
Width = 0
End
End
Begin VB.Label Label1
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 7440
TabIndex = 35
Top = 6480
Width = 2175
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

' Alle knoppen,
' alsook de ronde indicators voor de 8 uitgangen hebben allen een index.
' Dit betekent dat elk van deze knoppen in een soort van array zitten.
' De index duidt enkel de plaats van die knop aan in die array (van 1 tot en met 8).

' Voorbeeld:
' De "On/Off"-knoppen hebben de naam "ButtonOnOff".
' De "On/Off"-knop voor uitgang 1 is dus "ButtonOnOff(1)".

' Dit was nodig, omdat het programma anders te lang werd en totaal onoverzichtelijk.

Private Sub Form_Load()
' Deze subroutine wordt uitgevoerd zodra het programma geladen wordt.
' Standaard staan alle datalijnen van de parallelle poort "aan",
' dus hier worden ze eerst uitgezet.
Label1.Visible = False
For Counter = 1 To 8
Call TurnOffOutput(Counter)
Next Counter
' Bereken de waarde voor de parallelle poort (waarde = 0)
' en zet de poort op deze waarde
Call SetPort
End Sub

Private Sub cmdEnd_Click()
End
End Sub

Private Sub cmdTime_Click()
If Label1.Visible = True Then
Label1.Visible = False
cmdTime.Caption = "Tijd"
ElseIf Label1.Visible = False Then
Label1.Visible = True
cmdTime.Caption = "Tijd weg"
End If
End Sub

Private Sub Timer9_Timer()
Label1.Caption = Time & " " & Date
End Sub

Private Sub ButtonOnOff_Click(Index As Integer)
' Deze routine wordt aangeroepen wanneer je op één van de "On/Off"-knoppen klikt.
' De index van de knop betekent dat de knop in een soort van array staat,
' waarbij "Index" aanduid op welke plaats hij staat in die array.

Call DoButtonOnOff(Index)
End Sub

Private Sub ButtonWissel1_Click(Index As Integer)
Call DoButtonWissel1(Index)
End Sub

Private Sub ButtonReset_Click(Index As Integer)
Call DoButtonReset(Index)
End Sub

Private Sub ButtonResetAll_Click()
Call DoButtonResetAll
End Sub

Private Sub Timer_Timer(Index As Integer)
' Elke keer dat er een timer-event plaatsvindt (een timer z'n interval is verlopen),
' inverteer de uitgang die bij die teller hoort en vernieuw de waarde
' op de parallelle poort
Call InvertOutput(Index)
Call SetPort
End Sub

http://www.tinus-online.nl :: Corolla G6 :: EOS 5D

Op 10 januari 2004 17:48:28 schreef snuggel:
' Alle knoppen,
' alsook de ronde indicators voor de 8 uitgangen hebben allen een index.
' Dit betekent dat elk van deze knoppen in een soort van array zitten.
' De index duidt enkel de plaats van die knop aan in die array (van 1 tot en met 8).

' Voorbeeld:
' De "On/Off"-knoppen hebben de naam "ButtonOnOff".
' De "On/Off"-knop voor uitgang 1 is dus "ButtonOnOff(1)".

' Dit was nodig, omdat het programma anders te lang werd en totaal onoverzichtelijk.

Dat had ik nodig. Je hebt alle 8 knoppen op 1 naam staan. Dan is het idd anders. Wat hier staat klopt zelfs niet:

' De "On/Off"-knop voor uitgang 1 is dus "ButtonOnOff(1)"

De aan en uit knop voor poort 1 is ButtonOnOff(0).

Hier is de aangepaste versie van mijn code:

code:


'dit gaat bovenaan de pagina (in VB):
Dim bOnOff(7) As Boolean
'...
'Dit vervangt de procedure die aangeropen wordt als je een van de knoppen indrukt:
Private Sub ButtonOnOff_Click(Index As Integer)
If bOnOff(Index) = True Then 
bOnOff(Index) = False 
DoButtonReset(Index)
Else
bOnOff(Index) = True
DoButtonOnOff(Index)
End If
End Sub

Ik weet inet zeker of het werkt, ik neem aan dat je gewoon het project in VB kan openen en de code bewerken, anders heb je er toch niks aan. Ik zie ook dat je of een DLL en een module nodig hebt, of alleen een DLL.

Ik ben zelf ook bezig met projecten voor de LPT poort, dus ik vraag even wat terug:
- Woor welke windows versie gebruik je dit?
- Welke VB versie gebruik je?
- Waar heb je die DLL (of de code) vandaan?

Als het niet te veel gevraagd is zou het wel handig zijn als je even een link gaf naar waar je het vandaan hebt. Of je zipt de hele zooi en zet het in het upload archief.

Alvast bedankt,
Jeroen

Hij was al kapot toen je em aan mij gaf!!!

Hoi jeroentje,

bedankt voor je reactie alleen denk ik dat ik niet alle info gegeven hebt, klopt het dat jou stukje code voor alle knoppen geldt? wat ik nodig heb is deze functie voor 1 van de 8 knoppen (voor de knop die als tekst "dimmen als mogelijk" heeft.)

Om even jouw vragen te beantwoorden,

Ik draai Windows 98
Mijn VB versie is : VB Creative Control Edition 5.0
(dus geeneens een compiler :( )
deze code heb ik van iemand van CO dacht ik

Je kan de complete Source van mij krijgen als je wil,
geeft je email maar dan komt ie naar je toe :)

http://www.tinus-online.nl :: Corolla G6 :: EOS 5D

ik wil wel een programmaatje voor je maken als je wilt. deze week helaas weinig tijd. als je zelf al iets hebt, stuur de code maar (bas@coolwarez.mine.nu), ik compile 'm wel.

He bas, bedankt voor het aanbod, ik heb zelf een programma hij is alleen nog niet af, zie de rest van dit topic, als ie klaar is stuur ik hem wel op Bedankt! :) :)

http://www.tinus-online.nl :: Corolla G6 :: EOS 5D

Ik ga waarschijnlijk op een van mijn andere computers windows 98 SE zetten, dan kan ik die voor de besturing gebruiken. Weet iemand of het ook werkt met Windows 2000?

Ik zal het wel proberen. Ik heb zelf VB6 geinstalleerd, maar ik ga hiervoor wel ff VB5 op die pc zetten, zodat het project iig compatebiel is met jouw systeem. Als je klaar bent kan je het altijd even opsturen dan compileer ik hem enstuur ik je een installatie bestand (incl. benodigde runtime files zodat hij ook op andere PCs kan draaien) terug ofzo.

Klik op mijn naam dan krijg je mn email adres. Ik zal eens kijken wat ik er mee kan, als het op mijn computer niet werkt houdt het op (die win95io.dll is heel beperkt qua OS)

Hij was al kapot toen je em aan mij gaf!!!

bedankt voor het aanbod :)
waar heb jij trouwens VB5 en 6 vandaan, gewoon gekocht of gedownload?

Voor het hele programma kijk dan op

http://www.snuggel.nl/docs

http://www.tinus-online.nl :: Corolla G6 :: EOS 5D

Het word waarschijlijk lastig om de printerpoort (en de com poort) rechtstreeks aan te sturen onde win 2000/XP omdat dat afgeschermd is. ik zoek er nog steeds een dll voor.

Reinstein

Op 11 januari 2004 21:52:23 schreef Reinstein:
Het word waarschijlijk lastig om de printerpoort (en de com poort) rechtstreeks aan te sturen onde win 2000/XP omdat dat afgeschermd is. ik zoek er nog steeds een dll voor.

Reinstein

In het andere topic van snuggel over hetzelfde staat deze link
http://www.logix4u.net/inpout32.htm
ik heb gekeken, hij zou het moeten doen.

[Bericht gewijzigd door jeroentje op maandag 12 januari 2004 07:03:38

Hij was al kapot toen je em aan mij gaf!!!

Op 11 januari 2004 13:10:18 schreef snuggel:
waar heb jij trouwens VB5 en 6 vandaan, gewoon gekocht of gedownload?

ja, dat wil ik ook wel weten of je VB kan downloaden of moet kopen

Op 12 januari 2004 08:15:29 schreef jeroen001:

[...]

ja, dat wil ik ook wel weten of je VB kan downloaden of moet kopen

De vader van een vriend van mij had nog een box cd's over van zn werk waaronder windows 2000 advanced server, visual studio 6, en ook visual studio .NET, maar de laatste CD is bekrast :(.

VB5 heb ik gekocht.

Hij was al kapot toen je em aan mij gaf!!!

Hey,

Ik ben eens gaan rommelen, ik ga zo jouw project downloaden snuggel, maar ik denk dat ik er weinig mee kan doen omdat de DLL alleen op windows 9x werkt, en ik dat nergens op heb staan. Ik ga een programmatje maken in VB5 met die inpout32.dll, zodat het op elke computer zou moeten werken. Als dat werkt, kan ik het wel helemaal aanpassen zoals jij het wil, dan stuur ik het op. Dan open ik hem in VB6 om te kijken of dat allemaal ook onder XP werkt en dan zet ik hem wel op mn site ofzo.

EDIT: Snuggel, ik mis IOPORT.OCX

Hij was al kapot toen je em aan mij gaf!!!

Op 12 januari 2004 15:31:55 schreef jeroentje:
Als dat werkt, kan ik het wel helemaal aanpassen zoals jij het wil, dan stuur ik het op. Dan open ik hem in VB6 om te kijken of dat allemaal ook onder XP werkt en dan zet ik hem wel op mn site ofzo.

Dat zo helemaal geweldig zijn ! :) :) :D :P
ik zal wel een klein lijstje maken van wat er nog verandert moet worden. stuur het wel via je email.

http://www.tinus-online.nl :: Corolla G6 :: EOS 5D

Nee, ik kan die dll niet gebruiken op 2k/XP. Ik wil die andere gaan gebruiken, maar ik snap er niks van. Als ik het zip-bestand heb uitgepakt zijn er een aantal mappen, waaronder binaries. Daar staat ergens inpout32.dll, maar als ik die in VB probeer te openen zegt hij "Can't add a reference to the specified file."

Ik zal het eens proberen in VB6, maar als iemand weet hoe het wel moet zeg het dan even.

Hij was al kapot toen je em aan mij gaf!!!

Welke DLL moet je hebben ? MSVBVM60.DLL die heb ik nog wel,
input32 heb ik niet,

PS als je mijn programma openent krijg je een aantal meldingen dat ie een aantal mappen/bestanden niet kan vinden, dat moet je maar gewoon negeren en het programma opnieuw openen bij mijn werkte het gewoon ik weet ook niet waar die verwijzingen staan of vandaan komen, ik heb me echt rot gezocht.

http://www.tinus-online.nl :: Corolla G6 :: EOS 5D

Op 12 januari 2004 17:53:44 schreef snuggel:
Welke DLL moet je hebben ? MSVBVM60.DLL die heb ik nog wel,
input32 heb ik niet,

PS als je mijn programma openent krijg je een aantal meldingen dat ie een aantal mappen/bestanden niet kan vinden, dat moet je maar gewoon negeren en het programma opnieuw openen bij mijn werkte het gewoon ik weet ook niet waar die verwijzingen staan of vandaan komen, ik heb me echt rot gezocht.

Bij mij doet hij het totdat ik hem opstart dan krijg ik iets van Function _D nogwat Failed.
Dat komt waarschijnlijk omdat die OCX enzo allemaal voor windows 9x geschreven zijn, in NT werkt dat heel anders.

Nee ik heb het al ontdekt, de DLL heb ik al maar die moet anders 'aansluiten'.

Het is al gelukt, en de functies doen het zonder fouten, maar ik heb zo geen LPT poort interface bij de hand om te gaan testen :(

Ik zal er morgen een lenen, dan kijk ik wel verder.

[Bericht gewijzigd door jeroentje op maandag 12 januari 2004 19:13:30

Hij was al kapot toen je em aan mij gaf!!!