VB Ansteuerung für Ausgangserweiterung für den COM-Port

Gast #2926833
Lesenswert?

Hallo an alle,

ich weiß, dass es zu diesem Thema schon viele Beiträge hier im Forum 
gibt, aber keines diese Beiträge hat mich an mein Ziel geführt!
Ich möchte die Ansteuerung für den COM-Port von Skilltronics 
http://www.skilltronics.de/versuch/elektronik_pc/4094.html mit VB 
ansteuern! Nur irgendwie habe ich das ungute Gefühl, dass es noch nicht 
wirklich jemandem gelungen ist den 4094 über den COM Port mittels VB 
anzusteuern.

Ich habe die Schaltung mit einem 4094 (8 Ausgänge) auf einer 
Lochrasterplatte zusammengelötet und mit dem Q-Basik-Programm 4094.exe 
von Skilltronnics erfolgreicht getestet.

Ich möchte diese Schaltung für mein Modellbahnprojekt als Steuerung 
einstetzen. Die Steuerungslogik möchte ich mit VB (6/2008) 
programmieren, da mir das Programmieren mit VB sehr leicht fällt.

Ist es irgendjemandem schon einmal gelungen den 4094 über die 
COM-Schnittstelle mit VB anzusteuern? Mir würde ein kurzer Denkanstoss 
zu ansteuerung eines Ausgangs reichen! Den Port öffnen und schliessen 
ist ja kein Problem; aber das setzten der Ausgänge der COM-Schnittstelle 
und in welcher Reihnfolge bereitet mir Schwierigkeiten!

Kann mir jemand weiterhelfen?

Danke im voraus!

Mit freundlichen Grüßen

Tino
Gast #2927223
Lesenswert?

Hallo und Danke für die schnelle Antwort,

das mit dem TxD habe ich schon gelesen 
Beitrag "VB-Programm zur seriellen Ansteuerung von 4094 gesucht"

Also müsste die Anschlussbelegung:

TxD   Strobe
DTR   Date
RTs   Clock

so aussehen anstatt

RTs   Strobe
TxD   Daten
DTR   Clock ???

Das werde ich heute umlöten.
Mit der Geschwindigkeit mache ich mir keine Sorgen, da die Schaltung von 
einer "echten" COM Schnittstelle angesprochen wird.

Nur wie gehe ich dann an die Ansteuerung mit VB-Net (bevorzugt) ran?

SerialPort1.DtrEnabelt =TRUE/FALSE
SerialPort1.RtsEnabelt =TRUE/FALSE ??? ..usw.

Was muß ich mit: SerialPort1.Write(...) übergeben und in welchem Format 
(Int, Chr, Byte...) damit ich beispilsweiße den ersten Ausgang schalten 
kann?

Ich brauche nur diese kleine Starthilfe! Den Rest bekomme ich dann 
selbst hin!

Wenn die Ausgabe über den 4094 mit VB funktioniert, werde ich einmal 
mehrere IC's kaskatieren und danach versuchen mit dem 4021 die ersten 
Eingänge (Gleisbesetztmelder, Weichenlagenmelder) zurückzulesen!

Bin schon sehr gespannt ob das alles so funktioniert wie ich es mir 
vorstelle!

Danke erst mal für die hilfe!

Gruß Tino
Gast #2927239
Lesenswert?

> Wenn ein FT232R verwendet wird, lassen sich hingegen die DLL-Funktionen
> von FTDI nutzen, und dann wird das Bitbanging hingegen deutlich
> schneller als irgendein Gefrickel mit der seriellen Schnittstelle.

Keine schlechte Idee! Darüber habe ich sogar ein Buch! Mit SUB Messen, 
Regeln und Steuern!

Was mir nur noch unklar ist, in welcher Abfolge muss ich die Eingänge 
des 4094 schalten damit am zbs zweiten Ausgang ein Signal anliegt? Den 
Rest bekomme ich selber hin.

Gruss Tino
Gast #2927841
Lesenswert?

Hallo Leute,

ich habe die Lösung gefunden!

1.Anschlussbelegung geändert auf:

TxD   Strobe
DTR   Date
RTs   Clock

2.Vb-Programm COM-Schnittstelle einfügen, konfigurieren und COM öffen

3.Es müssen immer 8-Bit pro 4094 pro ausgabe geschrieben werden. Das 
heißt also bei zwei 4094 muß ich für eine Ausgabe an der Hardware 16 Bit 
in die Schaltung schicken.

Wenn ich zum Beispiel bei nur einem 4096 LED 2 leuchten lassen möchte, 
muß ich Bit 2 auf HIGH setzen. Was im Programm so viel bedeutet wie 
Schleife von 1 bis 8 (8 Bit) und bei Schleifendurchlauf 2 (Bit 2) DTR 
auf High und wieder auf LOW! Fertig!!!

Wird in der Schleife kein Bit gesetzt, gehen alle LED's aus!!

Dim Z, i As Integer
Z = 2

  For i = 1 To 8
    SerialPort1.DtrEnable = False
    If i = Z Then
      SerialPort1.DtrEnable = True
    End If
    SerialPort1.RtsEnable = True
    SerialPort1.RtsEnable = False
  Next

  SerialPort1.BreakState = True
  SerialPort1.BreakState = False

Jetzt kann ich mich an das einlesen der Bits mit dem 4021 machen!

Gruß Tino

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren