虚拟串口

关键词:

虚拟串口(精选四篇)

虚拟串口 篇1

串行通信接口(简称串口),按电气标准及协议可分为RS-232-C、RS-422与RS-485,无论那种标准,都只对接口的电气特性做出规定,其软件协议都是一致的。串口作为工业控制领域最常用的一种通讯接口,自1970年标准化至今已近40年时间[1]。然而随着无线技术的日益发展,无线传输技术应用越来越被各行各业所接受。无线监控作为一个特殊使用方式也逐渐被广大用户看好,其安装方便、灵活性强、性价比高等特性,使更多行业的监控系统乐于采用无线监控方式,用于建立被监控点和监控中心之间的连接。无线监控技术已经在现代化住宅小区、交通、运输、水利、航运、治安、消防等领域得到了广泛的应用。但现有的很多成熟应用系统依然使用RS232方式,有迫切的需要把它们从传统的有线方式迁移到无线监控领域,虚拟串口于是应运而生。

2 虚拟串口

串口通讯,不论RS-232-C、RS-422或是RS-485标准,其通讯协议都是一样的。对于Windows系统而言,都叫做COM口。虚拟串口并不是物理上存在的串口,而是使用虚拟手段模拟出来的,具备物理串口全部的逻辑特征。使用户程序在操作上无法判断所使用的究竟是物理串口还是虚拟串口。

2.1 常规的虚拟串口

常规的虚拟串口(如图1所示)是通过虚拟驱动程序来实现的。它是在操作系统上利用虚拟I/O技术建立虚拟串口设备来模拟一个串口。它的特点是全局性和便捷性。但其缺点也相当明显,就是稳定性欠佳。

2.2 API Hook钩子技术

API Hook(钩子)技术是消息处理中的一个环节,用于监控消息在系统中的传递,并在这些消息到达最终的消息处理过程前,处理某些特定的消息。简单的说就是改变程序流程的技术。它有一个重要原则:被Hook的API的原有功能不能受到任何影响。如果API被Hook之后,其原有功能失效,这样操作不能称之为Hook,而是替换取代。因为操作系统的正常功能受到影响,甚至可能会引发系统崩溃。

2.3 基于API Hook技术的虚拟串口

图2为本文所提出的创新型API Hook虚拟串口,它采用API Hook技术[2],避免使用系统内核驱动程序,很好的解决了常规虚拟串口的稳定性问题。因为API Hook虚拟串口是工作在用户态的,它通过API Hook手段,改变系统API函数的功能,重定向串口数据,“欺骗”用户程序来实现的[3]。而且由于在Windows系统上,程序空间的独立性,使得基于API Hook虚拟串口只针对特定程序有效,这能大幅提高系统的安全性和可靠性。

基于API Hook技术的虚拟串口和普通虚拟串口的技术优势比较如表1所示:

2.4 基于API Hook的虚拟串口的实现

API Hook虚拟串口使用API Hook技术,在系统用户层注入一个接口模块。这个接口模块在系统中起到Filter(过滤)的作用。对于普通的文件操作全部放行(即交由操作系统来处理),而针对虚拟串口的操作都全部拦截下来,由Pipe(管道,Windows下进程间通讯最常使用的技术手段)接口发送给用户预先定义好的I/O设备来处理。这里的I/O设备是广义上的I/O设备,即可以是网络,文件,USB,串口,虚拟I/O等。采用此方案的虚拟串口,实现了形式上的多样化,不再局限于常规的串口转以太网,还能实现串口转文件,串口转串口,串口数据广播等多项功能。

3 系统架构

基于API Hook的虚拟串口软件主要由3个独立的模块实现:加载器(Loader),虚拟串口接口,管道(Pipe)模块:

(1)、加载器:负责创建目标进程和加载虚拟串口接口。

(2)、虚拟串口接口:所有虚拟串口的操作都在这个模块实现,包括注册虚拟串口设备,创建Pipe,初始化虚拟串口,读写虚拟串口,卸载关闭接口,共5部分。

(3)、Pipe模块:由虚拟串口接口所创建,单独负责与外部I/O设备通讯。

系统工作流程如图3所示。

