虚拟串口Virtual Serial Port说明书

合集下载

虚拟串口设备用户指南

虚拟串口设备用户指南

虚拟串口设备用户指南
1 文采虚拟串口原理 (2)
1.1 虚拟串口软件结构 (2)
1.2 虚拟串口的不同应用类型 (3)
1.2.1 网络型虚拟串口原理 (3)
1.2.2 TCP Client类型网络虚拟串口 (4)
1.2.3 TCP Server类型网络虚拟串口 (4)
1.2.4 UDP类型网络虚拟串口 (5)
1.2.5 互联型虚拟串口 (6)
2 虚拟串口安装以及管理 (8)
2.1 软件安装平台 (8)
2.2 软件安装目录下各个文件解释 (8)
2.3 添加虚拟串口 (8)
2.3.1 添加TCP Client型虚拟网络串口 (8)
2.3.2 添加TCP Server型虚拟网络串口 (11)
2.3.3 添加UDP型虚拟网络串口 (13)
2.3.4 添加互连型虚拟串口 (15)
2.4 删除虚拟串口 (16)
2.5 设置串口参数 (17)
3 测试虚拟串口设备 (18)
3.1 测试TCP Client类型虚拟串口 (18)
3.2 测试TCP Server类型虚拟串口 (20)
3.2.1 用Peer_sim测试TCP Server型虚拟串口 (20)
3.2.2 用telnet测试TCP Server型虚拟串口 (21)
3.3 测试UDP类型虚拟串口 (22)
3.4 测试互连型虚拟串口设备 (24)。

虚拟串口使用说明

虚拟串口使用说明

用proteus里的单片机跟pc的串口调试工具进行串口仿真虚拟串口使用说明打开虚拟串口的文件夹,可以看见如下两个文件,一个是破解用的,一个是安装用的。

双击安装图标开始安装。

选择同意,一路NEXT即可。

安装后再将破解用的文件粘贴到C:\Program Files\Eltima Software\VSPD XP 5.1目录下,覆盖原来的文件即可。

在桌面就可以看到快捷方式。

双击快捷方式后你会看到如下画面:上面为你实际的物理串行口,下面是虚拟的物理串行口。

下面我们来增加一对虚拟串行口。

因为一般的电脑最多为两个串行口,在这个画面上,我们设置first为com3,second为com4,点击add pair就可以增加一对虚拟串口(如下图所示)。

这两对端口是通过这个软件物理连接的,并且是rs232电平连接。

这样我们就完成里串口的设置,可以把此软件关闭,这两个端口将会一直存在于你的电脑中,下次直接使用就可以了。

Protus中的串口设置仿真电气原理图请打开本例的仿真文件:下面我们对串口进行设置和邦定:在proteus右键单击上面的图选定,然后左键单击此元件打开它的属性对话框。

如下图所示:设置蓝色框内的参数,为你实际的参数,其中红色圈内设置为你要邦定的串口,本例邦定为com4,必须为com3和com4中的一个。

下面就是对串口调试工具的设置了,设置如下:因本例proteus用了com3,那么串口调试工具这里就要邦定为com4了,并且设置为16进制发送和显示,那么这样一切ok,开始吧。

点击proteus的播放键,切换到串口调试工具,哈哈受到数据了。

然后你再发送一些数据给单片机看看,哈哈,是不是很棒呢。

虚拟串口设置方法

虚拟串口设置方法

虚拟串口设置方法
1、运行以太网485转换模块搜索设置软件,双击桌面图标,出现如下窗口,
2、点击图标,出现如下窗口,
待搜索完毕后,见下图:本矿使用的以太网485转换模块IP地址为:10.27.105.150,
如不是此IP地址,则双击红圈内地址,出现以下窗口,
点击“Network”,选择“Modify”前的复选矿,打钩够修改IP地址。

点击选择“Operating Mode”, 见以下窗口,选择“Modify”前的复选矿打钩。

双击第一行目录,
出现以下窗口:下拉菜单必须选择“Real COM Mode”。

完成后OK保存。

3、选择“COM Mapping”,见下图:
点击图标,见下图:
点击“Rescan”按钮,搜索完毕后,如图处打钩,OK保存。

双击如图红圈处目录,
见下图:选择“Basic Settings”下拉菜单选择“COM4”。

选择“Serial Parameters”,见下图:设置成如图所示即可。

OK保存。

4、最后关闭以下窗口,如有提示,YES保存。

虚拟串口配置就此完成。

重启电脑。

口被占用。

