www.mikrocontroller.net

Forum: PC-Programmierung Serielle Schnittstelle - DTR mit Visual Basic 2005 ansteuern


Autor: Olaf Rechtner (gruser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte den Pin DTR der seriellen Schnittstelle direkt per Visual 
Basic 2005 ansprechen. Hat jemand Ideen wie es - möglichst ohne 
irgendwelcher DLL-Dateien - gehen könnte? Habe es per SerialPort 
probiert, hier gibt es aber nur ein Enable im Rahmen der Übertragung 
(com1.DtrEnable), keine direkte Ansteuerung. Vielen Dank für Tipps.

Autor: T.Danielzik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Olaf,

unter VB6 gab es das MSComm.OCX, das müsste es eigentlich auch
unter VB2005 geben. Dort kann man alle Parameter der seriellen
Schnittstelle einstellen (Port, Baudreate, DTR, RTS, DSR ...)

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nur das man das von Kleinweich extra kaufen sollte :-(, war zumindest 
bei der Einsteiger/Studentenversion nicht dabei.
Gibt zum Glück Alternativen, XMComm.ocx.

Autor: Olaf Rechtner (gruser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm wäre eine unschöne Lösung, auch fremder Kram den man nicht wirklich 
verstehen muss. Habe hier etwas gefunden (-> 
http://www.c-plusplus.de/forum/viewtopic-var-t-is-39047.html) , kann man 
vielleicht auch C-Code in VB 2005 einfügen?

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SerialPort0.DtrEnable = False       'bit  auf minus
SerialPort0.RtsEnable = False       'bit  auf minus
SerialPort0.DtrEnable = True      'bit  auf plus
SerialPort0.RtsEnable = true       'bit  auf plus

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Olaf Rechtner (gruser)

weitere inf :nachfragen.

Autor: Olaf Rechtner (gruser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo juppi,
schönen Dank für deine Nachricht. Hatte es mit dem DtrEnable schon 
einmal probiert, aber ohne Erfolg. Das DtrEnable sorgt offensichtlich 
nur dafür, dass bei einer Datenübertragung dieser Kanal entsprechend 
automatisch geschaltet wird oder nicht. Allerdings kann man DTR damit 
wohl nicht direkt schalten, bei mir zumindest hat sich beim Voltmeter 
nichts getan.
Grüße
Olaf

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Olaf Rechtner (gruser)


Beitrag "Re: VB-Programm zur seriellen Ansteuerung von 4094 gesucht"

das hilft bestimmt weiter.

Bei mir geht es doch auch.

Was möchtest du denn erreichen?

Autor: Olaf Rechtner (gruser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe vor per RS485 von einem PC aus mehrere Module (mit 
PIC-Prozessoren) anzusteuern, im Halb-Duplex, sprich mit 2 
Datenleitungen (A, B). Um hier von Empfangen auf Senden umzuschalten, 
brauche ich einen schaltbaren Ausgang (DTR oder RTS). Ich hatte 
eigentlich erwartet, dass das die SerialPort-Komponente leisten könnte, 
aber mit com1.DtrEnable = True klappt es leider nicht. Bei meiner Lösung 
möchte ich ganz gerne auf Sachen Dritter wie z.B. die Port.dll 
verzichten, es muss doch etwas passendes geben aus dem Hause Microsoft 
;(

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Olaf Rechtner (gruser)
Probiere das prog , ist Quellcod.

Autor: Olaf Rechtner (gruser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du meinst das Gleisprogramm? Aber hier wird auch nur die Enable-Funktion 
des SerialPorts verwendet (z.B. SerialPort0.DtrEnable = False). Damit 
schalte ich den Port meines Erachtens nicht um - zumindest zeigt mein 
Voltmeter nix an. Habe auch noch einmal einen simplen Schaltknopf 
programmiert und folgende Prozedur damit verknüpft:

Public Sub CommandDTR(ByVal State As boolean)

  'DTR Leitung schalten
  ComPort.DtrEnable = State

End Sub

Wenn der Wert "State" eine 1 hat, müsste mein Voltmeter -12V anzeigen, 
bei einer 0 müsste es +12V anzeigen. Klappt aber nicht. Mir ist 
allerdings noch nicht wirklich klar welche Funktion dieses Enable hat. 
Vielleicht kannst du mir ja ein wenig auf die Sprünge helfen ;o)

Besten Dank, Olaf

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Olaf Rechtner (gruser)

Deine com ist aber o.k.?
es müßte funktionieren!
hast du sie geöffnet?

Werde mal nächste Woche ein Miniprog machen,ist eine kleine Übung.

Bin jetzt nicht zu Hause und der Pc hat hier keine Com.

Autor: komm-Com (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Frage an die Com-Experten: Mit wieviel mA lassen sich diese 
Steuerleitungen belasten?
Kann man die für die Versorgung externer Elektronik missbrauchen?

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@komm-Com (Gast)

früher 10mA
ich rechne mit max 3- 5 mA
hat bis jetzt funktioniert.

Autor: komm-Com (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, juppi!

Autor: Olaf Rechtner (gruser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Juppi das wäre eine prima Sache mit dem kleinen Programm. Einen bzw. 2 
Software-Buttons mit dem man DTR ein- und ausschalten kann. Bei mir 
klappt es nicht, obwohl ich vorher die Schnittstelle sauber geöffnet 
habe und diese auch ansonsten ansprechen kann.

Vielen Dank schon vorab für deine Hilfe!

Autor: Daniel F. (df311)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
        private void button1_Click(object sender, EventArgs e)
            {
            serialPort1.Open();
            serialPort1.DtrEnable = true;
            }

        private void button2_Click(object sender, EventArgs e)
            {
            serialPort1.DtrEnable = false;
            serialPort1.Close();
            }

die applikation bestand nur aus dem "standardformular" mit zwei buttons 
und einem serialport-objekt.
mein oszi sagt mir, dass die zeilen funktionieren (open/close weglassen 
habe ich nicht probiert).

VS08 express, C#
vb habe ich nicht installiert, aber da bei .net verwenden dürfte das 
kein problem sein.

Autor: Olaf Rechtner (gruser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Daniel!

Schönen Dank für deine Hilfe - mir ist aufgefallen dass ich die 
Schnittstelle viel zu schnell wieder geschlossen habe, deswegen konnte 
ich nichts messen mit dem Voltmeter. Dann geht es also doch mit dem 
DtrEnable ;o)

Auch an Juppi noch einmal vielen Dank für deine Geduld.

Grüße
Olaf

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.