3.1 加载虚拟串口接口

基于API Hook技术的虚拟串口是以DLL(动态链接库)的形式存在的,需要加载至目标用户程序的代码空间才能发挥作用,使用加载器Loader就能达到这一目的。

Loader的结构比较简单:通过Create Process带CREATE_SUSPENDED标志创建并挂起目标进程,让目标程序暂停运行后,通过Write Process Memory写入启动代码,然后调用Create Remote Thread以执行Load Library命令来加载虚拟串口接口库,最后调用Resume Thread来继续执行用户程序,至此加载过程全部完成,加载器停止运行。

3.2 注册虚拟串口设备

在加载器调用完Load Library命令后,虚拟串口接口即进入执行状态。首先它需要向注册表登记虚拟串口的相关信息,其中最重要的就是虚拟串口的设备名字,其形式为COMx(x是1~99的整数)。然后通过API Hook技术,修改系统API函数的入口,需要侦听并处理Create File,Set(Get)Comm Mask,Read File,Write File,Close Handle和Purge Comm这7个API函数。它们依次对应:打开,设置(查询),读取,写入,关闭和刷新缓存的操作。完成这一步骤后,虚拟串口就可正常进入读写流程了。

3.3 创建Pipe接口

Pipe是由操作系统提供的一种IPC(Inter Process Communication进程间通信)接口。这里使用的是Named Pipe(命名管道)。它可以在同一台机器的不同进程间以及不同机器上的不同进程间进行双向通信(需使用UNC命名规范)。管道的最大好处在于:它可以象对普通文件一样进行操作,也就是说,它可以使用Read File和Write File函数进行与底层实现无关的读写操作,这与串口读写操作完全一致。故使用此方法能简化开发的工作量和提高程序的兼容性。

3.4 虚拟串口的读写流程

虚拟串口的读写处理流程如图4所示:第一步,按照用户程序所指定的参数设置虚拟串口设备。由于虚拟串口并非物理串口,所以它没有波特率、数据位、起始位、停止位和硬件流等设置,故不论Get Comm Mask和Set Comm Mask如何配置,其接口函数均返回正确即可。第二步,通过侦听函数来监视用户程序是否将要操作一个串口设备,如为非虚拟串口设备,则调用操作系统自身的系统API函数来处理,如为虚拟串口设备则通过Pipe来转发数据,而Pipe的另一端按照要求处理数据。最后系统重新进入第二步,继续侦听串口操作,直到用户程序请求关闭设备为止。

4 结论

通过API Hook虚拟串口实现的用户层虚拟串口设备,不仅系统性能不受影响,还无需注册系统设备,没有驱动级串口的兼容问题,且能替换现有物理串口(虚拟转发),是迁移现有串口接入软件到网络接入方式的最优方案。

参考文献

[1]Wikipedia.“Serial port”http://en.wikipedia.org/wiki/Serial_port

[2]Holy Father."Hooking Windows API-Technics of hooking API functions on Windows1.1”

[3]Windows Developer Center(MSDN).“Hooks”http://msdn.microsoft.com/en-us/library/ms632589(VS.85).aspx

网口虚拟串口通信技术的设计与实现 篇2

1 课题关键技术

1.1 基于UMDF驱动模式

大多数的驱动程序都是运行在Microsoft Windows内核模式下的,应用内核模式来完成系统地址空间和内部结构的访问。但是内核驱动程序会影响系统的运行,内核程序受到损害会直接影响系统的运行甚至导致机器的瘫痪。为此,从Vista开始,微软推出基于用户的UMDF(User-Mode Driver Framework)驱动模式。基于用户模式的驱动程序,它只是访问用户地址空间,和内核模式驱动程序相比,用户模式驱动具有更好的安全性与稳定性,不会像内核模式驱动一样因为驱动有问题而造成系统崩溃。

1.2 TCP/IP工作模式

由于串口协议不具有网络层和传输层,所以串口转网口的通信,实际是将串口数据作为TCP/IP的应用层数据,用TCP封装传输的方式。由于TCP/IP协议的传输层包含了TCP协议和UDP协议,而TCP协议具有客户端和服务端两种工作模式,所以串口转网口通信的工作模式可以分为:TCP服务器端模式(TCP Server)、TCP客户端模式(TCP Client)和UDP模式三种。