(运行KJ95目录下可进行此设置。

虚拟串口说明书

虚拟串口说明书

XPORT Comm Port Redirector(串口重定向器)使用说明书(版本:1.0.1;修改时间:2005-09-22)(版本:1.2.1;修改时间:2007-07-07)(版本:1.2.2;修改时间:2008-07-10)目录1:概述 (1)2:安装 (2)3:使用 (2)3.1端口安装 (3)3.2 高级设置 (4)3.3 IP服务设置 (4)3.5 端口方式设置 (5)3.7 安静模式 (6)1:概述串口重定向器又称为虚拟串口驱动程序。

它的基本功能是将一个TCP网络连接虚拟成一个串口,用户可以象操作一个真实的串口一样来操作这个网络连接。

网络连接的建立是完全自动的,用户只要设置好串口以太网服务器系列设备及虚拟串口,并用网线将PC机和本设备连接起来即可,也可以采用交换机/HUB方式互连。

当用户打开虚拟串口时,它就会自动的与串口以太网服务器系列设备建立一个TCP网络连接,当用户关闭虚拟串口时,它又会自动断开这个连接,如果连接意外断掉,它会自动重连,这一切都是自动的,用户只要专心于操作虚拟串口就可以了。

总之,串口重定向器允许运行Windows的计算机使用串口以太网服务器系列串口以太网服务器,就像使用本地计算机自己的串口一样。

串口重定向器产生的虚拟串口可以支持TCP/IP和IPX协议。

配送的串口重向器有两个版本,版本2支持Windows95,Windows98,Windows Me,Windows 2000,支持64个虚拟串口。

对Windows XP的支持性不是很好。

希望用户选用合适的操作系统。

如果用户使用Windows XP操作系统,可安装版本3。

两个版本的用法相似,以下说明以版本3为例。

使用注意事项:尽量不要在同一个操作系统上,安装多个厂家的虚拟串口驱动;也不要同时安装几个版本的虚拟串口程序。

即:一台计算机,只安装一个版本的一个虚拟串口驱动程序。

以下是虚拟串口示意图:2:安装串口重定向器的版本2安装程序为red32bit2.exe,而red32bit_3.0.0.2.exe为版本3的安装包,安装过程很简单,一路next,continue,accept即可。

Javaspringboot串口通信

Javaspringboot串口通信

Javaspringboot串⼝通信基于win10 环境1. Virtual Serial Port Driver Pro 开通两个虚拟串⼝2. 打开串⼝调试助⼿3. 代码逻辑<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/POM/4.0.0 https:///xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.10.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>port</artifactId><version>0.0.1-SNAPSHOT</version><name>port</name><description>Demo Serial Port project for Spring Boot</description><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><lombok.version>1.18.16</lombok.version><ng3.version>3.11</ng3.version><fastjson.version>1.2.75</fastjson.version></properties><dependencies><dependency><groupId>com.RXTXcomm</groupId><artifactId>RXTXcomm</artifactId><version>1.0.1</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/RXTXcomm.jar</systemPath> </dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version><scope>provided</scope></dependency><dependency><groupId>mons</groupId><artifactId>commons-lang3</artifactId><version>${ng3.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins><resources><resource><directory>src/main/resources</directory><includes><include>**/*.*</include></includes><filtering>true</filtering></resource><resource><directory>src/main/lib</directory><targetPath>BOOT-INF/lib/</targetPath><includes><include>**/*.jar</include></includes></resource></resources></build></build></project>package com.example.port;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import javax.annotation.PreDestroy;@SpringBootApplicationpublic class PortApplication {public static void main(String[] args) {SpringApplication.run(PortApplication.class, args);}@PreDestroypublic void destory() {//关闭应⽤前关闭端⼝SerialPortUtil serialPortUtil = SerialPortUtil.getSerialPortUtil();serialPortUtil.removeListener(PortInit.serialPort, new MyLister());serialPortUtil.closePort(PortInit.serialPort);}}package com.example.port;import gnu.io.SerialPort;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.ApplicationArguments;import org.springframework.boot.ApplicationRunner;import ponent;import java.util.ArrayList;@Componentpublic class PortInit implements ApplicationRunner {public static SerialPort serialPort = null;@Value("${portname}")private String portname;@Overridepublic void run(ApplicationArguments args) {//TestA();//查看所有串⼝SerialPortUtil serialPortUtil = SerialPortUtil.getSerialPortUtil();ArrayList<String> port = serialPortUtil.findPort();System.out.println("发现全部串⼝:" + port);System.out.println("打开指定portname:" + portname);//打开该对应portname名字的串⼝PortInit.serialPort = serialPortUtil.openPort(portname, 9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);//给对应的serialPort添加监听器serialPortUtil.addListener(PortInit.serialPort, new MyLister());}}package com.example.port;/*** @author 7788* @version 1.0* @date 2021/4/6 上午 9:26* @location wuhan*/import gnu.io.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.slf4j.LoggerFactory;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.Enumeration;import java.util.TooManyListenersException;public class SerialPortUtil {private static final Logger logger = LoggerFactory.getLogger(SerialPortUtil.class);private static SerialPortUtil serialPortUtil = null;static {//在该类被ClassLoader加载时就初始化⼀个SerialTool对象if (serialPortUtil == null) {serialPortUtil = new SerialPortUtil();}}//私有化SerialTool类的构造⽅法,不允许其他类⽣成SerialTool对象private SerialPortUtil() {}/*** 获取提供服务的SerialTool对象** @return serialPortUtil*/public static SerialPortUtil getSerialPortUtil() {if (serialPortUtil == null) {serialPortUtil = new SerialPortUtil();}return serialPortUtil;}/*** 查找所有可⽤端⼝** @return可⽤端⼝名称列表*/public ArrayList<String> findPort() {//获得当前所有可⽤串⼝Enumeration<CommPortIdentifier> portList = CommPortIdentifier.getPortIdentifiers();ArrayList<String> portNameList = new ArrayList<>();//将可⽤串⼝名添加到List并返回该Listwhile (portList.hasMoreElements()) {String portName = portList.nextElement().getName();portNameList.add(portName);}return portNameList;}/*** 打开串⼝** @param portName 端⼝名称* @param baudrate 波特率* @param databits 数据位* @param parity 校验位(奇偶位)* @param stopbits 停⽌位* @return串⼝对象* // * @throws SerialPortParameterFailure 设置串⼝参数失败* // * @throws NotASerialPort 端⼝指向设备不是串⼝类型* // * @throws NoSuchPort 没有该端⼝对应的串⼝设备* // * @throws PortInUse 端⼝已被占⽤*/public SerialPort openPort(String portName, int baudrate, int databits, int parity, int stopbits) { try {//通过端⼝名识别端⼝CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);//打开端⼝,并给端⼝名字和⼀个timeout(打开操作的超时时间)CommPort commPort = portIdentifier.open(portName, 2000);//判断是不是串⼝if (commPort instanceof SerialPort) {SerialPort serialPort = (SerialPort) commPort;try {//设置⼀下串⼝的波特率等参数serialPort.setSerialPortParams(baudrate, databits, stopbits, parity);} catch (UnsupportedCommOperationException e) {}System.out.println("Open " + portName + " sucessfully !");return serialPort;} else {logger.error("不是串⼝");}} catch (NoSuchPortException e1) {logger.error("没有找到端⼝");e1.printStackTrace();} catch (PortInUseException e2) {logger.error("端⼝被占⽤");e2.printStackTrace();}return null;}/*** 关闭串⼝** @param serialPort 待关闭的串⼝对象*/public void closePort(SerialPort serialPort) {if (serialPort != null) {serialPort.close();}}/*** 往串⼝发送数据** @param serialPort 串⼝对象* @param order 待发送数据* // * @throws SendDataToSerialPortFailure 向串⼝发送数据失败* // * @throws SerialPortOutputStreamCloseFailure 关闭串⼝对象的输出流出错 */public void sendToPort(SerialPort serialPort, byte[] order) {OutputStream out = null;try {out = serialPort.getOutputStream();out.write(order);out.flush();} catch (IOException e) {e.printStackTrace();} finally {try {if (out != null) {out.close();}} catch (IOException e) {e.printStackTrace();}}}/*** 从串⼝读取数据** @param serialPort 当前已建⽴连接的SerialPort对象* @return读取到的数据* // * @throws ReadDataFromSerialPortFailure 从串⼝读取数据时出错* // * @throws SerialPortInputStreamCloseFailure 关闭串⼝对象输⼊流出错*/public byte[] readFromPort(SerialPort serialPort) {InputStream in = null;byte[] bytes = null;try {in = serialPort.getInputStream();int bufflenth = in.available();while (bufflenth != 0) {bytes = new byte[bufflenth];in.read(bytes);bufflenth = in.available();}} catch (IOException e) {e.printStackTrace();} finally {} finally {try {if (in != null) {in.close();}} catch (IOException e) {e.printStackTrace();}}return bytes;}/*** 添加监听器** @param port 串⼝对象* @param listener 串⼝监听器* // * @throws TooManyListeners 监听类对象过多*/public void addListener(SerialPort port, SerialPortEventListener listener) {try {//给串⼝添加监听器port.addEventListener(listener);//设置当有数据到达时唤醒监听接收线程port.notifyOnDataAvailable(true);//设置当通信中断时唤醒中断线程port.notifyOnBreakInterrupt(true);} catch (TooManyListenersException e) {// throw new TooManyListeners();logger.error("太多监听器");e.printStackTrace();}}/*** 删除监听器** @param port 串⼝对象* @param listener 串⼝监听器* // * @throws TooManyListeners 监听类对象过多*/public void removeListener(SerialPort port, SerialPortEventListener listener) {//删除串⼝监听器port.removeEventListener();}}package com.example.port;import com.alibaba.fastjson.JSON;import com.example.port.ISO8583.ISO8583;import com.example.port.ISO8583.TransISO8583MessageUtil;import gnu.io.SerialPortEvent;import gnu.io.SerialPortEventListener;import lombok.SneakyThrows;import java.util.Date;/*** @author best*/public class MyLister implements SerialPortEventListener {@SneakyThrows@Overridepublic void serialEvent(SerialPortEvent arg0) {if (arg0.getEventType() == SerialPortEvent.DATA_AVAILABLE) {SerialPortUtil serialPortUtil = SerialPortUtil.getSerialPortUtil();byte[] bytes = serialPortUtil.readFromPort(PortInit.serialPort);String byteStr = new String(bytes, 0, bytes.length).trim();// System.out.println(new Date() + "【读到的字节数组】:-----" + byteStr);// ISO8583 aiISO8583DTO = (ISO8583) TransISO8583MessageUtil.unpackISO8583(ISO8583.class, byteStr); // System.out.println("UNPACK ISO8583: " + JSON.toJSONString(aiISO8583DTO));System.out.println("===========start===========");System.out.println(new Date() + "【读到的字节数组】:-----" + byteStr);String needData = printHexString(bytes);System.out.println(new Date() + "【字节数组转字符串】:-----" + needData);System.out.println(new Date() + "【16进制字符串转字符串】:" + hexStringToString(needData));System.out.println("===========end===========");// ISO8583 aiiso8583DTO = new ISO8583();//// aiiso8583DTO.setCardNo02(String.valueOf(System.currentTimeMillis()));// aiiso8583DTO.setTransProcCode03("123456");// aiiso8583DTO.setTransAmt04("000010000000");// aiiso8583DTO.setSysTrackNo11("888888");// aiiso8583DTO.setServiceInputModeCode22("100");// aiiso8583DTO.setServiceConditionCode25("66");// aiiso8583DTO.setCardAcceptorTerminalID41("08022206");// aiiso8583DTO.setCardAcceptorID42("000100000000005");// aiiso8583DTO.setAdditionalDataPrivate48("0000");// aiiso8583DTO.setCurrencyCode49("168");// aiiso8583DTO.setEWalletTransInfo58("53560118FFFFFFFFFFFF03104890100000006059FFFFFFFF0101000200000064020000080000032017122310225672FB4788000 // aiiso8583DTO.setFld60Domain60("41000006666");// aiiso8583DTO.setOriginalInfoDomain61("000666000181");// aiiso8583DTO.setFld63Domain63("0000000000000000");// String maxBitmap = "7020048000C1805B";// final String TPDU = "6000000000";// final String HEAD = "612200000000";// String sendMsg = TransISO8583MessageUtil.packISO8583(aiiso8583DTO, maxBitmap, TPDU, HEAD, "0300");//接收到消息后回复⼀个当前时间serialPortUtil.sendToPort(PortInit.serialPort, new Date().toString().getBytes());}}// 字节数组转字符串private String printHexString(byte[] b) {StringBuffer sbf = new StringBuffer();for (int i = 0; i < b.length; i++) {String hex = Integer.toHexString(b[i] & 0xFF);if (hex.length() == 1) {hex = '0' + hex;}sbf.append(hex.toUpperCase() + " ");}return sbf.toString().trim();}/*** 16进制转换成为string类型字符串** @param s* @return*/public static String hexStringToString(String s) {if (s == null || s.equals("")) {return null;}s = s.replace(" ", "");byte[] baKeyword = new byte[s.length() / 2];for (int i = 0; i < baKeyword.length; i++) {try {baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(i * 2, i * 2 + 2), 16));} catch (Exception e) {e.printStackTrace();}}try {s = new String(baKeyword, "UTF-8");new String();} catch (Exception e1) {e1.printStackTrace();}return s;}}接下来启动项⽬就可以了,可以完善MyLister的功能对收到的消息进⾏处理,然后回复消息⽐如ISO8583的报⽂解析并http调⽤接⼝更新数据。

台式机如何设置虚拟串口

台式机如何设置虚拟串口

台式机如何设置虚拟串口
需要进行串口调试时,难免要用到串口进行测试。

此时我们便可以通过虚拟串口进行测试。

下面是店铺收集整理的台式机如何设置虚拟串口,希望对大家有帮助~~
台式机设置虚拟串口的方法
工具/原料
虚拟串口软件
串口调试软件
方法/步骤
下载虚拟串口软件,百度搜索“虚拟串口软件”,第一个就是汉化版的,下载安装即可。

打开虚拟串口软件,串口类型分为三类,第一类是“physical ports”表示物理串口,是实际的串口;第二类便是“virtual ports”虚拟串口;第三类表示其他类型的串口,一般用不上。

添加虚拟串口都是成对添加的,首先选择两个虚拟串口号,一般不要选择com1和com2,可以从com3开始设定,这里选择com3和com4,然后点击“添加串口”。

打开com3和com4可以看到下拉栏中串口信息,包括串口打开状态、波特率、接收和发送的字节数。

打开设备管理器查看虚拟串口,可以看到多了com3和com4两个串口,并且两个串口是对应的,com3发的数据由com4接收,com4发的数据由com3接收。

测试串口功能:
1、打开串口调试软件,打开两个窗口,便于互发互收。

2、设置波特率等参数,两个串口的波特率要一致。

3、分别打开com3和com4;
4、发送数据,看对方能否接收。

这时候可以看看虚拟串口软件有什么变化,可以看到两个的串口信息都更新了,可以显示发送和接收的字节数。

如果不需要虚拟串口了,就可以把虚拟串口删除,不过得解除串口的使用状态,在调试软件中关闭串口,然后在虚拟串口软件中删除串口。

以后需要的时候再用软件添加就可以啦。

VSPD工具-VirtualSerialPortDriverv6.9激活教程使用教程

VSPD工具-VirtualSerialPortDriverv6.9激活教程使用教程

VSPD⼯具-VirtualSerialPortDriverv6.9激活教程使⽤教程1、下载地址百度到处都是,找不到的话留⾔发给你们2、安装教程解压⽂件后先点击vspd.exe安装,安装完成后先不要打开软件。

⾸先将cracked⽂件中的vspdctl.dll复制并替换掉软件安装跟⽬录中的同名⽂件。

(若需要汉化,则将“vspdconfig.exe”和“vspdctl.dll”⼀起复制到到软件安装根⽬录中替换)然后再打开软件即可直接使⽤。

3、软件介绍Virtual Serial Port Driver是⼀款爱不释⼿的虚拟串⼝⼯具,其由著名软件公司Eltima开发,简称为VSPD,是虚拟串⼝软件中的佼佼者。

它⽀持快速调试代码、添加⽆限个虚拟串⼝、实时虚拟串⼝数据传输监控等多种功能,并且能够创建任何你想使⽤的端⼝号,⼀般情况下电脑上只有两个端⼝,但Virtual Serial Port Driver可以帮助你解除端⼝的限制,其⽬的是模拟使⽤虚拟串⾏端⼝驱动程序通过虚拟虚拟调制解调器电缆连接的RS232串⾏端⼝,该驱动程序可以轻松包含在您⾃⼰的软件中,提供简单⽽强⼤的⽅式来创建和配置虚拟串⾏端⼝直接来⾃您的应⽤程序,使⽤VSPD XP,您可以在系统中创建任意数量的纯虚拟串⾏端⼝,并通过虚拟零调制解调器电缆成对连接,⽽⽆需占⽤实际的串⾏端⼝。

是⼀款⾮常好⽤的虚拟串⼝⼯具,如果你经常需要使⽤虚拟串⼝,⼜不想更改端⼝的话,这款软件就是你最好的选择。

4、软件使⽤Virtual Serial Port Driver 虚拟串⼝⼯具(简称:VSPD)a、⾸先下载好虚拟串⼝⼯具也就是Virtual Serial Port Driver,然后打开软件。

b、右边⽅框中是⽤来选择希望连接的串⼝的位置,⽐如这⾥我想要把COM5⼝和COM6⼝虚拟出⼀个通路,只需要在两个选择框内分别选择COM5⼝和COM6⼝即可,然后点击Add Pair完成添加。

C2000 虚拟串口管理软件系统说明书

C2000 虚拟串口管理软件系统说明书
如将设备设置为服务器方式设备和虚拟串口管理程序还是不能连接,可以先退出虚拟串口管理程序,然后再属性里面选择“以管理员身份运行此程序”。
第五章
1
可以把所有的C2000设备串口都虚拟到同一个串口上。在服务器名称处右键鼠标调出菜单,选择“映射到同一个虚拟串口”
在弹出的映射设置页面中选择想要映射的串口。
注意:除了将所有设备映射到同一个串口外,还可以将一部分设备映射同一个串口。
2
使用虚拟串口后,用户基于串口通信的程序不需要做任何的修改即可通过网络收发数据。
1)设备做为客户端时设置如下所示:
工作方式:选择TCP Client。
C2000端口:默认为8000,可以不做修改,当然也可设置为其它数值。多串口服务器每个串口的C2000端口必须设置成不一样。
服务器的IP或域名:电脑的IP地址或需要连接的域名。
服务器端口:默认为8000,此处数值需要和服务器监听C2000连接端口里面设置的值一样。多个设备或多串口服务器不同的串口都必须设置成一样。
使用“虚拟串口”或“EDSockServer控件”:使用虚拟串口时必须选择,若客户使用SOCKET直接和设备连接就无需选择。
点击“确定”后设置成功,正常设备即可连接上,如下图所示:
监听成功后会出现下述界面
请求连接:C2000选择做服务器端模式时使用
连接类型:根据C2000的设置选择合适的连接类型,此时可选用“Socket”或“使用控件协议”。
IP地址:C2000服务器的IP地址。
端口号:C2000设备串口的通讯端口号。
第四章
1
为方便设备管理,用户可以自己添加设备组。除“连接未创建”组外,其他设备组都可修改,所有连接上但是没有分组的设备都会自动出现在“连接未创建”组。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VSPM虚拟串口软件使用帮助虚拟串口软件使用帮助(Ver2.5)(Ver2.5)一、一、 软件介绍软件介绍1、 功能说明功能说明VSPM 虚拟串口软件可以将TCP/IP 连接、连接、UDP UDP 广播,映射成本机的虚拟COM 口,应用程序通过访问虚拟串口,就可以完成远程控制、数据传输等功能。

