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.
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 ...)
nur das man das von Kleinweich extra kaufen sollte :-(, war zumindest bei der Einsteiger/Studentenversion nicht dabei. Gibt zum Glück Alternativen, XMComm.ocx.
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?
SerialPort0.DtrEnable = False 'bit auf minus SerialPort0.RtsEnable = False 'bit auf minus SerialPort0.DtrEnable = True 'bit auf plus SerialPort0.RtsEnable = true 'bit auf plus
@Olaf Rechtner (gruser) weitere inf :nachfragen.
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
@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?
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 ;(
@Olaf Rechtner (gruser) Probiere das prog , ist Quellcod.
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
@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.
Eine Frage an die Com-Experten: Mit wieviel mA lassen sich diese Steuerleitungen belasten? Kann man die für die Versorgung externer Elektronik missbrauchen?
@komm-Com (Gast) früher 10mA ich rechne mit max 3- 5 mA hat bis jetzt funktioniert.
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!
1 | private void button1_Click(object sender, EventArgs e) |
2 | { |
3 | serialPort1.Open(); |
4 | serialPort1.DtrEnable = true; |
5 | } |
6 | |
7 | private void button2_Click(object sender, EventArgs e) |
8 | { |
9 | serialPort1.DtrEnable = false; |
10 | serialPort1.Close(); |
11 | } |
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.