Erstellen Sie einen virtuellen COM-Port - Softwarelösung von Eltima


Virtuelle serielle Anschlüsse sind von wesentlicher Bedeutung, wenn ältere Softwareprogramme Verbindungen zu COM-Anschlüssen herstellen müssen, die aufgrund von fehlenden physischen seriellen Anschlüssen nicht mit der Software an den Computer angeschlossen werden können. Das Gerät kann serielle Daten auch über Internet oder LAN über TCP/IP-Verbindung an die App senden, unabhängig davon, wie weit sie voneinander entfernt sind.

In diesem Artikel finden Sie ein kurzes Tutorial für den Emulator für virtuelle serielle Ports, in dem Sie erfahren, wie Sie virtuelle serielle Schnittstellen in Ihrem Computer mithilfe einer einfachen, aber dennoch effizienten Treibersoftware für den virtuellen Port erstellen. Und ich hoffe, dass Sie mit den Informationen in diesem Artikel die traditionellen Testmethoden und das Debugging von seriellen Apps voraus sind.

Inhalt


  1. Über die COM-Schnittstelle und die serielle Kommunikation
  2. Wozu dient ein virtueller COM-Port?
  3. Wie erstelle ich einen virtuellen seriellen Port?
  4. Wie verwendet man virtuelle COM-Ports zum Testen und Diagnostizieren?
  5. Verwendung von VSPD mit Programmiersprachen

Virtual COM Port Driver von Eltima Software können Sie eine unbegrenzte Anzahl von seriellen Portpaaren erstellen, die über ein virtuelles Nullmodemkabel verbunden sind.
VSPD logo

Virtual Serial Port Driver

Erstellen Sie virtuelle COM-Port-Paare in Windows
5 Rang basierend auf 86+ Nutzer, Bewertungen(97)
Herunterladen 14 Tage voll funktionale Testversion
Virtual Serial Port Driver

Über die COM-Schnittstelle und die serielle Kommunikation


Was ist eine serielle Kommunikation? Wenn Sie mich vor einem Jahrzehnt gefragt hätten, würde ich sagen, dass dies eine der beliebtesten Arten war, verschiedene Geräte und Geräte an einen Computer anzuschließen. Heute ist der COM-Port jedoch nicht mehr so üblich wie früher. Auch wenn ein guter alter Kommunikationsport bis zu einem gewissen Grad durch eine USB-Schnittstelle ersetzt wurde, verwenden Tausende von modernen industriellen Geräten, Laborgeräten, medizinischen Geräten usw. immer noch RS-232 als Standard-Eingangs-/Ausgangsport.

Bei einer seriellen Kommunikation werden die Datenbits in einer bestimmten Reihenfolge organisiert und nacheinander über ein serielles Kabel transportiert, wodurch die Datenintegrität gewährleistet wird. Einige andere Vorteile dieser Verbindungsart sind die einfache Verdrahtung und die zuverlässige Datenübertragung bei Verbindungen über große Entfernungen.

Trotz der vielen Vorteile, die serielle Schnittstellen bieten, wurde die Auslieferung neuer PCs mit einer RS-232-Schnittstelle eingestellt. Dies verursacht große Unannehmlichkeiten, wenn es darum geht Testen und Debuggen von seriell-basierter Software, Verwendung älterer serieller Apps usw.

Wozu dient ein virtueller COM-Port?


Beim Testen oder Debuggen von seriellen Anwendungen oder Treibern stehen Entwickler möglicherweise vor einer Herausforderung, wenn das Gerät oder das Programm die Verbindung zu einem COM-Port erwartet. Dies scheint jedoch aufgrund des physischen Mangels an verfügbaren seriellen Ports auf dem Computer nicht möglich.

In diesem Fall besteht die bestmögliche Option darin, einen virtuellen seriellen Port zu erstellen, der die Konfiguration und Einstellungen eines echten COM-Ports vollständig emuliert und die Daten mit anderen virtuellen oder realen Schnittstellen über a kommuniziert virtuelles Nullmodemkabel.

Einer der unbestreitbaren Vorteile von virtuellen COM-Ports bleibt die Geschwindigkeit des Datenaustauschs. Wenn die Daten über einen virtuellen Port übertragen werden, ist die Geschwindigkeit nicht durch die Eigenschaften der Schnittstelle (wie bei physischen Ports) begrenzt, sondern nur durch die Systemparameter. Dadurch wird der Verkehr wesentlich schneller transportiert.