等功能。

VSPM 虚拟串口软件特点:虚拟串口软件特点:多虚拟串口映射多虚拟串口映射收/发多线程架构发多线程架构支持虚拟串口参数同步指令支持虚拟串口参数同步指令自动错误纠正、自动连接、自动重新试自动错误纠正、自动连接、自动重新试实时虚拟串口数据传输监控实时虚拟串口数据传输监控集成Telnet 管理器管理器集成设备探测器集成设备探测器Server Server、、Client Client、、U DP 广播模式,广播模式,33种工作模式种工作模式支持扩展DLL 插件,具备强大的扩展功能插件,具备强大的扩展功能免费软件免费软件2、 VSPM 软件适用范围软件适用范围适用的嵌入式设备适用的嵌入式设备可以将任何使用TCP/IP 或UDP 广播方式传输数据的嵌入式设备虚拟成本机COM 口。

口。

这些设备包括串口服务器、无线DTU 或其他各类嵌入式以太网&TCP/IP 设备。

设备。

虚拟串口互联虚拟串口互联1台电脑用Server 模式和Client 模式运行2个VSPM 虚拟串口软件,可以实现虚拟串口互联。

可以实现虚拟串口互联。

软件调试及串口通讯模拟软件调试及串口通讯模拟利用各类扩展DLL 插件,可以使VSPM 模拟成一个串口设备,方便软件调试。