TCP模式:TCP模式采用数据可靠传输机制,所以可以保证数据基本不误码、不丢失。在TCP通信中,必须由通信两端构成,即一方为TCP客户端,另一方为TCP服务端。此种模式类似于打电话机制,打电话的人是TCP客户端,而接电话的是TCP服务端。

UDP模式:UDP模式是基于非连接的模式,只要有数据发送即可立即发送,不需要事先连接,但是它无法保证数据不丢失,容易产生误码。

在网口设备虚拟串口设备通信中,可以选择基于三种工作模式的通信机制,即在虚拟串口PC端作为Server端的TCP通信模式、作为Client端的TCP通信模式和UDP通信模式,它们的传输模式可用图演示,如图1所示:

1.3 虚拟串口通信

目前在Windows下,较常用的串口通信编程方法主要有:

1)利用MSComm控件编程

Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的Active X控件,它为应用程序提供了通过串行接口收发数据的简便方法。MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。

具体的来说,MSComm控件提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。

2)利用CSerial Port类

CSerial Port类是由Remon Spekreijse提供的免费串口类,它支持线连接的串口编程操作。与MSComm控件相比,这个类打包时,不需要加入其他的文件,而且函数都是开放透明的,允许改造。

3)Windows API串口编程

Windows API是所有Windows应用程序的根本。API是一系列的例程,应用程序通过调用这些例程来请求操作系统完成一些低级服务。在Windows这样的图形用户界面中,应用程序的窗口、图标、菜单和对话框等就是由API来管理和维护的。

1.4 Socket通信

Socket套接字是网络上服务器端与客户机端之间进行双向通信双方,可以发送或接受连接请求,Socket将通信双方一端写入的信息发送至另一端的Socket中,利用Socket套接字可以方便地进行数据的传输。

基于面向连接的Socket通信的主要模式是客户/服务器(Client/Server)方式,即客户端程序(进程)发送请求给服务器(进程),服务器对客户机的请求作出响应,并产生结果,其通信流程如图2:

1)客户端应用程序流程

打开一通信通道(申请套接字),并连接到指定主机上某一特定地址,向服务器发出请求报文,等待接收应答。

给服务进程发送服务请求报文并接收应答,只要需要就一直做这一步。

关闭通信通道并终止。

2)服务器方应用程序流程

打开一通信通道并告知本地主机愿意在某一地址上接收客户请求。接收到请求后,启动一新进程处理用户请求,同时释放旧进程以响应新的客户请求。一旦完成,关闭新进程与客户的通信链路。

对于重复服务,处理该请求并发送应答信息;对于并发服务,要激活一新进程来处理此客户请求。当完成任务后,此新进程关闭与客户的通信链路并终止。

返回到第2步,继续等待客户机请求。

2 系统设计

2.1 系统设计目标和功能框架图

本系统要实现的功能是本地PC机虚拟串口程序通过网口与Internet连接,再与实际的网口设备通信,实现本地PC机对远端设备的监控,系统运行框架由PC机虚拟串口驱动程序、本机网口、远程网口设备组成,整个系统运行框架图如图3所示:

在系统,不仅可以创建任意虚拟串口,与网口建立映射,而且可以修改串口和删除串口;除此之外,本系统应用程序可以选择TCP或UDP模式进行通信,操作简单,功能全面。

2.2 系统功能模块

网络通信是基于TCP协议传输的,因此,在虚拟串口驱动程序中,虚拟串口与网口的通信实际是基于TCP模式的传输,由于TCP协议还有另一部分协议,即UDP协议,因此TCP协议有TCP和UDP两种工作模式,而TCP协议具有客户端和服务端两种工作模式,所以在网口虚拟串口通信中主要有TCP客户端、TCP服务端、UDP等3种模式。本系统的设计实现了以上3种工作模式。具体的功能模块如图4所示:

基于以上分析,本系统由4个功能模块组成:

1)虚拟串口驱动程序:负责创建或删除任意的虚拟串口。该模块的实现是以DDK为驱动开发环境,采用UMDF驱动模式开发实现的;