Wie erstellt man virtuelle serielle Schnittstelle und verwendet?


Die meisten Computer verfügen nicht mehr über DB9-Anschlüsse, über die sie direkt mit industrieller oder kommerzieller Hardware verbunden wurden. Sie können jedoch jetzt einen virtuellen COM-Port erstellen und damit Daten über das Netzwerk übertragen. Der virtuelle COM-Port hilft, Zeit zu sparen und die Kosten zu senken, indem unveränderte ältere Software verwendet wird.

Wenn Sie sich also fragen, wie Sie einen virtuellen seriellen Port erstellen und in einer beliebigen Entfernung verwenden können, erstellen Sie mithilfe der Virtual Serial Port Driver-App virtuelle serielle Portpaare, die über ein virtuelles Nullmodemkabel verbunden sind. Wenn Sie nach einer Lösung zum Hinzufügen eines COM-Ports in Windows 10 suchen, hilft unser Lernprogramm bei der Behebung von Windows 10-COM-Port-Problemen mit zwei Methoden.

Virtual Serial Port Driver

Befolgen Sie die Schritte, um ein virtuelles serielles Portpaar zu erstellen:


  1. Öffnen Sie das Hauptfenster der App und wechseln Sie zur Registerkarte "Ports verwalten".

  2. Wählen Sie die Ports aus der Liste aus oder geben Sie deren Namen manuell ein. Mit den Namen haben Sie unbegrenzte Möglichkeiten, Ihre Ports nach Ihren Wünschen zu benennen. Behalten Sie jedoch die Apps im Auge, die möglicherweise keine benutzerdefinierten Namen für Ports unterstützen. Für RDP-Sitzungen ist es sinnvoll, die Option "Ports nur für diese Benutzersitzung erstellen" zu verwenden, damit die nächste Sitzung dieselben Namen zulässt.

  3. Klicken Sie auf die Schaltfläche "Paar hinzufügen", und Sie haben die virtuellen COM-Anschlüsse bereit.

  4. Wiederholen Sie die obigen Schritte so oft wie nötig, um die erforderliche Anzahl von Ports zu erstellen.

Die Vorteile von Virtual Serial Port von Eltima


  • Mit einem Treiber für den virtuellen seriellen Port müssen Sie eine unbegrenzte Anzahl von virtuellen COM-Port-Paaren hinzufügen, die über ein virtuelles Nullmodemkabel verbunden sind. Darüber hinaus bietet die Software die Möglichkeit, alle erstellten Paare mit einem Klick zu entfernen.

  • Einmal erstellte und konfigurierte virtuelle serielle Ports werden beim Systemneustart vor der Benutzeranmeldung automatisch neu erstellt. Sie müssen auch keine Ports schließen, wenn Sie die Einstellungen für virtuelle Paare ändern oder ein Paar vollständig löschen müssen.

  • Mit der App können Sie nicht nur virtuelle COM-Ports erstellen, sondern ihnen beliebige Namen geben, einschließlich der Namen, die bereits von den vorhandenen physischen Ports verwendet werden. Benutzer können leicht eine erforderliche virtuelle Schnittstelle in der Gruppe "Ports" des Geräte-Managers finden.

  • Die Softwaretreiber haben die Microsoft Windows-Hardware-Quality-Labs (WHQL) erfolgreich bestanden und werden von Microsoft digital signiert. Das bedeutet, dass beim Erstellen von virtuellen COM-Ports unter Windows 10, Windows Server 16, Windows XP usw. keine Warnungen angezeigt werden.

  • Der Virtual Serial Port Driver unterstützt Standard-Hardwaresignalleitungen einschließlich DTR/DSR/CTS/RTS/DCD/RI usw. und Software-Flusskontrolle (Xon/Xoff) vollständig.

  • Die Nullmodem-Emulation ist ein weiterer Vorteil, den Sie mit diesem Dienstprogramm erhalten. Virtual Serial Port Driver ermöglicht die Emulation einer virtuellen seriellen Leitungsverbindung und deren Unterbrechung. Außerdem bietet die Software verschiedene virtuelle Nullmodem-Schemata, die als Vorlage gespeichert werden können.

  • Virtual Serial Port Driver wird mit vspdctl.dll geliefert, mit dem Sie die Funktionalität direkt von Ihrer eigenen Anwendung aus steuern können. Wenn Sie diese Dynamic Link Library verwenden, können Sie virtuelle COM-Port-Paare im Handumdrehen erstellen und löschen, ohne dass Sie sich auf das Standardkonfigurationsprogramm und dessen GUI verlassen müssen.

Virtuelle serielle Anschlüsse zum Testen und Diagnostizieren?


Serienport-Emulation


Das Verfahren zum Testen und Diagnostizieren von Software unter Verwendung virtueller Geräte ist heute bei den Entwicklern der Software für Kommunikationssysteme weit verbreitet. Ein virtuelles Gerät simuliert das Verhalten eines realen Geräts auf Softwareebene, sodass ein Programmierer eine Anwendung in der Entwicklungsphase testen und debuggen kann.

Die Methode der seriellen Port-Emulation wird bei der Entwicklung der komplexesten Kommunikationssysteme, einschließlich Geräten mit RS232- und RS485-Schnittstelle, breit angewendet. Derzeit gibt es eine Vielzahl von Softwaretools, mit denen mehrere virtuelle serielle Ports in Betriebssystemen (vorwiegend Windows-Betriebssystem) erstellt werden können. Mit Hilfe weiterer virtueller COM-Ports können Entwickler den Datenaustausch zwischen RS232- und RS485-Schnittstellen testen. Der Virtual Serial Port Emulator scheint das leistungsfähigste derzeit verfügbare Programm zu sein, wenn es um erweiterte Funktionen und Benutzerfreundlichkeit geht. Die Lösung ist vollständig mit verschiedenen Versionen von Windows-Betriebssystemen kompatibel. Darüber hinaus ist der Emulator für den seriellen Port für Windows 10 mit WHQL digital signiert, was seine Leistung und Stabilität garantiert.

Grundprinzipien der Emulation serieller Ports


1. Ein großer Vorteil der virtuellen seriellen Schnittstellen besteht darin, dass sie zum Testen und Debuggen von Software verwendet werden können, wenn im System kein physischer COM-Anschluss verfügbar ist.

Um beispielsweise ein serielles Kommunikationsprogramm vollständig zu debuggen, sind mindestens zwei physische serielle Anschlüsse erforderlich. Da die meisten modernen PCs mit einem einzigen COM-Anschluss ausgestattet sind, benötigt ein Programmierer möglicherweise zwei Computer oder eine zusätzliche PCI-Erweiterungskarte mit einem seriellen Anschluss, um eine Anwendung zu debuggen.

Alternativ kann ein Entwickler auf einen leistungsfähigen Emulator für serielle Ports (Virtual Serial Port Driver) zurückgreifen, der mehrere virtuelle COM-Ports auf demselben Computer erstellen kann. Erwähnenswert ist auch, dass die Entwicklung von Kommunikationsanwendungen nicht der einzige Bereich ist, in dem das Konzept der virtuellen Ports weit verbreitet ist. 64-Bit-Treiber für den seriellen seriellen Port wird beim Testen von Anwendungen vieler anderer Arten als besonders hilfreich angesehen.

2. Dank eines seriellen Port-Simulators ist es möglich, Daten zwischen zwei oder mehr Anwendungen auszutauschen, ohne die komplexe Softwaretechnologie der prozessübergreifenden Kommunikation und der gemeinsamen Nutzung von Ressourcen zu verwenden. Auf diese Weise ist ein Programmierer für den Datenaustausch auf virtuelle COM-Ports anstelle von physischen Ports angewiesen. Daher wird die Geschwindigkeit der Datenübertragung zwischen Anwendungen von den Parametern des Systems (dem Prozessortyp, dem verfügbaren physischen Speicher usw.) bestimmt. ) und nicht durch die Merkmale einer seriellen Schnittstelle. In der Regel ist die Geschwindigkeit der Datenübertragung über virtuelle COM-Ports höher als bei der Datenübertragung über echte serielle Ports.

3. Die Software verbindet virtuelle serielle Anschlüsse mit einem virtuellen Nullmodemkabel, sodass die COM-Anschlüsse zur Datenübertragung zwischen verschiedenen Anwendungen über die RS232-Schnittstelle verwendet werden können. Zu diesem Zweck konfiguriert, verwenden virtuelle Ports nicht die Standardeinstellungen der Datenübertragungsgeschwindigkeit.