件调试。

3、 VSP VSPM M 虚拟串口性能参数虚拟串口性能参数 项目项目配置配置 端口速度端口速度110110--115200bps 115200bps 数据位数据位5、6、7、8 停止位停止位1、2 校验位校验位无、奇、偶、标记。

无、奇、偶、标记。

流控流控可设置流控,但VSPM 软件在转发时忽略此设置。

软件在转发时忽略此设置。

发送缓冲发送缓冲8K 字节,如果超过此长度,将丢弃超出部分的数据。

字节,如果超过此长度,将丢弃超出部分的数据。

二、二、 安装VSPM 虚拟串口软件虚拟串口软件1、 快速安装快速安装1.1. 执行VSPM.exe VSPM.exe如果是您从网站上下载的RAR 压缩包,请解压缩执行里面的VSPM.exe VSPM.exe,,光盘用户可以执行运行VSPM.exe VSPM.exe,,并按照提示安装软件到电脑。

到电脑。

2.2. 选择工作模式选择工作模式在第一次启动在第一次启动时请选择时请选择VSPM 软件的工作模式,软件的工作模式,VSPM VSPM 可以运行在Client 模式、模式、Server Server 模式或UDP 广播模式。

Client 模式(默认):对应的远程设备应该运行在Server 模式,由VSPM 发起连接。

