Forum: PC-Programmierung Visual Basic 2008-Serielle Schnittstelle


von Maddin S. (schrank)


Lesenswert?

hallo!

Bin gerade dabei mich in Visual Basic 2008 Express Edition 
einzuarbeiten!
Was ich verzweifelt suche ist ein gutes Tutorial um die serielle 
Schnittstelle anzusteuern.

Könnt ihr mir da weiter helfen?


Vielen Dank!

von Karl H. (kbuchegg)


Lesenswert?

Na, viel Mühe hast du dir aber nicht gegeben.
Google findet immerhin 119000 Einträge zu
Visual Basic 2008 serielle Schnittstelle

Ich hab mir die ersten davon angesehen und die sehen eigentlich ganz 
brauchbar aus.

von vb (Gast)


Lesenswert?


von Maddin S. (schrank)


Lesenswert?

Vielen Dank für den Link!

Ein kleiner Versuch mich zu verteidigen (wenn das überhaupt nötig ist):

Wenn mann schnell eine Lösung braucht und man mit der gesamten Thematik 
noch nicht vertraut ist, sind die Ergebnisse von Google oft sehr 
verwirrent.
Man steht da vor einem riesigen Haufen vor Ergebnissen die erst mal 
selektiert werden wollen. Ohne Grundkenntnisse is das aber erstaunlich 
schwer.
Und ich denke, da ist doch diese Forum eigentlich genau richtig um etwas 
schneller brauchbare Ergebnisse zu bekommen, bzw. Hinweise die einem 
echt weiter helfen zu kriegen.

Insofern bin ich echt dankbar für diese Forum und bitte um etwas 
Nachsicht für diejenigen, die noch keine Freaks in den jeweiligen 
Bereichen sind!


Trotzdem: Nichts für ungut und vielen Dank!

von juppi (Gast)


Lesenswert?

jo
hast Recht,
Guggelmeister hat auch sehr viele Fehlinformationen,
das haben viele von den gestandenen Fachleuten vergessen.

von A. F. (artur-f) Benutzerseite


Lesenswert?

Die erste Seite bei solchen Problemen ist MSDN:
http://msdn.microsoft.com/de-de/library/bb979092.aspx

von Karl H. (kbuchegg)


Lesenswert?

juppi schrieb:

> Guggelmeister hat auch sehr viele Fehlinformationen,
> das haben viele von den gestandenen Fachleuten vergessen.

Richtig.
Drum schaun sich die 'Fachleute' ganz einfach mal die ersten paar Links 
die Google auswirft an. Und das Thema: serielle Schnittstelle unter C++, 
C#, VB6, VB.Net, Delphi, etc. ist ja dann auch ein Thema welches 
praktisch nie nachgefragt wird.

MSDN wurde ja schon angesprochen.
Auch immer wieder eine Fungrube: www.codeproject.com, www.codeguru.com

Auf die letzten beiden kommt man ganz automatisch, wenn man mal bei ein 
paar Problemen ein bischen googelt und unter den ersten 10 oder 20 Links 
immer wieder Verweise auf eine der beiden WebSites findet.

Manchmal frag ich mich schon, was ihr vor der flächendeckenden 
Einführung des Web gemacht hättet. Noch nie in der Menschheitsgeschichte 
war es so einfach, Informationen zu finden. Und das ganze, ohne dass man 
in Bibliotheken die Kataloge durchforstet, die 5 Treffer sich in den 
Regalen sucht und 1000-Seiten Wälzer in ein paar Stunden zumindest 
soweit überfliegt um festzustellen ob einen das gelesene weiterhelfen 
wird bzw. sich mit dem Bibliothekar rumstreitet ob er einem einen 
bestimmten Artikel organisiert oder nicht und ob das die Uni zahlt oder 
ob ich selbst in die Tasche greifen muss. Das Ganze ohne das 
Inhaltsverzeichnis der 3 oder 4 relevanten Magazine der letzten 3 Jahre 
im Kopf zu haben. Keiner braucht mehr abends die gängige Fachliteratur 
zu lesen um wenigstens aus den 10 wichtigsten Fachbüchern zum Thema zu 
wissen, was wo drinnen steht.