Verwendung von VSPD mit Programmiersprachen


★ VSPD mit C/C++


Um die Virtual Port Emulator-Funktionalität in C und C++ verwenden zu können, müssen Sie die DLL-Datei dynamisch laden, die gewünschten Funktionen auswählen und sie aufrufen. Hier ist ein Beispiel, wie Sie dies in Visual C++ tun können:

typedef bool (stdcall *CreatePairFn)(char *Port1, char *Port2);
typedef bool (stdcall *DeletePairFn)(char *Port);
typedef bool (stdcall *DeleteAllFn)(void);
typedef bool (stdcall *SetStrictBaudrateFn) (char *Port, bool StrictBaudrate);
typedef bool (stdcall *SetBreakFn) (char *Port, bool bBreak);
typedef bool (stdcall *QueryBusFn) (void* InBuffer, long sizeInBuffer, void* OutBuffer, long sizeOutBuffer);
typedef bool (stdcall *SetWiringFn) (char *Port, void *Buffer, long sizeBuffer);
typedef bool (stdcall *SetAccessListFn) (char *Port, void *Buffer, long sizeBuffer);
 
typedef bool (stdcall *CreatePairExFn)(char *Port1, char *Port2, char * UserSession);
typedef bool (stdcall *CreatePairWFn)(WCHAR *Port1, WCHAR *Port2);
typedef bool (stdcall *CreatePairExWFn)(WCHAR *Port1, WCHAR *Port2, WCHAR * UserSession);
typedef bool (stdcall *DeletePairWFn)(WCHAR *Port);
typedef bool (stdcall *SetStrictBaudrateWFn) (WCHAR *Port, bool StrictBaudrate);
typedef bool (stdcall *SetBreakWFn) (WCHAR *Port, bool bBreak);
typedef bool (stdcall *SetWiringWFn) (WCHAR *Port, void *Buffer, long sizeBuffer);
typedef bool (stdcall *SetAccessListWFn) (WCHAR *Port, void *Buffer, long sizeBuffer);
typedef bool (stdcall *DeletePairExFn)(char *Port, char * UserSession);
typedef bool (stdcall *DeletePairExWFn)(WCHAR *Port, WCHAR * UserSession);
 
typedef bool (stdcall *GetUserSessionFn)(char *Session, int &iSize);
typedef bool (stdcall *GetUserSessionWFn)(WCHAR *Session, int &iSize);
 
typedef bool (stdcall *SetStrictBaudrateExWFn) (WCHAR *Port, WCHAR * UserSession, bool StrictBaudrate);
typedef bool (stdcall *SetStrictBaudrateExFn) (char *Port, char * UserSession, bool StrictBaudrate);
typedef bool (stdcall *SetBreakExWFn) (WCHAR *Port, WCHAR * UserSession, bool bBreak);
typedef bool (stdcall *SetBreakExFn) (char *Port, char * UserSession, bool bBreak);
typedef bool (stdcall *SetAccessListExWFn) (WCHAR *Port, WCHAR * WCHAR, void *Buffer, long sizeBuffer);
typedef bool (stdcall *SetAccessListExFn) (char *Port, char * WCHAR, void *Buffer, long sizeBuffer);

bool CreateVSPair(char *Port1, char *Port2) {
OSVERSIONINFO VersionInfo;
HINSTANCE libInst;
libInst = LoadLibrary(VSPDCTL.DLL);
if (!libInst)
   return false; /* Couldn't load library */
/* Substitute the typedefs above for functions other than CreatePairFn */
CreatePairFn CreatePair=(CreatePairFn)GetProcAddress(libInst, CreatePair);
if (CreatePair==0) return false; /* Couldn`t find function */
returnvalue=CreatePair(Port1, Port2); /* For example, Port1 = COM5 and Port2 = COM6 */
FreeLibrary(libInst);
return returnvalue;
};

Sie können auch ein hervorragendes Beispiel für die Programmierung eines virtuellen COM-Ports mit Visual Basic und Visual C++ für sehen Kommunikation zwischen AVR und PC unter Verwendung des Virtual Serial Port Driver.


★ VSPD mit Visual Basic


