Forum: PC-Programmierung VB Ansteuerung für Ausgangserweiterung für den COM-Port


von Tino (Gast)


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

von Juppi J. (juppiii)


Lesenswert?

Hallo
http://www.skilltronics.de/versuch/elektronik_pc/4094.html
Nimm aber TxD als Strobe.

Wenn du mit .Net ein Prog machst und einen USB to Rs232 anschließen
mußt,wir es aber Saulangsam.

Du kannst gleichzeitig auch ein 4021 in den Pc einlesen.
Ist eigentlich kein Problem.


Gruß

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Juppi J. schrieb:
> Wenn du mit .Net ein Prog machst und einen USB to Rs232 anschließen
> mußt,wir es aber Saulangsam.

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.

von Juppi J. (juppiii)


Lesenswert?

Da hast du recht,er wollte aber direkt ansteuern!

von Tino (Gast)


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

von Tino (Gast)


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

von Juppi J. (juppiii)


Lesenswert?


von Tino (Gast)


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

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.