Gemeinsame QuickBasic-Kommunikationsanschluss Probleme lösen

Veralteter Haftungsausschluss für KB-Inhalte

Dieser Artikel wurde für Produkte geschrieben, für die Microsoft keinen Support mehr anbietet. Deshalb wird dieser Artikel im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.

Zusammenfassung

Dieser Artikel enthält Hinweise zur Fehlerbehebung für serielle Kommunikation in Microsoft QuickBasic, Version 4.0, 4.0 und 4.5, Microsoft Basic Compiler-Versionen 6.0 und 6.0 für MS-DOS und MS OS/2 b und in Microsoft Basic Professional Development System (PDS) Versionen 7.0 und 7.1 verwenden.


Dieser Artikel enthält ein Beispiel für offene COM, die korrekt funktionieren sollte. Zusätzliche Hinweise zur Problembehandlung Kommunikation sind ebenfalls angegeben. Verwandte Artikel finden Sie in folgendem Artikel der Microsoft Knowledge Base:
39386 Fehler Meldung Erläuterung Verwendung COM1: und COM2:

Weitere Informationen

Wenn Sie Probleme mit "COM1:" oder "COM2:", Öffnen Folgendes, wodurch Basic tolerant möglichst Hardwareprobleme versuchen:
ÖFFNEN "COM1:300, N, 8, 1, BIN CD0 CS0, DS0, OP0, RS, TB2048, RB2048" # 1
(Dieses ist für RAM.) Im folgenden finden eine Erläuterung der einzelnen empfohlene Parameter OPEN-Anweisung verwendet:


  1. Je höher die Baudrate, steigt die Gefahr für Probleme. Daher dürfte 300 Baud Probleme geben. 2400 Baud ist die höchste Geschwindigkeit über die meisten Telefonleitungen aufgrund ihrer eingeschränkten Hochfrequenz-Funktion. 19.200 Baud, erfordert eine direkte Leitung Verbindung ist wahrscheinlich zu Problemen führen. (Mögliche für QuickBasic Baudraten 75, 110, 150, 300, 600, 1200, 1800, 2400, 4800 9600 und 19.200.)
  2. Parität hilft normalerweise erheblich nicht; aus diesem Grund sollten Sie keine Parität (N).


    Für diese Geräte, die Parität erfordern, verwenden Sie die PE-Option (Parität aktivieren) in der Anweisung OPEN COM zu Parität überprüfen aktivieren. Wenn PE-Option aktiviert die Parität überprüfen, tritt "Gerät e/a-Fehler" haben die beiden kommunizierenden Programme zwei unterschiedliche Wechselkurse. (Parität kann gerade, ungerade, keine Leerzeichen oder Zeichen). "E/a-Gerätefehler" tritt beispielsweise auf, wenn zwei Programme versuchen, über eine serielle Leitung mit zwei verschiedenen offene COM Aussagen miteinander:
          OPEN "COM1:1200,O,7,2,PE" FOR RANDOM AS #1
    und
          OPEN "COM2:1200,E,7,2,PE" FOR RANDOM AS #2
    Wenn PE-Option aus der oben genannten offene COM entfernt wird, wird keine Fehlermeldung angezeigt.
  3. Im obigen Beispiel verwendet 8 Datenbits und 1 Stoppbit. Acht Datenbits erfordert keine Parität (N), weil die maximale Größe für Basic Communications Datenrahmen (10 Bits).
  4. LAGERPLATZ (binary-Modus) ist die Standardeinstellung. Hinweis: Die Option ASC unterstützt keine XON/XOFF-Protokoll und die XON und XOFF-Zeichen ohne besondere Behandlung übergeben.
  5. Häufig ignoriert Hardwarehandshaking behebt viele Probleme. So, wenn Ihre Anwendung keine Handshaking erforderlich, sollten Sie die folgende Hardware Zeile-Überprüfung deaktivieren:
    CD0 = schaltet aus Timeout für Datenträger erkennen (DCD) Zeile
    CS0 = schaltet aus Timeout für Zeile senden CTS (Clear To)
    DS0 = schaltet aus Timeout für Data Set Ready (DSR) Zeile
    OP0 = schaltet aus Timeout für eine erfolgreiche Öffnen
  6. RS unterdrückt Erkennung der Anforderung zu senden (RTS).
  7. Erhöhen Sie die Puffer-Probleme und erhalten Sie Puffergrößen über 512-Byte-Standard:
    TB2048 = der Übertragung Puffergröße auf 2048 Bytes erhöht
    RB2048 = der Puffergröße empfangen 2048 Bytes erhöht
    Ein größerer Empfangspuffer können Sie die Anweisung wie Farbe, die den Prozessor intensiv verwenden grundlegende Verzögerungen umgehen.
