[VB] COM-poort data uitlezen

Pagina: 1
Acties:
  • 514 views sinds 30-01-2008

  • MaartenK18
  • Registratie: Oktober 2004
  • Laatst online: 06-01-2022
Nog een keer proberen dan maar ..

De bedoeling is om de data die een meetinstrument meet uit te lezen via de compoort (RS232). We hadden de volgende code geprobeerd, maar dat werkte niet helemaal.
Iemand een idee ?

Private Sub Command1_Click()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
Text1.Text = MSComm1.Input
MSComm1.PortOpen = False

End Sub

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17:18

Creepy

Tactical Espionage Splatterer

"Het werkte niet". Tja, daar kunnen wij zou ook weinig aan doen.
Wat gaat er mis? Krijg je een foutmelding? Zo ja, welke?

Daarnaast, heb je de search al eens gebruikt? Er zijn redelijk wat topics voorbij gekomen waarin gesproken wordt over het uitlezen van de COM poort.

Kloppen de instellingen van de COM poort wel met de instellingen die het meetinstrument verwacht?

Lees P&W FAQ - De "quickstart" nog eens door, en ook het commentaar van gorgi_19 op je vorige topic.

Daarnaast zou het ook fijn zijn als je de code tags zou gebruiken zodat het allemaal nog wat beter leesbaar wordt :)