发起连接。

Server 模式:对应的远程设备应该运行在Client 模式,由设备发起连接。

连接。

UDP 广播模式:对应的远程设备应该运行UDP 广播模式,能够接收发送广播包,广播模式无连接。

送广播包,广播模式无连接。

1)1) Client 模式模式Client 模式下,模式下,VSPM VSPM 软件将根据设置主动连接远程主机,所以远程设备必须运行在Server 模式。

模式。

2)2) Server 模式模式Server 模式下,模式下,VSPM VSPM 软件将根据设置监听特定的端口,并等待远程设备发起的连接,远程设备必须运行在Client 模式。

模式。

3)3) UDP 广播模式广播模式此模式下,此模式下,VSPM VSPM 将使用UDP 广播方式向网络发送广播方式向网络发送//接收数据,远程设备必须运行在UDP 广播模式,此模式通常用于组建大规模的半双工网络。

络。

3.3. 选择虚拟串口建立方式选择虚拟串口建立方式1)1) 使用串口服使用串口服务器探测器建立串口务器探测器建立串口务器探测器建立串口VSPM 将不建立任何虚拟串口,用户可以通过<扫描添加设备扫描添加设备>>选择设备并自动完成虚拟串口建立。

也可以手工建立所需要的虚拟串口。

备并自动完成虚拟串口建立。