2)TCP服务端(TCP Server)工作模式:该模块以虚拟串口应用程序为服务端,实现监听客户端请求并建立连接通信,通信完成可以删除虚拟串口,或修改监听客户端;

3)TCP客户端(TCP Client)工作模式:该模块以虚拟串口应用程序为客户端,与远程服务端建立连接通信,通信完成可以删除虚拟串口,或修改指定的服务端;

4)UDP工作模式:该模块实现虚拟串口应用程序与远程程序的UDP连接,该模块的连接是基于非连接的不可靠传输,但是传输及时,而且可以同时建立多个连接。

2.3 系统设计流程图

本系统流程依据连接通信的流程设计,每种工作模式的设计基本都是先创建虚拟串口,选择工作模式后,输入通信对应的串口和监听或服务IP、端口,由于每种工作模式的工作方式不同也有细节上的区别,具体详细设计流程如图5所示:

2.4 程序设计

2.4.1 虚拟串口驱动设计

2.4.1. 1 驱动功能目标

在系统中,驱动通常可完成以下工作:

1)初始化,创建和删除设备。

2)处理win32打开和关闭文件句柄的请求。

3)处理Win32输入、输出(I/O)请求。

4)串行化对设备的访问。

5)访问硬件,调用其他驱动程序。

6)取消I/O请求,超时I/O请求。

7)处理一个可热拔热插的设备被加入或删除的情况。

8)处理电源管理请求。

9)使用Windows Management Instrumentation(Windows管理诊断,WMI)和NT事件向系统管理员报告。

2.4.1. 2 串口驱动的创建过程

1)编写驱动程序

(1)创建通用代码(DLL输出、COM支持类等)

(2)实现CMy Driver类(包括On Device Add方法、分配和初始化一个cmydevice对象、创建IWDFDevice对象等)

(3)实现CMy Device类(添加device-callback接口)

2)注册驱动程序

3)配置驱动程序列表

4)添加反射器

5)安装驱动程序

2.4.2 TCP服务器工作模式

TCP Server工作模式是虚拟串口端为服务端,对指定的端口进行监听并实现通信,该模块界面如图6所示:

1)模块功能

该模块要实现的功能有:

创建连接(创建虚拟串口):选择创建的虚拟串口,输入监听的IP地址和端口,即可实现串口与客户端连接并通信;

修改连接(修改虚拟串口):修改连接监听的IP和端口;串口与新指定的IP客户端连接并通信;

删除连接(删除虚拟串口):包括删除虚拟串口,串口无法与客户端连接通信。

2)工作原理

TCP Server工作模式是以虚拟串口PC端为服务端,若要与客户端设备通信,需要指定监听IP和端口,如果客户端发起连接请求则建立连接进行通信。该工作模式的原理如图7所示:

3)程序设计

设计流程:

该模块设计是先创建虚拟串口,再以虚拟串口端为服务端创建Socket通信,设计流程如图8所示:

(1)创建虚拟串口

(2)创建Socket类对象

(3)指定监听的IP、端口,进行监听

(4)接收客户端连接

(5)与客户端通信

2.4.3 TCP Client工作模式

TCP Client工作模式是以虚拟串口端为客户端,以远端设备为服务端建立基于TCP的连接实现通信的。该模块界面如图9所示:

1)模块功能

该模块实现的功能有:

(1)创建连接(创建虚拟串口):选择创建的虚拟串口,输入远程服务器IP地址和端口,即可实现串口与服务端连接并通信;如图所示:

(2)修改连接(修改虚拟串口):修改远程服务器IP和端口;串口与新指定的IP服务端连接并通信;

(3)删除连接(删除虚拟串口):包括删除虚拟串口,串口无法与服务端连接通信。

2)工作原理

TCP Client工作模式是以虚拟串口PC端为客户端,若要与远程服务端通信,需要确定远程服务端IP和端口,当虚拟串口端发起连接请求,远端服务器接受请求后便可进行通信。该工作模式的原理如图10所示:

3)程序设计

该模块设计是先创建虚拟串口,再以虚拟串口端为客户端创建Socket通信,设计流程如图11所示:

1)创建虚拟串口

2)创建Socket类对象

3)向远程服务端发起请求

4)与服务端通信

5)关闭Socket

2.4.4 UDP工作模式

UDP模式是面向非连接的、不可靠的传输,即不需要与服务端/客户端建立连接,就直接进行通信。

UDP通信双方角色上分为服务端与客户端:

(1)服务端处理流程:

(2)创建套接字(socket);

(3)将套接字绑定到一个本地地址和端口上(bind);

(4)等待接收(recvfrom);

(5)向客户端发送应答数据Sendto();

(6)关闭套接字;

客户端处理流程:

(1)创建套接字(socket);

(2)向服务器端发送数据(sendto);

(3)等待服务器应答数据recvfrom();

(4)关闭套接字;

UDP通信流程如图12所示:

3 测试

本文目标是在本机创建多个虚拟串口并实现联网通信功能,为了便于测试,该文使用串口调试助手和周立功的TCP/UDP测试工具对系统进行测试。

首先安装虚拟串口驱动。运行系统主界面如图13所示,在“选择工作模式”下拉列表可以选择TCP Server、TCP Client和UDP三种工作模式,并通过“创建虚拟串口”命令设置IP和端口,使得指定串口与相应的IP及端口建立映射关系。

其次,运行串口调试助手,如图14所示,已经安装的虚拟串口在调试助手列表中显示,运行TCP&UDP测试工具,如图15所示,创建客户端模式连接指定端口如192.168.1.112:6000。连接成功后,当COM3发送信息如“Serial Test:COM to Client”,客户端接收区立即显示信息:“Serial Test:COM to Client”;同理,当客户端发送信息如“Serial Test:Client to COM”,串口端接收框立即显示信息:“Serial Test:Client to COM”。

最后,经过测试,只要在机运行虚拟串口软件,可实现不同工作模式及多串口多端口通信的通信功能。

4 总结

经过调试,可以在本机创建多个和真实串口一样的虚拟串口设备,将TCP/IP连接映射为本机的虚拟串口,实现了与远端指定的端口进行连接通信,从而实现了本机对远端设备的监控和数据传输。由于是通过程序设计实现,不需要对设备进行改装或是添加新设备,极大地简化了工作和降低了硬件成本。

本课题设计的虚拟串口程序还有以下特点:

1)可以添加多个虚拟串口;

2)可以实现TCP/IP三种工作模式的通信;

3)可以随时启动或关闭虚拟串口映射

由于作者水平有限,在设计中还有很多不完善的地方,如目前设计平台是基于Windows的,未能实现跨平台的运行,今后会在这一方向继续探索和学习,争取更进一步完善程序。

摘要:串口通信是目前较常见的一种通信方式,为了实现串口设备的网络通信功能,该文介绍了UMDF驱动模式、TCP/IP工作模式、虚拟串口通信及Socket通信等相关技术,详细介绍了创建虚拟串口驱动和串口与网口通信的三种工作模式的工作原理及设计过程,最后通过测试实现了虚拟串口通信。由于是通过程序设计实现,不需要对设备进行改装或是添加新设备,极大地简化了工作和降低了硬件成本。

关键词:虚拟串口,Socket通信,TCP/IP模式

参考文献

[1]陆云龙,雷志华.基于Windows服务的网口与串口通信设计及应用[J].科学技术与工程,2008,8(17):5075-5079.

[2]毛战军.利用Windows API函数自由地操作注册表[J].福建电脑,2011(7):164-165.

[3]邢子羽,辛奇.串口通信与网络通信的应用研究[J].电脑知识与技术,2010(6):6196-6197.

[4]宋素荣.基于TCP的Java Socket通信技术[J].科技创新导报,2012(13):54-55.

[5]武安河.Windows设备驱动程序WDF开发[M].北京:电子工业出版,2009:4-30.

[6]龚建伟,熊光明.Visual C++/Turbo C串口通信编程实践[M].北京:电子工业出版社,2004.

虚拟串口 篇3

为此, 针对传统测试手段存在的上述问题和虚拟仪器技术体现的优点, 结合模拟钻柱动态力测量的需求, 设计一种基于虚拟仪器串口采集的动态力测试信号分析系统, 在实验室条件下基于由多节钻杆与管箍组成的模拟钻柱进行底部钻具组合动态特性的实验研究。