Jetzt ist es schon anrüchig, wenn man jemanden mit der Nase drauf stößt, 
dass er gefälligst seine Suchbegriffe in eine Suchmaschine eingeben und 
seine Suchfähigkeiten trainieren soll.

von juppi (Gast)


Lesenswert?

Hallo

Richtig...aber so war es nicht gemeint.

Manche gestandenen Fachleute haben die richtige Antwort genau so schnell 
parat, wie sie eine Antwort mit Links setzen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das mag schon sein, aber etwas mehr Selbständigkeit hat noch nie 
jemandem geschadet.

von juppi (Gast)


Lesenswert?

vergessen...

Ich suche eine Codschnipsel ,womit ich RI der Rs232
in VB.net abfragen kann.


Ich bemühe schon länger Goggelmeister und finde nichts.
Es werden immer nur Hinweise und Links geschickt welchen diesen Pin 
nicht abfragen können.
Das alles immer wieder zu testen ist sehr Zeitintensiv.

Danke

von Sven P. (Gast)


Lesenswert?

juppi schrieb:
> Das alles immer wieder zu testen ist sehr Zeitintensiv.
Falsche Berufswahl?

Such mal statt 'RI' nach 'Ring Indicator', da kriegste schonmal mehr.

von Sven P. (Gast)


Lesenswert?

Achso: http://michael-schwimmer.de/vba027.htm

Kann dir aber nicht sagen, inwieweit das der überwältigenden 
Kompatibilität der Windows-Versionen untereinander zum Opfer gefallen 
ist.

von juppi (Gast)


Lesenswert?

Hallo
@Sven P. (haku)
>Such mal statt 'RI' nach 'Ring Indicator', da kriegste schonmal mehr.

Diese Antwort ist ein gutes Beispiel wie ich es gemeint habe.

...außerdem wird die Suchzeit nur noch von meiner Lebenszeit begrenzt,
nicht vom Beruf.;-))

Gruß

von juppi (Gast)


Lesenswert?

Hallo Sven P. (haku)


Aus deinen Link.

Das Teil kommt mir bekannt vor,habe es kurz getestet(Quellcode)
sind etliche Fehler vorhanden.
Wenn man genau wüsste ob der Code läuft, könnte man sich an die 
Fehlersuche machen.


3 Ausgaben und 3 Abfragen mache ich einfacher .

Trotzdem Danke und Gruß

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ca. 30 Sekunden Suche mit Google spucken das hier aus:

http://www.codeworks.it/net/VBNetRs232.htm

Der dort enthaltene Code enthält eine Eigenschaft (Property) 
ModemStatus, die als Bitfeld den Status verschiedener Handshakeleitungen 
zurückliefert.

Diese sind als Enum ModemStatusBits definiert, und eines davon heißt 
RingIndicatorOn.

Betrachtet man den Code, erkennt man, daß eine Funktion namens 
GetCommModemStatus verwendet wird.

Und das ist eine Win32-API-Funktion, die genau das tut, was "juppi" 
trotz vielem Gegoogele nicht gefunden haben will.

http://msdn.microsoft.com/en-us/library/aa363258(VS.85).aspx

von juppi (Gast)


Lesenswert?

Hallo Rufus

Das nützt mir wieder nichts,habe das alles schon auf dem Schirm gehabt.
..außerdem kann ich kein Wort Englisch.

das RI Ereignis kann ich in VB.Net einbinden,nicht aber die Abfrage.
Das es aber gehen muß,sehe ich an einen Programm wo alle 4 Eingänge 
abgefragt werden können.

Es ist nur eigenartig das sehr Viele die RI Abfrage suchen ,
es aber keinen funktionsfähigen Code gibt.