Es folgen weitere wichtige Hinweise zur Problembehandlung Kommunikation:


  1. Sie verwenden die INPUT$(x)-Funktion in Verbindung mit der LOC(n)-Funktion erhalten alle Eingaben aus dem Gerät (dabei steht "X" die Anzahl der Zeichen, LOC(n), der die Anzahl der Zeichen in der Eingabe Warteschlange gelesen werden. "n" wird die Dateinummer für öffnen "COM1:" oder "COM2:").


    Verwenden Sie die #n INPUT-Anweisung Eingaben von den Kommunikationsanschluss, da ein Wagenrücklaufzeichen (ASCII 13) Eingabe #n wartet.


    Verwenden der Anweisung GET #n Communications GET #n wartet, den Puffer zu füllen (und Pufferüberlauf könnte dann auftreten).


    Außerdem verwenden Sie die Anweisung PUT #n Kommunikation und #n PRINT-Anweisung verwenden. Beispielsweise sendet Anweisung in QuickBasic 4.0 und 4.5 in Basic Compiler 6.0 und 6.0 b und Basic PDS 7.0 und 7.1 mit PUT #n, X$ Syntax für eine Variable Zeichenfolge variabler Länge als drittes Argument der PUT #n Senden einer zusätzlichen 2 Byte mit der Länge der Zeichenfolge vor der eigentlichen Zeichenfolge. Diese Länge von 2 Bytes an den COM-Anschluss gesendet können die empfangende Anwendung verwirren, wenn es nicht, sie zu behandeln. Keine Längenbytes mit #n, x$ QuickBasic 4.0 gesendet. (QuickBasic Versionen nicht früher als 4.0 die Funktion eine Variable als drittes Argument der Anweisung PUT #n verwenden bieten.)
  2. Ein Beispiel für Daten finden Sie das TERMINAL. BAS-Beispielprogramm, das auf Datenträger freigeben für QuickBasic, Version 4.0, 4.0 und 4.5, Microsoft Basic Compiler-Versionen 6.0 und 6.0 b und Microsoft Basic Professional Development System (PDS) Versionen 7.0 und 7.1. Viele Kommunikationsprobleme möglicherweise ungeeignete Quelle Codedesign und Steuerungsablauf.
  3. Viele Kommunikationsprobleme können nur auf bestimmten Hardwarekonfigurationen angezeigt und schwer zu beheben oder auf anderen Computern duplizieren. Wir empfehlen eine direkte Verbindung (mit einer kurzen Nullmodemkabel) statt mit einem Telefon-Modem Link zwischen Absender und Empfänger auf eine bestimmte Konfiguration Probleme isolieren experimentieren.
  4. Die Verkabelung Schemas Kabel unterschiedlich. Die Pin Verdrahtung am Kabel. Bei direkten Verbindungen ist ein long oder hohe Widerstand Kabel eher Probleme als ein Kabel kurze, wenig Widerstand.
  5. Wenn "COM1:" und "COM2:" Offen "COM2:" zuerst verarbeitet. Bei hohen Übertragungsraten "COM1:" Zeichen können verloren gehen, wenn Prozessorzeit mit "COM2:".
  6. Bei COM-GOSUB-Anweisung kann anstelle die Funktion LOC(n) abrufen Kommunikation erkennen Eingaben manchmal verwenden timing oder Pufferung Probleme bei Basic. Bei Basic können von Speicherplatz für die Zeichenkette Garbagecollection, PAINT Anweisungen oder andere Vorgänge, die häufig den Prozessor verursacht werden.
  7. Stellen Sie sicher, dass die entsprechende Hardware Handshaking Zeilen (d. h. CS, DS, CD usw.) Basic überprüft werden. Deaktivieren diese Timeouts (Festlegen des entsprechenden Wert in der grundlegenden OPEN-Anweisung null) ist, zwar hilfreich für die Bestimmung der Zeilen für Ihre Hardware verwendet nicht berücksichtigen eine allgemeine Methode für serielle Kommunikation, da Hardwarehandshaking ignoriert die Möglichkeit eines Zeitsteuerungsproblems erhöhen, die zu einem Stillstand führen.
Viele kommerzielle Kommunikationen verwendet kann ausgeklügelte Techniken in Microsoft Basic nicht gefunden und eine bessere Leistung.


Wenn Sie Communications Leistung über Basic erhalten besser müssen, sollten Sie Microsoft C. versuchen (Sie können Microsoft C Routinen und Microsoft Basic Professional Development System (PDS) Versionen 7.0 und 7.1 Microsoft QuickBasic 4.0 und 4.0, und 4.5 von Microsoft Basic Compiler 6.0 6.0 b aufrufen.) Dies ist eine hervorragende Referenz:
"C-Programmierer serielle Kommunikation" von Joe Campbell Leitfaden Howard W. Sams & Company.
QuickBasic 3.0, 4.0, 4.0 und 4.5 Kommunikation durch direkte Interrupts IRQ3 und IRQ4 Eingabezeilen auf 8259-Controller-Chips (anstatt ROM BIOS-Interrupts) implementiert.


Das folgende Buch beschreibt eine hervorragende technische, Hardware-Ebene seriellen für IBM PC:
"8088 Assembler-Programmierung: IBM PC" Second Edition Willen & Krantz, veröffentlicht von Howard W. Sams & Co. (1983, 1984). Seiten 92-93 und Kapitel 7 (Seiten 166, 188).
Eigenschaften

Artikelnummer: 39342 – Letzte Überarbeitung: 16.01.2017 – Revision: 1

Feedback