也可以手工建立所需要的虚拟串口。

如果网络里有VSPM 可识别的设备,设备探测器可以显示出这些设备。

选中一个设备,然后选择<映射此设备端口映射此设备端口>>就可以将此设备的可映射端口映射为本地的虚拟COM 口。

2)2) 建立默认的虚拟串口建立默认的虚拟串口如果是Client 或Server 模式,模式,VSPM VSPM 将自动建立4个默认的虚拟串口,在UDP 广播模式下,不建立任何虚拟串口。

广播模式下,不建立任何虚拟串口。

下面为Client 模式建立默认虚拟串口时的截图,实际运行可能会模式建立默认虚拟串口时的截图,实际运行可能会有有些不同。

些不同。

3)3) 虚拟串口建立的默认规则虚拟串口建立的默认规则VSPM 将自动避开系统中已经存在的串口,并按照顺序建立串口。

将自动避开系统中已经存在的串口,并按照顺序建立串口。

三、三、 设备探测器设备探测器1.1. 选择<扫描添加设备扫描添加设备>>,就可以进入设备探测器就可以进入设备探测器2.2. 使用设备探测器使用设备探测器搜索设备:选择<搜索设备搜索设备>>,可以搜索到可以识别的设备,并显示相应信息。

示相应信息。

映射此设备端口:根据设备提供的信息,建立相应的虚拟串口。