1 虚拟仪器串口采集

图形化语言Lab VIEW具有强大的数据采集与分析功能, 其可通过驻留于计算机系统中的VISA库, 完成计算机与仪器之间的连接, 用以实现对仪器的程序控制, 其实质是用于虚拟仪器系统的标准的API。VISA本身不具备编程能力, 它是一个高层API, 通过调用底层驱动程序实现对仪器的读写。若VISA Read读取的字节数大于缓冲区中的数据字节数, VISA Read操作将一直等待, 直至Timeout或者缓冲区中的数据字节数达到要求的字节数, 因此需要设置Timeout参数, 否则系统可能无法正常通讯。但该方法只能采取串口循环查询的方法, 因此占用资源, 影响其它线程的响应。

而MSComm是微软公司提供的用于串行通信编程的Active X控件, 它有两种处理方法:事件驱动法和查询法。其中, 查询方式实质上仍然属于事件驱动, 通过检查Comm Event属性值来查询事件和错误。当属性值发生变化时, 表明一个通信事件或一个错误发生, 但适用于较小的应用程序。与查询方式相比, 事件驱动通信是一种有效处理串行端口交互作用的方法。通过捕获MSComm控件的On Comm事件并处理这些通信事件, 具有响应及时、可靠性高的优点[8,9]。为此, 考虑到现场测试终端与计算机主机之间串口采集的实时性, 选择了基于MSComm控件的虚拟仪器串口采集方法, 以实现低转速条件下模拟钻柱动态力的过程监测和存储。

2 动态力测量系统

为研究实际钻杆的受力分布, 分析钻杆受损的原因, 研制了模拟钻杆四分量力测量系统, 如图1所示, 分别测量轴向力、径向力、扭矩和转速。其中模拟钻柱由具有不同管径和长度的钢管通过接头联接而成, 总长度约6.44米。驱动装置控制液压系统对模拟钻柱施加作用力。测力传感器随钻柱同步旋转, 则贴附有应变片的直梁受外力作用而发生变形。动态力采集终端检测受力变化, 并无线发送至主控计算机。计算机监测平台通过虚拟仪器串口, 实现动态力参数的测量、显示与存储。

图2为电池供电型动态力采集终端, 主控芯片选用超低功耗单片机MSP430F1232, 内有8路10位、200kbps的A/D转换器和8KB的Flash存储器。由于设计的动态力传感器输出范围为0~5V, 取2.5V为轴向力和径向力的方向零点。即, 当传感器输出大于2.5V时, 轴向力和径向力受压;反之, 则受拉。系统采用FSK调制方式和高效前向纠错信道编码技术, 并对发送的数据进行累加和的校验, 最大传输距离为300m, 误码率低于10-6。

为兼顾模拟钻柱转角检测、动态力参数的串口无线传输与侧向力计算, 以及人机交互, 提出了可多线程测量的虚拟仪器检测方法, 设计了基于MSComm事件驱动方法的Lab VIEW中断串口通讯。该方法无需VC等文本语言的复杂编程, 同时克服了以往Lab VIEW应用VISA模块查询串行端口而降低效率的问题, 实现动态力参数的测量、显示与文件存储, 如图3所示。

图3中人机交互界面作为主线程, 负责主消息循环, 并调度其它的两个辅助线程—串口无线采集和转角脉冲计数。为避免图形显示占用过多资源而影响数据读取和处理的问题, 两个辅助线程均被编制成子VI, 属性分别设置为I/O子系统和DAQ子系统, 从而减少了顶层VI的程序代码。虽然子VI代码和数据仍驻留在内存, 但相对于整个程序作为独立VI所占用的内存和时间都有所改善, 而且当子VI调用完毕后, 系统将释放该子VI享有的内存, 提高了系统的运行速度。但VI优先级设置不当将会引起程序运行混乱, 可能导致并行运算中优先级低的VI无法执行, 从而造成瓶颈而降低程序的工作性能, 故需针对各线程的重要性, 程序设置了不同的延时时间t1、t2、t3, 以协调数据采集和用户交互对CPU的占用频率, 防止单一线程独占CPU资源而阻塞进程。