[ Voor 11% gewijzigd door Creepy op 25-11-2004 11:40 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Om welk meetinstrument/sensor gaat het? Staat er niets in de documentatie/datasheets bij de fabrikant? Heb je al gekeken of er iig wel data binnenkomt op die poort? Waar gaat het precies fout/begrijp je het niet?

  • MaartenK18
  • Registratie: Oktober 2004
  • Laatst online: 06-01-2022
Het punt is dat er totaal niets verschijnt in het tekstvak. Er is zelfs geen foutmelding. Ook de helpfunctie geeft geen uitkomst voor het probleem. Met name omdat meer dan de helft van de functies hier op deze instelling is uitgeschakeld of gewoon domweg niet aanwezig. Ik stel die vragen natuurlijk hier niet voor niets.

Er is geen info van de fabrikant, daarom willen we de uitvoer erst gaan opslaan in een bestand en vervolgens zelf verwerken. Maar dan moet er natuurlijk wel eerst data binnenkomen. Dat willlen we graag controleren met dit programma. (We hebben een ander programma dat weergeeft dat er data binnen komt, maar dat is niet geschreven in Visual Basic en is speciaal voor DOS geschreven)

[ Voor 38% gewijzigd door MaartenK18 op 25-11-2004 11:45 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17:18

Creepy

Tactical Espionage Splatterer

Ik betwijfel dat je meetinstrument zomaar uitzichzelf data zal gaan versturen. Zeer waarschijnlijk zul je het meetinstrument een commando moeten sturen zodat het iets terug geeft.

Om welke meetinstrument gaat het? Want dat er geen info van de fabrikant is lijkt me heel erg sterk.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • MaartenK18
  • Registratie: Oktober 2004
  • Laatst online: 06-01-2022
Sorry voor de 'belediging', maar net was dit Topic dus echt gesloten ..

Maar het betreft hier een magnetometer van Honeywell, die een continue signaal afgeeft. Aansturen is niet nodig. Het probleem zit in de door ons geschreven software, niet in het instrument.

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 17:00

Super_ik

haklust!

mischien moet je wel 1 van de controle bits hoog of laag maken
bv DCD RTS DTR ofzo

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • Obliterator
  • Registratie: November 2000
  • Laatst online: 11-11-2025
Is dit de juiste manier om de input te lezen? Ik werk niet met VB, maar ik zou op zoek gaan naar een methode Read oid.

Maarja, ik zou ook een methode Open() verwachten ipv een variabele zetten... :*)

[ Voor 27% gewijzigd door Obliterator op 25-11-2004 12:04 ]


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 17:00

Super_ik

haklust!

trouwens, laat die comport is gewoon open en gebruik de events eens, zo lees je toch geen compoort uit man :P
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private sub form_load()
    MSComm1.CommPort = 1
    MSComm1.Settings = "9600,N,8,1"
    MSComm1.PortOpen = True  
end sub

private sub form_unload()
    MSComm1.PortOpen = False
end sub

Private Sub MSComm1_OnComm()
    If MSComm1.CommEvent = comEvReceive Then
        text1.text = MSComm1.Input
    end if
End Sub

[ Voor 65% gewijzigd door Super_ik op 25-11-2004 12:08 ]

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • MaartenK18
  • Registratie: Oktober 2004
  • Laatst online: 06-01-2022
@super_ik

We zijn geen ver gevorderde programmeerexperts. Daarom zoeken wij hulp hier. Dus opmerkingen als "zo lees je toch geen compoort uit" vallen dus in niet zo goede aarde. Maar hoe werken die event dingen dan (Helpfunctie is hier geen optie :'()

[ Voor 6% gewijzigd door MaartenK18 op 25-11-2004 12:16 ]


  • MaartenK18
  • Registratie: Oktober 2004
  • Laatst online: 06-01-2022
Bedankt voor het stukje code, maar helaas, er verschijnt niets in het venster, en er komt ook geen foutmelding.

  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 13-10-2025

MrSleeves

You'll thank me later.

Heb je het al met een Null-modem kabel getest (tussen de COM1 en COM2 (ofzo) van je PC)?

Tekst versturen met Hyperterminal over de ene COM-poort en ontvangen met je programma op de andere COM-poort.

Zie http://www.lammertbies.nl...nl_RS-232_null_modem.html voor de uitleg over Null-modem-kabels.
Waarschijnlijk wel te bestellen bij Conrad of de betere computerspeciaalzaak.

En voor als je Frans kan lezen (maar de code verschaft misschien ook wel duidelijkheid):
http://www.freevbcode.com/ShowCode.Asp?ID=2236 (niet bekeken/getest)

[ Voor 18% gewijzigd door MrSleeves op 25-11-2004 12:35 ]

30Drie Web Design & IT Consultancy | Raven Consultancy Services


Verwijderd

Welke type gaat het om?

Als het om de HMR2300 gaat kun je op deze http://www.exstrom.com/hmr2300.htmlpagina kijken voor de datasheet

  • MaartenK18
  • Registratie: Oktober 2004
  • Laatst online: 06-01-2022
Het gaat inderdaad om de HMR2300, en daarvan zijn de datasheets ook al bekend. Helaas staat er weinig nuttigs in deze informatie omdat het al om een vrij oude sensor gaat.

(Null-modem-kabel over COM1 en COM2 ? :?)

[ Voor 12% gewijzigd door MaartenK18 op 25-11-2004 12:45 ]


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
probeer eens of er met Hyper Terminal wel data binnenkomt.

  • MaartenK18
  • Registratie: Oktober 2004
  • Laatst online: 06-01-2022
Ik heb Hyper Terminal weten te vinden, maar snap er vrij weinig van. Ben een beetje een leek op dit gebied.

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
je start hyper terminal, maakt een nieuwe sessie op bv. COM1, 9600,N,8,1 sluit dat ding aan en kijkt of er data binnenkomt.

  • MaartenK18
  • Registratie: Oktober 2004
  • Laatst online: 06-01-2022
Volgens Hyper Terminal komt er geen informatie binnen, althans ... het scherm blijft leeg.

  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 13-10-2025

MrSleeves

You'll thank me later.

MaartenK18 schreef op donderdag 25 november 2004 @ 12:43:
Het gaat inderdaad om de HMR2300, en daarvan zijn de datasheets ook al bekend. Helaas staat er weinig nuttigs in deze informatie omdat het al om een vrij oude sensor gaat.

(Null-modem-kabel over COM1 en COM2 ? :?)
Ja, een Null-modem-kabel (zie linkje).
Zorgt er voor dat als je de kabel aansluit op COM1 en COM2 (of welke je ook hebt), direct met elkaar verbonden zijn.
Met Hyperterminal maak je verbinding met COM1. Als je dan tekst intypt, wordt dat verstuurt over COM1, vervolgens komt die data via de Null-modem-kabel direct weer binnen op COM2 (waar je je prog aan hebt hangen). En andersom kan dan natuurlijk ook.

Je kan ook twee hyperterminals openen en dan typ je in het ene scherm en het resultaat verschijnt in het andere scherm.

Probleem is wel dat RS-232 niet alleen een dom data-lijntje is. (Zie de "lammertbies-link" met veel info).
Let ook op de controlebits, zoals hierboven vermeld en de Xon- en Xoff-codes die ook wel gebruikt kunnen worden.

30Drie Web Design & IT Consultancy | Raven Consultancy Services


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
MaartenK18 schreef op donderdag 25 november 2004 @ 12:58:
Volgens Hyper Terminal komt er geen informatie binnen, althans ... het scherm blijft leeg.
dan lijkt het erop dat er toch actie genomen moet worden v.a. de PC

  • MaartenK18
  • Registratie: Oktober 2004
  • Laatst online: 06-01-2022
Dus die Hyperterminal geeft aan of een compoort werkt.... Nu weten we al dat er niets mis is met de compoort. Dit weten we uit het laatst genoemde DOS programma. MAar wat klopt er niet aan de door ons beschreven software? Of mist er nog een functie?

  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 13-10-2025

MrSleeves

You'll thank me later.

pkouwer schreef op donderdag 25 november 2004 @ 13:01:
[...]

dan lijkt het erop dat er toch actie genomen moet worden v.a. de PC
Dat lijkt mij ook. Het is ook vrij lastig om anders te achterhalen waar je in de data zit als de COM-poort wordt geopend.
Meestal moet je een commando geven in de trant van: Lees één keer, of lees continue, stop, etc.

-- edit
Aangezien je de sampling rate varieert (lees ik in de link ergens hierboven), zal je die wel in kunnen stellen. Je zal er toch echt tegen aan moeten gaan praten, denk ik.

-- edit
Sterker nog, ik weet het wel zeker, want in de datasheet staat toch echt dat je eerst een "command" moet sturen.

-- edit
Dit is geen simpel lezertje hoor.. je kan alles aan dat ding instellen.
Ik adviseer je toch eerst even de hele pdf door te lezen. Daar staat een hoop in.

[ Voor 43% gewijzigd door MrSleeves op 25-11-2004 13:13 ]

30Drie Web Design & IT Consultancy | Raven Consultancy Services


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
maak eens een timer is VB die iedere msec. mscomm1.input ophaalt en in een textbox (multiline) plaatst.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17:18

Creepy

Tactical Espionage Splatterer

Hmm.. het begint nu wel erg een "help mij debuggen" topic te worden.

MaartenK18: Kijk eens naar de code van super_ik of de laatste tip van pkouwer. Als dat je al boven je pet gaat dan raad ik je aan een VB tutorial te gaan volgen (met google zijn doe goed te vinden) om het wel te snappen. Zo hoogstaand is dit nu ook weer niet, en het is ook zeker niet moeilijk te leren.

Als er in hyperterminal e.d. ook niks binnenkomt, dan verstuurt het apparaat gewoon niks. Zoals ik ook al eerder had aangegeven zul jer waarschijnlijk een commando naar het apparaat moeten sturen om resultaten te ontvangen. Dat het apparaat zelf continu sampled heeft er niks mee te maken.

Dat opmerkingen bij jou niet in goede aarde vallen is wat mij betreft pech. Iedereen die heeft gepost hier probeert jou te helpen. Dat hoeven ze niet te doen.

Mocht je dan echt nog vragen of problemen hebben post dan gerust verder.

[ Voor 20% gewijzigd door Creepy op 25-11-2004 15:01 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
je hebt ook van die 'doosjes' met led-jes die activiteit op een bepaalde lijn laten zien, bv. Tx & Rx. Kun je ook nog wat mee spelen.

[ Voor 8% gewijzigd door pkouwer op 25-11-2004 15:13 ]


  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 21-12-2025
Het is wel degelijk nodig om eerst een commando te sturen voor dat je data terug krijgt van de HMR2300, kijk maar eens naar de timing diagrams en commands in de datasheet. Moet het device soms raden wat voor boudrate je wil communiceren enzo?? Eerst lezen, dan pas doen!

[ Voor 16% gewijzigd door djexplo op 25-11-2004 15:06 . Reden: typo ]

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


  • MaartenK18
  • Registratie: Oktober 2004
  • Laatst online: 06-01-2022
Uhm .. misschien is het ook wel bedoeld als een debug-topic ? Ik heb weinig verstand van computers, dus ik had gehoopt dat iemand mij een eind op weg kon helpen. Ik weet nu in ieder geval al meer dan dat ik in het begin wist. Bedankt daarvoor en als ik nog vragen heb dan hoor je het vanzelf wel.

En Creepy .. ik vind je jezelf een beetje aanstellen. Maar goed ..

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17:18

Creepy

Tactical Espionage Splatterer

Debuggen is toch echt iets wat je zelf zult moeten doen. Iets wat je ook in de FAQ had kunnen lezen. Zie ook: P&W FAQ - Leer **** debuggen!!

Waarom ik zo'n aansteller lijk is omdat ik niet echt terug zie dat je zelf ook wat hebt geprobeerd en gedaan. Je geeft die informatie ook nauwelijks en we moeten er om blijven vragen.

Vandaar dat ik nu je topic alsnog dicht doe.
Mocht je het er echt niet mee eens zijn, of hierover door willen praten dan vraag ik je niet een nieuw topic te openen hier maar me te mailen op creepy apeding tweakers punt net.

Uiteraard kan je hier prima een topic openen als je met een programeer probleem zit :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.