根据设备提供的信息,建立相应的虚拟串口。

管理:使用软件内置Telnet 程序登录到设备并进行管理。

程序登录到设备并进行管理。

3.3. 设备探测器工作方式设备探测器工作方式设备探测器使用召唤等待应答的方式工作,软件首先使用UDP 广播方广播方式式向网络里发送特定的召唤数据包,然后等待设备应答。

然后等待设备应答。

由于使用UDP 广播方式工作,所以设备探测器无法跨网段工作,设备在跨网段工作时,设备探测器无法搜索到该设备。

跨网段工作时,设备探测器无法搜索到该设备。

召唤协议为公开的协议,可以向开发者免费索取。

召唤协议为公开的协议,可以向开发者免费索取。

四、四、 Client 模式模式1、 Client 模式工作特点模式工作特点创建虚拟串口或软件启动时,VSPM 根据设置的<远程服务器IP 和远程服务器监听端口远程服务器监听端口>>发起TCP/IP 连接,尝试为每个虚拟串口建立TCP/IP 连接。

连接。

当虚拟串口打开时,如果没有对应的TCP/IP 连接,连接,VSPM VSPM 也会主动尝试连接远程服务器,如果失败,将根据设置的间动尝试连接远程服务器,如果失败,将根据设置的间隔,一直重隔,一直重试。

