Kevinoud
Een zak tuinaarde opescheuren
Hallo,
Ik heb het artikel doorgelezen over VB en Printerpoort maar nu moet je IO.DLL in een module toevoegen maar er staat niet bij hoe het moet.
Opeens begint er weer een heel nieuwe alinea.
Mijn projectje is 4 Relais afzonderlijk en getimed schakelen.
weet iemand de commando's hiervoor ?
knop met een hoog signaal naar printerpoort moet wel lukken maar op ene bepaalde tijd laten starten en/ of stoppen dat snap ik niet helemaal
Mvg
Erik
In order to succeed you must fail, so that you know what not to do the next time.
Public Declare Sub PortOut Lib "io.dll" (ByVal Port As Integer, ByVal Value As Byte)
Public Declare Function PortIn Lib "io.dll" (ByVal Port As Integer) As Byte
Heb mijn eigen code niet even bij de hand maar als ik even snel kijk was het dit.
En als je hem een bepaalde tijd wilt laten slapen cq. een delay wilt hebben kun je het volgende aan die module toevoegen. Nu kun je dmv Sleep(1000) 1 seconde je programma delayen en bijv met sleep(250) 250ms.
Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
[Bericht gewijzigd door Erik op ]
Kevinoud
Een zak tuinaarde opescheuren
kheb het nu simpel geprobeert zoals artikel ik krijg nu een error 
>> is de error regel
>>Private Sub Command1_Click()
Call LPT_DataReg_PinHigh(BIT0)
Call sleep(100)
Call LPT_DataReg_PinLow(BIT0)
End Sub
roelvh
Master Industriële Wetenschappen: Elektronica-ICT
voor tijden heb je niet eens een dll nodig, het zit weer standaard op je computer (bij mij toch, met VB6)
gewoon VB6 opstarten, in de balk links opzij (daar staat hij bij mij toch) staat ergens een klokje, zet deze in je form zoals je een commandbutton in je form zet.
Bij de eigenschappen van deze timer (klokje) staat "interval", de waarde dat je daar zet is het aantal milliseconden dat hij wacht.
Vul dan bijvoorbeeld deze code in bij de code van de timer:
Private Sub Timer1_Timer()
label1.visible = not label1.visible
End Sub
Deze code laat een label pinken op de ingestelde snelheid
Ik hoop dat je weet wat ik bedoel.
(achteraf maar gezien dat dit niet eigenlijk is wat je nodig hebt, dit voert om de zoveel milliseconden een stuk code uit, hetgeen wat jij nodig hebt is gewoon "wacht xxx ms")
[Bericht gewijzigd door roelvh op ]
Stekkerdoos
To boldly go, where nog Stekkerdoos has ever gone before...
Op 19 april 2007 19:25:41 schreef Kevinoud:
kheb het nu simpel geprobeert zoals artikel ik krijg nu een error
>> is de error regel>>Private Sub Command1_Click()
Call LPT_DataReg_PinHigh(BIT0)
Call sleep(100)
Call LPT_DataReg_PinLow(BIT0)
End Sub
de functie's die je aanroept zijn api's, die niet zomaar in vb inzitten, je moet ze importeren à la
Public Declare Sub <naam van de functie> Lib "<referentie dll (library)>" (parameters)zoals Erik al zei.
Maar daarvoor moet die referentie-dll wel op je pc staan, voor de sleep functie is dit al het geval; die staat standaard op elke pc. Maar die io.dll moet je eerst downloaden. in die tutorial hier wordt er een link gegeven die blijkbaar dood is zodat je de driver ergens anders zult moeten zoeken. wat ook nog kan is gewoon een andre driver gebruiken, bv. inpout32.dll wat te vinden is op het volgende adres, met voorbeeldproject en al:
http://www.logix4u.net/inpout32_source_and_bins.zip
Erik
In order to succeed you must fail, so that you know what not to do the next time.
@elektro_freak
Als je eventjes een kleine vertraging moet hebben moet je dus een tijd aan de timer toekennen, timer starten, en dan weeer teruggaan naar waar je was. bij sleep hoef je alleen sleep(1000) te doen, bespaart een hoop moeite en houd je code ook overzichtelijker.
En voor Kevinoud, ik was er vanuitgegaan dat je die IO.dll al had, dus je moet zoals stekkerdoos zei eventjes die dll op je computer zetten op de goede plek en dan moet het werken.
Kevinoud
Een zak tuinaarde opescheuren
@Erik: Io.dll staat in me system32 map en met parmon.exe kan ik de hardware direct aansturen
ik ga het even uitzoeken en deze code:
Private Sub Command1_Click()
Call LPT_DataReg_PinHigh(BIT0)
Call sleep(100)
Call LPT_DataReg_PinLow(BIT0)
End Sub
dit maakt VB zelf aan dus waarom moet ik het aanpassen ?
zo staat het ook in de tutorial
Alvast bedankt
Kevinoud
Een zak tuinaarde opescheuren
Ik heb nu de module erin zitten maar snap nog steeds niet waarom ie dit niet pakt:
Private Sub Command1_Click()
Call LPT_DataReg_PinHigh(BIT0)
End Sub
_____________________________________
Private Sub Command2_Click()
Call LPT_DataReg_PinLow(BIT0)
End Sub
Private Sub Form_Load()
End Sub
Dit zet VB zelf neer bij nieuwe buttons op call regel na en zo staat het ook in de tutorial 
Module:
Public Declare Function Inp Lib "inpout32.dll" _
Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
Gebruik al jaren inpout32 en bevalt me zeer goed,en het ook onder vista.
Als je er vragen over hebt hoor ik het wel.
Vr
Stekkerdoos
To boldly go, where nog Stekkerdoos has ever gone before...
Op 20 april 2007 15:37:34 schreef Kevinoud:
Ik heb nu de module erin zitten maar snap nog steeds niet waarom ie dit niet pakt:<code enzo>
wss omdat er in de tut staat "download de dll en de module hier" en dat er dan in de module de functie's LPT_DataReg_PinHigh en LPT_DataReg_PinLow zitten die versimpelingen zijn van de api's. maar aangezien die module nu niet meer te vinden is, zul je het zelf moeten uitvogelen. Op de link die ik gaf stonden toch ook voorbeeldprojecten, kijk daar anders is naar