>Ca. 30 Sekunden Suche mit Google spucken das hier aus:

...Überheblichkeit sollte also nicht Lehrer oder?

Gruß

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Die von mir erwähnte Funktion fragt ab. Da geht es nicht um das 
Ring-Ereignis.

Was also willst Du?

> ..außerdem kann ich kein Wort Englisch.

Dann lern' es.

von Alex W. (a20q90)


Lesenswert?

Maddin Sche schrieb:
> hallo!
>
> Bin gerade dabei mich in Visual Basic 2008 Express Edition
> einzuarbeiten!
> Was ich verzweifelt suche ist ein gutes Tutorial um die serielle
> Schnittstelle anzusteuern.
>
> Könnt ihr mir da weiter helfen?
>
>
> Vielen Dank!

Du ziehst einfach die serielle Schnittstelle "SerialPort" von links aus 
der Toolbox rüber zu Deinem Form1-Fenster.

von juppi (Gast)


Lesenswert?

Hallo Rufus

>Die von mir erwähnte Funktion fragt ab. Da geht es nicht um das
>Ring-Ereignis.

Ist eben für mich nicht nachvollziehbar.

>Was also willst Du?

RI  Abfrage ,  habe ich immer deutlich gemacht.

>> ..außerdem kann ich kein Wort Englisch.

>Dann lern' es.

Damit ich meinen Sarg in englisch bestellen kann?

@Alex W. (a20q90)
>Du ziehst einfach die serielle Schnittstelle "SerialPort" von links aus
>der Toolbox rüber zu Deinem Form1-Fenster.

Das ist dem Fragesteller bestimmt bekannt,aber es reicht noch nicht.

MfG

von Sven P. (Gast)


Lesenswert?

juppi schrieb:
> Das Teil kommt mir bekannt vor,habe es kurz getestet(Quellcode)
> sind etliche Fehler vorhanden.
Jo, sowas kommt vor. Merkste was?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Ist eben für mich nicht nachvollziehbar.

Mit dieser Funktion erhält man einen Wert. Dieser Wert setzt sich aus 
verschiedenen Bits zusammen, die jeweils den Zustand einer der 
Handshakeleitung wiedergeben. Das für RI zuständige Bit gibt folglich 
den Zustand der Leitung RI wieder.

Um also herauszufinden, wie der Zustand von RI aussieht, muss die 
Funktion aufgerufen werden und im ermittelten Wert das für RI zuständige 
Bit geprüft werden.

Was ist daran nicht nachvollziehbar?

von juppi (Gast)


Lesenswert?

Hallo Rufus

Was du aufzeigst ist mir bekannt.

Da ich keine Englischkenntnisse besitze kommt es sehr oft vor das ich
auf diesen Seiten wichtige Hinweise oder Links nicht erkenne.

Bei deinen Link habe ich gesehen das nur Com1+2 behandelt wurde
TxD nicht Statisch ausgegeben wird und die Abfragen nicht direkt 
angezeigt werden.

Gestern habe ich weiter gesucht und das VB.Net Programm Runtergeladen.
Leider konnte ich das Prog nicht öffnen.
Da ich bei dir von  einer ernsthaften Unterstützung überzeugt bin,
wenn du Diese  bei MIR auch immer eigenartig verpackst.

Bei vielen Anderen, welche nur Links schicken ,auch wenn bekannt ist das 
vieles nicht läuft, suche ich natürlich nicht so intensiv.

Habe weitere Versuche unternommen und jetzt klappt es erst einmal.

Habe zusätzliche COMs eingefügt und eine direkte Abfragenanzeige mit 
Timer.Es geht auch ohne Timer wenn ich die Ereignisse auswerte und dann
abfrage.

Statische Ausgabe von TxD funktioniert noch nicht.
Werde versuchen die wichtigsten Funktionen in mein Programm zu 
übernehmen.
(eigentlich nur RI)