3 动态力测量实验

测量实验装置由动态力采集终端、实验架、模拟钻柱和模拟井筒等构成, 如图4所示。通过模拟钻柱组合进行不同底部钻具组合的模拟实验。设置不同的井斜角, 在模拟钻柱的顶端施加不同液压力, 测量不同钻压和井斜角时近钻头处轴向力、侧向力和扭矩, 实验转速为1.5r/s。

表1示出了底部钻具组合的实验结构尺寸。底部钻具组合为双稳定器结构, 由不同几何尺寸的刚性段和柔性段组成, 其基本形式为:刚性较大的模拟钻柱+第1稳定器+柔性较大的模拟钻柱+第2稳定器+刚性较大的模拟钻柱。

轴向力是分析底部钻具组合运动规律的关键参数, 则图5示出了不同模拟钻柱组合时近钻头处轴向力随井斜角与钻压的变化状态。由图可知: (1) 轴向力与钻压和井斜角有关, 而且钻压是影响底部钻柱动态特性的主要因素; (2) 实验中轴向力对钻压波动敏感, 且与钻压的变化趋势相同。在钻压一定的情况下, 改变井斜角为0°、30°、60°和90°时不同底部钻具组合的轴向力变化为1.5%FS~8%FS。因此, 改变稳定器至钻头的距离, 以及两稳定器之间的钻具柔度能够改变底部钻柱的动态力, 即改变钻具的井斜性能, 控制井眼轨迹。

4 结论

获取底部钻柱动态力参数有助于分析钻柱的动力学特性、控制井眼运动轨迹和优化钻进参数。为此, 阐明了实验室条件下模拟钻柱动态力测量的研究意义, 并基于虚拟仪器MSComm控件的中断工作模式, 设计了模拟钻柱动态力无线测量系统, 结合I/O子系统设置和数据同步方法, 实现了串口无线通讯和外部脉冲计数的多线程检测, 并进行了不同钻压和井斜角情况下模拟钻柱旋转过程中近钻头处动态力参数的测量实验。结果表明, 该系统能够满足模拟钻柱动态测试的要求, 可为随钻测井中底部钻柱动力学特性研究提供实验基础。

参考文献

[1]K.Bhalla, L.X.Gong, G.K.McKown.Implementation of a bottom-hole assembly program.Journal of Energy Resources Technology, 2008, 130 (4) :11-16.

[2]R.Samuel, D.P.Yao.Drillstring vibration with hole-enlarging tools:analysis and avoidance.Journal of Energy Resources Technology, 2013, 135 (3) :032904-032904-13

[3]Y.A.Khulief, F.A.Al-Sulaiman.Laboratory investigation of drillstring vibrations.Proceedings of IMechE, Part C:J.Mechanical Engineering Science, v223, 2009, pp.2249-2262

[4]管志川, 王以法, 靳彦欣.直井中底部钻柱运动状态的实验研究.石油学报, 2003, 24 (5) :102-106

[5]Z.Y.He, X.F.Huang, Z.F.He.Vibration testing system for ventilator based on virtual instrument.Applied Mechanics and Materials, 2014, 496-500:1139-1142

[6]Jagadhish V.S., Subramanian M.Using LabVIEW to monitor respiration rate for sleep study.Internation Journal of Biomedical Engineering and Technology, 2013, 12 (4) :360-370

[7]Norma Dorst.Using LabVIEW to Create Multithreaded VIs for Maxium Performance and Reliablity[M].USA:NI LabVIEW User's Manual.2000

[8]L.X.Shi, H.H.He.Intelligent management system research and design based on MSComm and Winsock.Proceedings of SPIE on the Fourth International Conference on Machine Vision, 2012, 8349:83492A-1-7

虚拟串口 篇4

一、系统总体设计框架

概况地讲, 本系统由上位检测层, 通信系统层和前段设备层三部分组成。前段设备层是工业现场设备, 如各类PLC、摄像头、GPS设备;通信系统层是本设计的核心, 包含串口服务器、以太环网交换机、无线通信模块等等;上位检测层包含控制软件、数据库等, 负责前段设备的显示、控制和存储。系统简图如图1所示。