Die Installation der VSPD-Funktionen ist für Visual Basic-Benutzer wesentlich einfacher. Sie müssen nur die folgenden Zeilen in die Quelldatei von Visual Basic einfügen:

Declare Function CreatePair Lib "VSPDCTL.DLL" (ByVal Port1$, ByVal Port2$) As Boolean
Declare Function DeletePair Lib "VSPDCTL.DLL" (ByVal Port$) As Boolean
Declare Function DeleteAll Lib "VSPDCTL.DLL" () As Boolean
Declare Function SetStrictBaudrateName Lib "VSPDCTL.DLL" (ByVal Port$, ByVal StrictBaudrate As Boolean) As Boolean
Declare Function SetStrictBaudrateHandle Lib "VSPDCTL.DLL" (ByVal Handle As Long, ByVal StrictBaudrate As Boolean) As Boolean
Declare Function CreatePair Lib "VSPDCTL.DLL" (ByVal Port1$, ByVal Port2$) As Boolean
Declare Function DeletePair Lib "VSPDCTL.DLL" (ByVal Port$) As Boolean
Declare Function DeleteAll Lib "VSPDCTL.DLL" () As Boolean
Declare Function SetStrictBaudrate Lib "VSPDCTL.DLL" (ByVal Port$, ByVal StrictBaudrate As Boolean) As Boolean
Declare Function SetBreak Lib "VSPDCTL.DLL" (ByVal Port$, ByVal bBreak As Boolean) As Boolean
Declare Function QueryBus Lib "VSPDCTL.DLL" (ByVal InBuffer As String, sizeInBuffer As Long, ByVal OutBuffer As String, sizeOutBuffer As Long) As Boolean
Declare Function SetWiring Lib "VSPDCTL.DLL" (ByVal Port1$, ByVal Buffer As String, sizeBuffer As Long) As Boolean

Fügen Sie VSPDCTL.DLL in das Verzeichnis Ihres Programms ein. Jetzt kann die Funktion direkt aufgerufen werden.

★ VSPD mit Delphi


Hier sind die Funktionsdeklarationen für Delphi:

Function CreatePair(Port1, Port2 : PChar) : Boolean; stdcall; external "VSPDCTL.DLL";
Function DeletePair(Port : PChar) : Boolean; stdcall; external "VSPDCTL.DLL";
Function DeleteAll : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetStrictBaudrateName(Port: PChar, StrictBaudrate: Boolean) : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetStrictBaudrateHandle(hPort: THandle, StrictBaudrate: Boolean) : Boolean; stdcall; external "VSPDCTL.DLL";
Function CreatePair(Port1, Port2 : PChar) : Boolean; stdcall; external "VSPDCTL.DLL";
Function DeletePair(Port : PChar) : Boolean; stdcall; external "VSPDCTL.DLL";
Function DeleteAll : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetStrictBaudrate(Port: PChar, StrictBaudrate: Boolean) : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetBreak (Port: PChar, bBreak: Boolean) : Boolean; stdcall; external "VSPDCTL.DLL";
Function QueryBus (InBuffer: Pointer, sizeInBuffer: Integer, OutBuffer: Pointer, sizeOutBuffer: Integer) : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetWiring (Port: PChar Buffer: Pointer, sizeBuffer: Integer) : Boolean; stdcall; external "VSPDCTL.DLL";

Delphi kann ArmAccess entweder dynamisch oder statisch laden. Hier ist ein Beispielcode für dynamisches Laden:

Function CreatePairFn(PortName1, PortName2 : String) : Boolean;
Type TCreatePair = function(Port1, Port2 : PChar) : Boolean; stdcall;
Var Handle : THandle;
CreatePair : TCreatePair;
Begin
 CreatePairFn := False;
 Handle := LoadLibrary("VSPDCTL.DLL");
 If (Handle <> 0) Then
  Begin
   @CreatePair:=GetProcAddress(Handle, "CreatePair");
   If (CreatePair <> Nil) Then
    CreatePairFn := CreatePair(PChar(PortName1), PChar(PortName2));
    FreeLibrary(Handle);
  End;
End;

Virtual Serial Port Driver

Benötigt: Verfügbar für Windows , 5.5MB Größe
Version 9.0.575 (der 23. Mai, 2019) Versionshinweise
Categorie: Communication Application