试。

在与远程服务器建立TCP/IP 连接时,VSPM 将尝试与远程设备同步串口参数。

2、 手工添加一个Client 模式虚拟串口模式虚拟串口1)1) 选择选择<<虚拟串口管理虚拟串口管理>>-><><新增虚拟串口新增虚拟串口新增虚拟串口>>2)2) 输入指定虚拟串口信息输入指定虚拟串口信息A)A) 首先选择要建立的虚拟串口,系统已经存在的串口,不会显示在列表中。

在列表中。

B)B) Client 下,由VSPM 软件主动发起连接,所以需要指定虚拟串口对应的远程服务器IP 地址和远程服务器监听端口。

C)C) 单击确定,完成并建立此虚拟串口。

单击确定,完成并建立此虚拟串口。

可以重复A -C 操作,以建立多个Client 的虚拟串口。

的虚拟串口。

五、五、 Server 模式模式1、 Server 模式工作特点模式工作特点创建虚拟串口时,由VSPM 根据设置监听指定的IP 和端口VSPM 等待远程设备建立TCP/IP 连接,远程主机必须主动发起连接(接(Client Client 模式)如果虚拟串口有数据,但没有对应的TCP/IP 连接,本次数据将被丢弃丢弃如果一个虚拟串口对应的TCP/IP 连接已经建立,VSPM 仍然会继续监听此虚拟串口的对应的IP 和端口,如果有针对此端口,新发起的TCP/IP 连接,将使用新连接代替原先的TCP/IP 连接。

连接。

Server 模式下,新建、修改、删除一个虚拟串口,都将暂停全部虚拟串口的转发操作。

虚拟串口的转发操作。

支持Client 模式的串口服务器或其他类似设备时,可以使用附带的<心跳包心跳包>>插件,来发送指定的心跳包数据,用于设备TCP/IP 连接状态检测。

接状态检测。

2、 手工添加一个Server 模式虚拟串口模式虚拟串口1)1) 选择<虚拟串口管理虚拟串口管理>>-><新增虚拟串口新增虚拟串口>>2)2) 输入指定虚拟串口信息输入指定虚拟串口信息A)A) 首先选择要建立的虚拟串口,系统已经存在的串口,不会显示在列表中B)B) 指定要监听的本机IP 地址及端口,地址及端口,TCP/IP TCP/IP 端口对应一个虚拟串口。

串口。

C)C) 单击确定,完成并建立此虚拟串口。

单击确定,完成并建立此虚拟串口。

可以重复A -C 操作,以建立多个Server 的虚拟串口。

的虚拟串口。

3、 Server 模式下服务器管理功能模式下服务器管理功能重启服务器:先停止服务器然后再重新启动,将中断当前所有的TCP/IP 连接。

连接。

启动服务器:开始监听。

开始监听。

停止服务器:停止监听,并中断所有当前连接。

停止监听,并中断所有当前连接。

这些功能用于排除可能发生的网络故障。

这些功能用于排除可能发生的网络故障。

六、六、 UDP 广播模式广播模式1、 UDP 广播模式工作特点广播模式工作特点使用UDP 广播包方式通讯,整个局域网的网络设备都可以同时收到VSPM 发送的数发送的数据。

而远程设备也应该使用据。

而远程设备也应该使用UDP 广播方式向VSPM 发送数据。

创建虚拟串口时,VSPM 软件会在指定IP 地址和端口上监听广播数据,如果虚拟串口有数据,也将使用广播方式发送到指定IP 地址和端口。

UDP 广播模式下,新建、修改、删除一个虚拟串口,都将暂停全部虚拟串口的转发操作。

拟串口的转发操作。

除非在路由器上做特殊设置,否则UDP 广播模式无法实现跨网段应用。

用。

2、 添加一个UDP 广播模式的虚拟串口广播模式的虚拟串口1)1) 选择虚拟串口管理选择虚拟串口管理-->新增虚拟串口新增虚拟串口2)2) 输入指定虚拟串口信息输入指定虚拟串口信息A)A) 首先选择要建立的虚拟串口,系统已经存在的串口,不会显示在列表中在列表中B)B) 必须为此虚拟串口指定<UDP 接收地址接收地址>>、<接收端口接收端口>>、<发送地址地址>>和<发送端口发送端口>>。

相关文档
最新文档