二、系统硬件设计与实现

2.1前端设备

本设计系统的前端设备可以包含各类工业PLC、传感器和监控设备等。随着计算机技术和通信技术的发展, 目前工业自动化现场前端设备丰富多样。由于PLC不断地采用新技术以及增强系统的开放性, 在工业自动化领域中的应用范围不断扩大。PLC将计算机技术、自动控制技术和通讯技术融为一体, 成为实现单机、车间、工厂自动化的核心设备。目前主流的生产企业大多来自国外, 如施耐德、西门子、欧姆龙和罗克韦尔等;传感器的发展奠定了工业自动化的基础, 特别是在恶劣的工业环境中, 各种有毒气体、温度、湿度、质量等传感器提供了现场环境的详细指标。此外, 现场视频画面、用户GPS位置等现场数据, 在工业现场控制中都是重要的一部分。

2.2智能通信网络

本设计的通信网络以工业级设备为基础, 配合工业级以太环网技术, 将各种非以太网数据转换成以太网数据进行远距离传输, 部分场景下采用无线传输设备将数据进行无线传输, 用于克服地势环境的限制。

1、以太网串口服务器。

虽然PLC功能和应用全面, 但是绝大多数工业设备还不能直接支持以太网协议, 这样工业现场中需要将此类工业协议的数据转换成支持以太网数据, 而以太网串口服务器可以将RS232、RS422、RS485的串口数据转换成以太网数据, 通过普遍的以太网络进行远距离传输。串口服务器可使用三种使用方式:直连IP模式;虚拟串口模式;对等模式。本系统使用虚拟串口模式, 该模式下会在PC上虚拟出一个串口, 串口设备类似直接连接到物理串口设备一样, 串口服务器进行两端设备数据的转换和传输。

2、工业级无线传输设备。

工业场景下村镇环境恶劣、布线困难或者长距离的传输的场景, 因而需要使用到无线传输设备。通信系统中考虑到此类的场景, 基于modbus等总线的设备都可以通过无线通信模块, 达到安全、稳定并远距离的传输, 通过串口服务器即可以接入广泛的以太网。使用该无线模块的网络的有如下优点:节省线缆布线和维护费用;可提供分布式网络的无缝连接;可高达15Mbps的数据吞吐量, 2KM的距离。

3、工业以太环网。

通信网络的核心部分是基于Ring On技术的工业以太环网, 前端设备采集的数据直接或者通过以太网网关接入工业级以太环网, 通过工业级的传输网络将数据传输到远端控制中心。该网络具有如下优点:工业级以太环网, 适合恶劣环境;不间断的冗余环网网络, 恢复时间小于20ms;网络稳定, 性能优良。

2.3控制中心设计

该部分基于现有的服务器端标准设计, 包含存储器、控制设备和显示设备等。自动化工厂的数据通过传输单元接入控制中心, 每种不同的PLC都有相应的上位机模块, 可以将数据直接显示出来或者直接进行存储。

三、系统优势与展望

本通信系统以工业以太环网为基础, 结合无线通信模块, 承载工业现场的前端设备、通信网络和后端控制系统, 组成了一个完整的工厂自动化解决方案。以太网串口服务器的使用简单的完成了快速远距离传输的效果;控制端使用虚拟串口减少了对控制器的要求并使用灵活, 适合多类控制场景;工业PLC类型的多样性间接突出了本系统高度的可移植行。

摘要:工业现场有很多有效的数据需要处理, 如视频数据、音频数据、温湿度数据和工业现场PLC采集的数据等等。传统的工业系统一般是在近端完成对工业现场的控制、数据的采集和存储, 本文介绍了一种基于工业以太环网、无线通讯、虚拟串口等技术的远距离工业自动化通讯系统, 可完成对恶劣的工业现场信息的远程处理, 相比传统系统, 本系统具有更强的稳定性、实时性和便捷性。

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:认知隐喻的翻译 下一篇:广西师范大学漓江学院思政课实践成果学生优秀论文9号作品大学生应对突发事件的认知与心态调查