@Maddin Sche (schrank)

Hallo maddin
Das Prog beinhaltet bestimmt alles für dich.(Änderungen Inklusive)
Automatisches suchen der COMs und Wahl muß ich noch einbinden.


P.S.
Darf das Programm verändert weitergegeben werden.

Grüße und Danke

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Statische Ausgabe von TxD funktioniert noch nicht.

Davon war bis jetzt auch nie die Rede. Was genau meinst Du damit? Willst 
Du "bit-banging" mit dieser Leitung betreiben?

von juppi (Gast)


Lesenswert?

Hallo Rufus

Ja!

Bei mir kann ich alle 3 Ausgaben Setzten bzw. Rücksetzen.

3 Abfragen   RI noch nicht ,wird aber.

Ich selbst mache mit Bitwacken kaum noch etwas.
Wer sich aber nicht mit Controllern beschäftigen will,
kann mit dieser Metode sehr schnell Hardwareexperimente machen.

z.B. Alte Hardware der 80/90 und höher ansteuern, natürlich auch 
abfragen.

Wenn das erst einmal gemacht wurde,steigen die welche dabei bleiben
auf echte Rs232 Ansteuerung  um.

Dies sind meine Erfahrungen,da ich seit ca.85 dies auch gemacht habe.

Gruß

von Martin Sche (Gast)


Lesenswert?

@Alex W. (a20q90)
>Du ziehst einfach die serielle Schnittstelle "SerialPort" von links aus
>der Toolbox rüber zu Deinem Form1-Fenster.

Das war mir schon bewusst, ja.

Die Frage ist nun, wie sende und empfange ich Daten. Folgende 
Codeschnipsel hab ich gefunden (kann sie noch nicht Probieren, Serieles 
kabel noch nicht eingetroffen):
1
     SerialPort1.Open() 'öffnet den Port (Paramter wurden vorher schon eingestellt)
2
     SerialPort1.Write("Hallo") 'senden müsste so einfach gehn 
3
     Dim buffer(20) As Char   'dort wird hingeschrieben, hier 20 Einträge
4
     Dim offset As Integer = 0 'Startindex für das Array
5
     Dim count As Integer = 20 'Anzahl der Werte die gelesn werden sollen
6
7
     SerialPort1.Read(buffer, offset, count) 'so schon richtig??
Das ist kein vollständiger Code, wie gesagt nur Schnipsel 
aneinandergreiht.
Kann ich diese Funktionen so schon verwenden?
Wenn ja, wars ja eigentlich mehr als einfach....wenn....

von Severino R. (severino)


Lesenswert?

Martin Sche schrieb:
> Kann ich diese Funktionen so schon verwenden?
> Wenn ja, wars ja eigentlich mehr als einfach....wenn....

Warum suchst Du denn die Wenn und Aber? Versuch's doch einfach mal.
Und wenn das Lesen mit SerialPort1.Read() für Dich nicht optimal ist, 
schau mal in der MSDN nach, welche anderen Methoden SerialPort sonst 
noch bietet.

von Blackbird (Gast)


Lesenswert?

Im anderen Thread hier ("Terminal in Visual Basic?") im Forum gefunden: 
http://www.vbarchiv.net/tipps/details.php?id=393

Unter "With MSComm ..."
noch das hier einfügen:

  .RThreshold = 1
  .SThreshold = 0
  .InputLen = 1
  .EOFEnable = False

und schon geht es.

Blackbird

von Severino R. (severino)


Lesenswert?

Blackbird schrieb:
> Im anderen Thread hier ("Terminal in Visual Basic?") im Forum gefunden:
> http://www.vbarchiv.net/tipps/details.php?id=393

Dort geht es aber um VB5 resp. 6, während Maddin Sche (schrank) hier von 
VB2008 spricht. Das ist gar nicht dasselbe, da ab VB2005 in .NET eine 
SerialPort Klasse enthalten ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.