




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
. . . . .一 无线通信网络简介1 无线通信控制网络 无线通信网络,由于其特有的非接线通信方式的优点,广泛应用于特定地理位置(如山区、油田和水利设施等)的现场遥测遥控领域。尤其在分布距离较远且数据传输量不大时,无线通信网络的优势更为明显。 目前,采用无线通信技术的工控产品很多,有的采用RF调频通信原理;有的采用扩频通信原理。根据发射功率的不同,无线通信的距离也各不相同。也有很多公司开发出了应用于不同场合的无线数传模块,大大方便了无线通信测控系统的设计。考虑到试验系统的要求及实际应用情况,我们选用了台湾威达(ICP)的牛顿无线通信模块和工控模块开发无线通信控制网络实验平台。 台湾威达(ICP)公司是著名的工控产品研发和生产公司,其公司生产的工业控制计算机、数据采集卡和工控模块都是目前工控行业的主流产品。尤其是工控模块产品,由于性价比高、组合使用方便,深受用户好评。典型的无线通信控制网络分布式控制系统见图1-1所示。 图1-1 典型无线通信控制网络2 Visual Basic介绍 2.1 Visual Basic 6.0简介Visual Basic(简称VB)是Microsoft公司为开发Windows应用程序提供的强有力的开发环境和工具,它是具有很好的图形用户界面的程序设计语言,采用面向对象和事件驱动的程序设计两种新机制,把过程化和结构化编程结合在一起。程序开发图形化的构思使开发者非常容易地创建一个窗体(Form),再从VB工具箱中选择一些控件放入窗体中,无需编程设计界面。界面设计面向对象,容易完成,但是应用程序的过程部分却不是面向对象的,然而VB具有事件驱动方法,使开发者容易地完成界面设计和代码编写。 VB使用方便,具有Windows开发环境所支持的一些主要功能: 1.创建各种程序对象,如文本框和命令按钮等。2.创建多个多种类型的窗口,如窗体等。3.实时地响应光标和键盘事件,如鼠标选中的事件过程等。4.可根据需要显示或隐藏各种对象,如命令按钮可不见。5.直接控制打印机输。6.控制RS-232串行通迅接口,实现串行数据通迅。7.可实现和其它Windows程序之间的相互通信。8.有强大的图形图像处理功能。9.能创建和管理数据库。与其它程序设计语言相比,VB也有许多独特的性能:1.成功地简化了界面设计,为应用程序开发提供了通向Windows操作环境的快捷途径。2.提供了应用程序开发所需的许多代码(如窗体、控件),加快了开发速度。3.让开发者以可视化方式和代码方式进行工作。4.完善的运行错误处理功能。5.丰富的图形指令,可生成和机制作各种图形。6.强大的数据和字符处理功能。7.具有丰富的控件库。 8.可编译成.EXE文件,脱离VB环节单独运行。自从VB产生之后,很多人都会使用其来开发自己的应用程序,在开发过程中,开发人员不需要非常清楚有关Windows操作系统的细节,就可以作出满意的作品。2.2 Visual Basic的编程方法VB的窗口化设计遵循了以下四个主要的步骤:1.选择对象(Object):确实存在的东西,可以被使用,有一个特定的名字,就是一个对象。在VB应用程序的设计中,窗口、鼠标、图片、按钮等都是对象。一个对象就是既含数据又含操作该数据代码的一个逻辑实体,数据是对象的特性,操作即函数或过程,是对象的行为。对象是程序的基本元素,在对象存在的程序中,所有的动作和信息必定和对象有关。所以VB程序设计首先要根据选择所需的对象。VB中的对象与面向对象程序设计中的对象在概念上是一样的,但在使用上有很大的区别,在面向对象程序设计中,对象由程序员自己设计,而在VB中,对象是由系统设计好的,可直接作用或对其进行操作。对象的选择可以利用VB的工具箱进行。2.设置属性(Property):每一个存在的对象所具备的特性称为属性。例如,一个按钮的标题(Caption),名称(Name ),颜色(Color ),字体大小(Fontsion),是否可见(Visible)等都称为其属性。每个对象都可以根据需要设置其属性。在VB中,所有对象的属性都通过属性窗口显示出来,当单击某一对象时,属性窗口即显示它的所有属性。属性即可以通过属性窗口来设置,又可以依靠程序语句来设置。3.引发事件(Event):所谓事件,是由VB事先设置好的、能够被对象识别的动作。每一个对象总会与外界(其它对象)产生互动,此互动产生时,就是这个对象有一个事件被引发了。一个对象可以被引发的事件有很多,例如,一个鼠标可以有单击、双击、拖移、移动等事件,其它对象也有一样或类似的事件,不同类型的对象可能会有不同的事件可以被外界引发。响应某个事件所执行的操作通过一段程序代码来实现,这样的程序代码叫做事件过程。一个对象可以识别一个或多个事件,因此可以使用一个成多个事件过程对用户或系统的事件作出响应。事件过程的一般格式如下: Private Sub对象名称一事件名称()事件响应程序代码 End Sub 对象名称指的是对象的Name属性,事件名称是由VB予该对象事件的,而这个事件必须是对象所能识别的预先定义好赋予该对象事件的,而这个事件必须是对象所能识别的。4.确定方法(Method):当对象被引发了某个事件之后,系统(或程序)应该采用的相应步骤就称之为方法。VB提供了大量的方法,有些方法可以适用于多种甚至所有类型的对象,而有些方法只适用于少数几种对象。例如,Myform. Print Good,表示VB提供的Print方法可以在名为Myform的窗体对象上显示字符串Good;Printer. Print Good表示Print方法可以在打印机对象中打印出字符串Good。在软件编译方法上,现在主要采用的结构方式有两种:BS结构和CS结构。B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个: 只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。 客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。 对客户端的操作系统一般也会有限制。可能适应于Win98,但不能用于win2000或Windows XP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。二 无线通信平台的VB控制系统实验1 实验目的1)掌握电热炉温度控制的原理及方法。2)掌握基于无线通信平台VB电热炉温度控制系统数据采集和显示原理。2实验仪器微机、自动控制实验箱、无线通信网络(泓格i7000系列)3实验内容 本次设计所做的是基于无线通信平台VB温度PI控制系统数据采集及显示。分为VB控制界面设计、数据采集、系统设计及硬件设计四部分目的是通过DS18B20温度传感器,将电热炉的温度数据传输到实验箱上,实验箱会显示当前温度,通过单片机的处理及RS232通信,将数据显示到电脑上,并通过VB界面进行显示和监控。其中,硬件方面是由PC机和MAX232来实现的,DS18B20采集到的温度数据通过串行通讯线传送给PC机,运行在PC机上的编程软件VB利用串行通讯线提供给硬件的接口,对整个单总线进行操作控制,并且对测量数据进行处理。软件方面主要是通过对系统参数的设置,通信控件的应用,最终实现对DS18B20的控制和温度数据的读取。4实验电路 图2-1 温度自动控制实验连接图5 实验步骤1 总体系统设计2 VB界面设计3 硬件设备连接4 利用调试软件及通信连接软件进行无线连接5 开启电热炉,用DS18B20测炉温,进行数据采集6 进监控和调试 三 无线通信平台VB温度控制系统设计1.1系统硬件设计整个系统结构由一台工控机构成的上位机用于整个系统的管理,安装多点测温系统管理软件,并通过无线通信对下位分机进行控制。下位分机一方面通过无线通信接收来自上位通迅总线的上位机控制命令,另一方面通过程序采集各个传感器的温度值,实现温度数据检测和转换。另外上位机还具有数据的输出打印机进行随时数据打印。硬件系统采用这种结构,成本小、维护简单、工作稳定。系统上位机管理分析软件:VB易学的可视化编程语言开发系统,以其所见即所得的可视化界面设计风格和面向对象的程序设计等特点,已广泛地应用于各个领域。采用VB开发数据采集和工业控制应用软件十分方便,尤其软件界面设计非常便捷,编程工作量较小,开发周期短,完全能够满足系统功能的要求的数据采集速度、其较强的数据处理能力和简单灵活的编程风格,可大大缩短开发周期,减少开发费用,减轻编程人员的设计负担,无疑是一种理想的选择。界面友好易操作,大量检测结果由计算机进行管理,实时数据分析及显示,图形画面显示结果,并有打印机、互联网等多种输出方式,功能强大,性能优良。上位机.PC机无线通信485huo下位机温度传感器图3-1 硬件连接框图1.2串行通信介绍 1.2.1串行通信基础随着计算机的广泛应用,市场上许多电气产品应用串口通信技术作为对外数据交换的桥梁,串口通信受到如此重视,主要原因就是这个技术简单而且容易实现。串行通信是指通信的发送方和接收方之间数据信息的传输是在单根数据线上,以每次一个二进制的0、1为最小单位一位一位的传输。串行数据传送的特点是:1)串行传送在一根传输线上既传送数据信息又传送联络控制信号;2)有固定的数据格式,分异步与同步数据格式;3)串行通信中对信号的逻辑定义与TTL不兼容,故需要进行逻辑关系与逻辑电平转换;4)串行传送信息的速率需要控制,要求双方设定通信传输的波特率。总而言之,串行通信是指在单根数据线上将数据一位一位地按照顺序进行传送。在传送数据的过程中,每发送完一个数据,紧接着发送第二个,直到发送完最后一位为止。在接收数据的过程中,每一次从单根数据线上一位一位地依次接收,直到最后收到一个完整的数据为止。因此,串行口通信方式一般用在远距离数据通信中,正好符合具有占用通信线少、成本低等优点。异步传输与同步传输网络通信过程中,通信双方要交换数据,需要高度的协同工作。为了正确的解释信号,接收方必须确切地知道信号应当何时接收和处理,因此定时是至关重要的。在计算机网络中,定时的因素称为位同步。同步是要接收方按照发送方发送的每个位的起止时刻和速率来接收数据,否则会产生误差。通常可以采用同步或异步的传输方式对位进行同步处理4。在异步传输中,信息以字符为单位进行传输 。异步传输的优点就是收、发双方不需要严格的位同步,所谓“异步”是指字符与字符之间的异步,字符内部仍为同步。在同步传输中,不仅字符内部为同步,字符与字符之间也要保持同步。同步传输的特点是可获得较高的传输速度,但实现起来较复杂。为了解决以上问题,串行传输可以采用以下两种方法:异步传输和同步传输。1) 异步传输 异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它们会在什么时候到达。一个常见的例子是计算机键盘与主机的通信。按下一个字母键、数字键或特殊字符键,就发送一个8比特位的ASCII代码。键盘可以在任何时刻发送代码,这取决于用户的输入速度,内部的硬件必须能够在任何时刻接收一个键入的字符。异步传输存在一个潜在的问题,即接收方并不知道数据会在什么时候到达。在它检测到数据并做出响应之前,第一个比特已经过去了。这就像有人出乎意料地从后面走上来跟你说话,而你没来得及反应过来,漏掉了最前面的几个词。因此,每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息的终止。按照惯例,空闲(没有传送数据)的线路实际携带着一个代表二进制1的信号,异步传输的开始位使信号变成 0,其他的比特位使信号随传输的数据信息而变化。最后,停止位使信号重新变回1,该信号一直保持到下一个开始位到达。例如在键盘上数字“1”,按照8比特位的扩展ASCII编码,将发送“00110001”,同时需要在8比特位的前面加一个起始位,后面一个停止位。2) 同步传输 同步传输的比特分组要大得多。它不是独立地发送每个字符,每个字符都有自己的开始位和停止位,而是把它们组合起来一起发送。我们将这些组合称为数据帧,或简称为帧。数据帧的第一部分包含一组同步字符,它是一个独特的比特组合,类似于前面提到的起始位,用于通知接收方一个帧已经到达,但它同时还能确保接收方的采样速度和比特的到达速度保持一致,使收发双方进入同步。帧的最后一部分是一个帧结束标记。与同步字符一样,它也是一个独特的比特串,类似于前面提到的停止位,用于表示在下一帧开始之前没有别的即将到达的数据了5。综上所述,我们可以归结一下同步传输和异步传输的区别,具体如下:1)异步传输是面向字符的传输,而同步传输是面向比特的传输。2)异步传输的单位是字符而同步传输的单位是帧。3)异步传输通过字符起止的开始和停止码抓住再同步的机会,而同步传输则是以数据中抽取同步信息。4)异步传输对时序的要求较低,同步传输往往通过特定的时钟线路协调时序。5)异步传输相对于同步传输效率较低。串行通信工作模式通过单线传输信息是串行数据通信的基础。传输的数据往往依赖于两个站(点对点)之间进行传送,依据数据流的方向,串行通信的工作模式可以分为3种:单工、半双工、全双工。1) 单工方式 数据传送是单向的,称之为单工形式的显著特点。在通信双方的数据传输中,其中一方固定为发送端,另外一方则固定为接收端。由于使用一根数据线,所以数据信息只能沿一个方向传送。单工形式常常用于只面向一个方向传送数据的场合。比如说计算机与打印机之间的通信就能够当作单工形式,因为只有计算机向打印机进行传送数据的通信,然而在相反的方向上不存在数据传送。另外在某些通信信道中,也应用串行通信工作模式,比如单工无线发送等。2) 半双工方式 在半双工通信方式中,通信双方使用同一根传输线,这个数据线具有发送数据和接收数据的功能,然而却不能同步发送和接收数据,也就是说在某一时刻,其中的一方只能发送数据,而另一方只能接收数据。在半双工形式下,并不是只能使用一条数据线,也可以使用两条数据线进行数据的传送。每端需要有一个收/发切换电子开关是进行半双工通信的关键,依靠切换电子开关来控制数据的传输方向。由于存在切换,所以在通信过程中会出现时延,以此造就低效的信息传输速率。比如说像应用单方向传输的打印机而言,采用半双工方式就可以达到要求了,从而可以节省资源。3) 全双工方式 在全双工数据通信中,两根传输线上存在可以由两个不同的站点同时发送和接收的数据,发送和接收可以同步进行。全双工方式具有信息传输效率较高的优点,因为在数据的传送每一端都有发送器和接收器,并且使用两条传送线进行通信,具体应用可以在交互式应用和远程监控系统中使用。握手信号握手信号实质上是一系列相互识别的控制信号,这行信号发生在两台计算机或其他设备之间进行通信或传递,以此来控制传送的数据。在双方数据的通讯中,握手信号起到通知双方互相通信的作用,发送方能够告知接收方是否有数据要发送,接收方通过握手信号通知发送方它是否已经做好了接收信号的准备。握手信号在通信过程中遵循统一协议。硬件握手指的是一种通过专用线而不是数据线进行的信号交换,参与握手的设备表明已做好发送或接收数据的准备。软件握手由通过同样的线路传输的信号组成,用于传送数据,如用调制解调器通过电话线进行通信6。通信参数串行端口的通信方式是将字节拆分成一个接着一个的位再传送出去,接到此电位信号的一方再将此一个一个的位组合成原来的字节,如此形成一个字节的完整传送。在传输进行的过程中,双方明确传送信息的具体方式,否则双方就没有一套共用的译码方式,从而无法了解对方所传过来信息的意义。因此双方为了进行通信,必须遵守一定的通信规则,这个共同的规则就是通信端口的初始化。通信端口的初始化是对数据的传输速度(波特率),数据的传送单位,起始位与停止位,校验位进行的设置。波特率是指串行通信中每秒内传送二进制数码的位数,以bit/s(位/秒)为单位。它是衡量串行数据传送速度快慢的关键参数。计算机通信过程中常用的波特率是:110,300,600,1200,2400,4800,9600,115200bps。在数据的传送单位中,一般串行通信端口所传送的数据是字符型。当使用字符型编码时,工业界常使用到的是ASCII字符码,它使用了8位形成一个字符。不同的情形下(依照使用的协议),会使用到不同的传送单位。使用多少位合成一个字节必须先行确定。设置起始位和校验位是由于异步串行传输中并没有使用同步脉冲作基准,所以接收端完全不知道传送端何时将进行数据的传送。发送端准备要开始传送数据时,发送端会在所送出的字符前后分别加上高电位的起始位(逻辑0)及低电位的停止位(逻辑1),它们分别是所谓的起始位和停止位。也就是说,当传送端要开始传送数据时,便将传输线上的电位由低电位提升至高电位;而当传输结束后,再将电位降至低电位。接收端会因起始位的触发(电压由低电位升至高电位)而开始接收数据,并且因为停止位的通知(电压维持在低电位)而明确数据的字符信号已经结束,当加入了起始位及停止位才比较容易达到多字符的接收能力。起始位固定为1位,然而停止位可以有1、1.5、2位等多种选择,具体设置方法要依据通信双方协议即可。校验位是为了预防错误的产生,才采取的校验位作为检查的机制。设置校验位的作用是用来核对所传送数据的是否正确的一种标志,它可以分为奇校验和偶校验,分别是表示给定位数的二进制数中1的个数是奇数还是偶数的二进制数。1.2.2串行通信接口标准RS-232、RS-422、RS-485、USB等接口在串行通信接口应用的很广泛。其中,RS-232、RS-422和RS-485标准仅仅是针对接口的电气特性制定的规范,并没有关系到接插件、电缆或者协议。USB是近些年来应用较广泛的接口,在高速数据传输领域有着长远的前途。由于本系统设计中应用了PC机上的RS-232接口,所以仅对此做出描述。RS-232串行接口到目前为止,RS-232是个人计算机与通信工业中常用的串行接口。对于RS-232接口,人们习惯的称它为在低速率串行通信中,具有延长通信距离优点的单端标准。因此,RS-232 应用了称之为单端通信的非平衡传输方式。它有两种结构,一种是25针的,一种是9针的,引脚图如图3-1所示。图 3-1 RS-232C引脚图Fig.3-1 RS-232CPin mapRS-232电气特性在发送数据和接收数据终端上: -3V-15V代表着逻辑1, +315V代表着逻辑0;在请求发送、允许发送、数据发送准备好、数据终端准备好和数据载波检出线等控制线上:+3V+15V表示信号有效,-3V-15V表示信号无效。RS-232C标准很直观的阐述了逻辑电平的内涵。对于以上表述而言,也可以解释为电路处于工作状态时,传输电平应位于(315)V之间。介于-3+3V 之间,低于-15V或高于+15V的电压对于电路来说没有任何作用。所以,电平在(315)V之间是有效的工作状态。RS-232接口引脚定义RS-232C标准接口应用最为广泛的有8根,下面我们将一一介绍:数据发送准备好(DSR)用来表示当DSR处于工作状态下,调制解调器能够应用。数据终端准备好(DTR)用来表示当DTR处于工作状态下,可以进行数据的传送。当电源一通电时,数据发送准备好和数据终端准备好就会处于工作状态。然而,进行通信的关键是由控制信号决定的,这两个信号准备好仅仅代表器件自身有效,并不表明是否可以通信了。接下来将介绍控制信号的应用。请求发送(RTS)当数据终端设备想要向通信设备传输数据时,应用到此信号。当此信号有效时,RTS自身询问调制解调器是否需要发送数据7。允许发送(CTS)此信号用以表示数据通信设备已经做好接收来自终端设备的数据准备,也可以表示为RTS的响应信号。终端数据无误的经由调制解调器传输时,此信号处于有效状态。在全双工和半双工系统中,请求发送和允许发送作为发送方式和接收方式之间的转换。由于在全双工系统中需要设置发送和接收通道,所以可以设置请求发送和允许发送为高电平。接收线信号检出(RLSD)此信号又称为数据载波检出线。它用来表示,当数据通信设备已经成功的开始传送数据时,数据终端设备也相应的开始接收数据。当数据由一方到达另一方时,数据载波检出线处于工作状态。并且告知另一方准备接收信号,经过调制解调信号后,送到终端设备。发送数据(TxD)当数据终端做好接收准备时,经由此信号将数据传到目的地。接收数据(RxD)当调制解调器做好准备时,由目的地传送到调制解调器。串行通信接口电路标准串行接口标准最终能够达到DTE和DCE之间物理与电气的要求,然而为了证明DTE 和DCE之间的数据通信,需要设置一系列的协议和规定。这些协议规定包括:收发双方的同步方式、传输控制步骤、差错检验方式、数据编码、数据传输速度、通信报文的格式及控制字符的定义。异步通信适配器是实现这些功能和协议的关键。当CPU与外设进行串行通信时,通常使用可编程的异步通信适配器(UART)实现串并转换。CPU要发送数据时,UART能把并行数据转换成串行数据,并添上起始位、校验位、停止位,然后由发送数据线输出。当CPU接收数据时,UART从串行线上接收数据,去掉起始位、停止位,并检验有无奇偶错误和帧错误,然后将串行数据变成并行数据,送给CPU。 学习好帮手2系统界面设计2.1 工程的建立下文将分别介绍在Microsoft Visual Basic6.0集成环境下各个模块的设计过程。首先运行Microsoft Visual Basic6.0,出现“新建工程”对话框,如图4.2所示。选择新建“标准EXE”,执行“打开”命令,进入Visual Basic工程集成开发环境,窗体设计器会自动出现一个Form1的空白窗体,如图4.3所示。图3-2“新建工程”对话框图3-3空白窗体2.2用户登陆模块设计为防止不相关人员随意打开本软件修改,删除检测结果,所以软件运行后,首先设计了登陆对话框,要求输入用户名和密码,输入正确后才能进入该软件的主界面。如果失败达三次,则自动退出系统。用户登陆界面如图4.4所示。图3-4 用户登陆界面在空白窗体上,添加2个Label控件、2个TextBox控件、1个ADODC控件。界面上的2个Label控件用来标识窗体中的信息(用户名,密码),2个TextBox控件用来输入用户名和密码,2个CommandButton控件用来确定或取消登陆,1个ADODC控件(运行时隐藏)用来完成和数据库用户信息表的连接。2.3系统功能模块设计系统功能模块主要完成两个功能:用户管理和退出系统。其中用户管理用于修改拥护密码和添加新的用户名和密码。1.修改密码界面如图4.5所示。图3-5修改用户密码界面界面上的4个Label控件用来标识窗体中的信息(用户名,原密码,新密码,确认密码),4个TextBox控件用来输入用户名,原密码,新密码,确认密码2个CommandButton控件用来确定或取消修改密码, 2.4主界面的设计 为了方便地管理系统程序,且占有教少的系统资源,我们采用多文档界面MDI进行主界面的设计。通过选择主界面上的菜单,我们就可以实现对温度信息的各种操作。系统的主界面如图4.7所示。图3-6系统的主界面 3 数据采集与显示程序设计 数据采集模块主要由名称为Timer_Sample的一个Timer控件实现数据采集,由于是多路温度采集,首先设置一个变量,从1一直到总温度点数逐一递增,该变量影响地址和通道数,当该变量为1时,进行第1通道的温度采集,采集之后并把该变量加1,地址和通道做出响应的变化,进行下次采集操作。整个过程放在一个For循环里面实现。下位机的设置是当上位机发送地址和通道给下位机时,下位机把就把对应该地址和通道的温度值读取出来保存,当上位机需要读取时,上位机发送MSCommObj.Input命令,下位机就把储存的温度值发送给上位机。上位机进行判断是否超时,整个过程中应该在50ms以内完成,50ms之后上位机进行采集数据操作,并且对采集出来的数据进行判断,下位机正常的反馈值应该是一个大于5个字符位的温度值,如果温度值有错误,或者超时没有采集出来温度值,则手动设置采集出来的数据为0,并以红色标记,表示数据有错误,需要检查硬件设备,如果温度值没有错误,符合要求,则把采集上来的温度值复制到m_s_SaveTemp中进行存储。延时50ms的实现:在VB当中,并没有延时程序,所以必须通过程序来实现,实现的方法是通过GetTickCount函数来实现。GetTickCount函数包含在kernl32.dll库里面,在程序加载的时候需要在模块中声明。GetTickCount的函数功能:GetTickCount返回从操作系统启动到现在所经过的毫秒数。通过这个函数,先建立一个变量,储存程序开始的时间,然后用当前时间减去程序开始时间,如果结果少于超时时间,则继续循环,直到差值大于超时时间,这样就完成了延时的功能,延时的时间就是设定超时的时间。期间还需要使用一个函数:DoEvents。DoEvents函数功能是转让控制权,以便让操作系统处理其它的事件。为了防止在延时的时候有其他事件发生,例如存储模块进行存储,则必须转让控制权给系统,这样系统才能响应其他事件,否则延时过程会导致CPU占用率100%等其他不可预料的问题发生。数据采集为了方便调试,设置了一个Debug模式,通过Debug模式总开关可以设置虚拟采数过程,不需要实际硬件连接从而达到调试程序的目的。数据采集流程如图3-7所示:图3-7 数据采集流程图在Debug模式下与在正常模式下的区别在于Debug模式并没有真正发送地址和通道的实际操作,屏蔽掉了一条语句:MSCommObj.Output = vSend,该语句在正常模式下实现把vSend里面的数值也就是地址和通道通过串口发送给下位机,在这里并没有真正发送,所以当没有下位机的情况下,也可以进行调试,语句不出错。在接收电压数据的操作过程中也同时屏蔽掉了一条语句:vReciveBuffer = MSCommObj.Input,并没有真正把数据采集上来,而是选择一个固定的数当作采集上来的电压值,从而才能继续接下来的操作。通过Debug模式的创建,可以在没有硬件的情况下进行软件编辑,加快了工程进度,并且还能容易的找出问题的所在之处。为了达到实时数据采集目的,实时数据采集处理程序采用 MSComm 事件驱动方式。OnComm事件程序的流程图如图3-8所示:图3-8 OnComm 事件程序的流程图 4 系统控制方法设计 系统控制的总体思路以及细节流程图如下图3-9和3-10所示:图3-9 系统控制的框图 图3-10 控制窗口流程图四 系统运行结果与分析1 系统运行结果 图4-1 运行结果图2 分析改进措施 本文通过VB6.0可视化编程语言编写了一个多点测温系统管理软件,软件实现了对电热炉温度采集下位机的数据采集、 即时温度曲线显示,基本实现了对电热炉测温系统的管理。本系统温度采集精度可以达到1,主要用于工业民用上温度采集,例如粮库温度采集或室内温度采集,采集反映时间0.1s,在0.1s内即可完成采集温度, ,历史温度曲线绘制时间间隔20s,每20s更新温度曲线一次。达到了课程设计的基本要求。五 参考文献1于洋,陈亮等测控系统网络化技术及应用北京:机械工业出版社.20092 VB精彩编程150例3 西北工业大学出版社。2004.6 .351-358 3. Steven jordan美 牛力等 VB编程宝典。电子工业大学出版社2005.1-376 六 附录 程序Option ExplicitPublic c As Integer, T As Integer Private Sub Combo1_Click() 选择端口 If Combo1.Text = COM1 Then MSComm1.CommPort = 1 ElseIf Combo1.Text = COM2 Then MSComm1.CommPort = 2 ElseIf Combo1.Text = COM3 Then MSComm1.CommPort = 3 ElseIf Combo1.Text = COM4 Then MSComm1.CommPort = 4 Else MSComm1.CommPort = 5 End If End SubPrivate Sub MSComm1_OnComm()End SubPrivate Sub Command1_Click()Dim i As Integer, j As Integer For i = 1 To 19 For j = 1 To 3 MSFlexGrid1.TextMatrix(i, j) = Next j Next i Timer3.Enabled = True T = 0 c = 1 Call draw Call Combo1_Click MSComm1.PortOpen = True comm1.Output = Textsend.TextEnd SubPrivate Sub Command2_Click() MSComm1.PortOpen = False Timer3.Enabled = False Timer1.Enabled = FalseEnd SubPrivate Sub Command3_Click()comm1.PortOpen = FalseEndEnd SubPrivate Sub Command4_Click()Unload Form2End SubPrivate Sub Form_Load() Form1.Caption = 温度监测系统 Combo1.AddItem COM1 Combo1.AddItem COM2 Combo1.AddItem COM3 Combo1.AddItem COM4 Combo1.AddItem COM5 Timer1.Interval = 1000 Timer3.Interval = 1000 Timer3.Enabled = False Dim i As Integer For i = 1 To 19 MSFlexGrid1.Col = 0 MSFlexGrid1.Row = i MSFlexGrid1.Text = i Next i MSFlexGrid1.Row = 0 MSFlexGrid1.Col = 0 MSFlexGrid1.Text = 序号 MSFlexGrid1.Col = 1 MSFlexGrid1.Text = 温度 MSFlexGrid1.Col = 2 MSFlexGrid1.Text = 时间 MSFlexGrid1.Col = 3 MSFlexGrid1.Text = 日期 End SubPrivate Sub List1_Click()End SubPrivate Sub MSFlexGrid1_Click()Dim i As Integer, j As IntegerFor i = 1 To MSFlexGrid.Rows MSFlexGrid.Col = 0 MSFlexGrid.Row = i MSFlexGrid.Text = i Next iFor j = 0 To 19 MSFlexGrid.Col = 3 MSFlexGrid.Row = j MSFlexGrid.ColWidth(j) = MSFlexGrid.ColWidth() + 200 Next jEnd SubPrivate Sub draw() Picture1.FontSize = 15 设置字体大小 Picture1.DrawWidth = 2 Picture1.ForeColor = QBColor(12) Picture1.Cls Picture1.Scale (-30, 100)-(230, -30) 横坐标 Picture1.Line (-30, 0)-(220, 0) Picture1.Line (221, 0)-(218, 1) 横坐标箭头及y值 Picture1.Line (221, 0)-(218, -1) Picture1.PSet (223, 4) Picture1.Print x Picture1.Line (0, -30)-(0, 100) 纵坐标 Picture1.Line (-1, 98)-(0, 100) 纵坐标箭头及x值 Picture1.Line (1, 98)-(0, 100) Picture1.PSet (4, 98) Picture1.Print y Picture1.FontSize = 8 设置字体大小 Picture1.PSet (20, -10) Picture1.Print 20 Picture1.PSet (40, -10) Picture1.Print 40 Picture1.PSet (60, -10) Picture1.Print 60 Picture1.PSet (80, -10) Picture1.Print 80 Picture1.PSet (100, -10) Picture1.Print 100 Picture1.PSet (120, -10) Picture1.Print 120 Picture1.PSet (140, -10) Picture1.Print 140 Picture1.PSet (160, -10) Picture1.Print 160 Picture1.PSet (180, -10) Picture1.Print 180 Picture1.PSet (200, -10) Picture1.Print 200 Picture1.PSet (-14, 5) Picture1.Print 5 Picture1.PSet (-14, 15) Picture1.Print 10 Picture1.PSet (-14, 25) Picture1.Print 15 Picture1.PSet (-14, 35) Picture1.Print 20 Picture1.PSet (-14, 45) Picture1.Print 25 Picture1.PSet (-14, 55) Picture1.Print 30 Picture1.PSet (-14, 65) Picture1.Print 35 Picture1.PSet (-14, 75) Picture1.Print 40 Picture1.PSet (-14, 85) Picture1.Print 45 Picture1.PSet (-14, 95) Picture1.Print 50End SubPrivate Sub Text1_Change()Text1.Text = MSFlexGrid1.TextMatrix(0, 1)End SubPrivate Sub Timer1_Timer()Picture1.FontSize = 3 设置字体大小Text2.Text = TimeText3.Text = DatePicture1.PSet (T, T), vbGreenPicture1.Line (T, T)-(T = T - 2, T = T - 2),
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版采砂厂承包环境治理合作合同标准文本
- 二零二五年度公共广播系统安全监测与预警合同
- 二零二五年搅拌站砂石料一站式采购合同模板
- 2025版航空燃油灌装作业安全协议合同
- 2025电子商务纠纷公证处理专项服务合同
- 二零二五年度太阳能热水器安装服务协议范本
- 2025版互联网接入合作协议范本
- 2025版智能广告牌项目投资与运营管理合同
- 二零二五年度房地产项目投资并购合同
- 2025版医院后勤管理服务合同
- 计划管理培训课件
- 整体租赁底商运营方案(技术方案)
- 糖尿病的运动治疗课件
- 订单采购模板
- 太阳能并网柜施工方案
- 海南省生活垃圾分类收集屋(亭)配置指南
- 实习生综合考评表
- 职业健康检查委托协议书示范文本模板
- WJT9093-2018民用爆炸物品重大危险源辨识
- 企业师徒协议书范本
- GB/T 4502-2023轿车轮胎性能室内试验方法
评论
0/150
提交评论