




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学 生 实 习 报 告实习专业班级 测控技术与仪器2008-1学 生 姓 名 宋 亮 实 习 性 质 网络虚拟仪表设计实 习 地 点 校 内 实习起讫日期 2012-03-122012-03-25指 导 教 师 程万胜网络虚拟仪表设计(服务器端)一、实习目的: 1、掌握虚拟仪器技术。 2、熟悉LabWindows/CVI的基本使用方法。 3、掌握LabWindows/CVI常用面板、控件及基本函数库。 4、学会使用TCP库完成信号之间的传输。二、实习要求:1、两人一队,其中一人设计信号发送端,另一人设计信号接收端。2、发送端和接收端分别在不同的计算机上用网络TCP传送信息。3、设计完成后,各自完成自己部分的设计报告。三、LabWindows/CVI 简介LabWindows/CVI 是National Instruments 公司(美国国家仪器公司,简称NI 公司)推出的交互式C 语言开发平台。LabWindows/CVI 将功能强大、使用灵活的C 语言平台与用于数据采集分析和显示的测控专业工具有机地结合起来,利用它的集成化开发环境、交互式编程方法、函数面板和丰富的库函数大大增强了C 语言的功能,为熟悉C 语言的开发设计人员编写检测系统、自动测试环境、数据采集系统、过程监控系统等应用软件提供了一个理想的软件开发环境。 NI公司的LabWindows/CVI是一个久经验证的用于测试和测量的ANSI C开发环境,极大地提高了工程师和科学家们的生产效率。他们使用LabWindows/CVI来开发高性能的、可靠的应用程序,用于制造测试、军事/航天、通讯、设计验证和汽车工业等领域。开发人员可以在设计阶段利用LabWindows/CVI的硬件配置助手、综合调试工具以及交互式执行功能,来运行各项功能,使得这些领域的开发流水线化。使用内置的测量库,你可以迅速的开发出复杂的应用程序,例如多线程编程和ActiveX的服务器/客户端程序。由于LabWindows/CVI的便利性,你可以通过在相似环境中重复使用以前的代码来维护你的代码投资,并且实现Windows、Linux®或实时平台上分布测试系统的无缝集成。 LabWindows/CVI 是为C 语言程序员提供的软件开发系统,在其交互式开发环境中编写的程序必须符合标准C 规范。 使用LabWindows/CVI 可以完成如下工作: 交互式的程序开发; 具有功能强大的函数库,用来创建数据采集和仪器控制的应用程序; 充分利用完备的软件工具进行数据采集、分析和显示; 利用向导开发IVI 仪器驱动程序和创建ActiveX 服务器; 为其它程序开发C 目标模块、动态连接库(DLL)、C 语言库。 在LabWindows/CVI 开发环境中可以利用其提供的库函数来实现程序设计、编辑、编译、链接和标准C 语言程序调试。在该开发环境中可以用LabWindows/CVI 丰富的函数库来编写程序,此外每个函数都有一个叫做函数面板(Function Panel)的交互式操作界面,在函数面板中可以执行该函数并可以生成调用该函数的代码,也可通过右击面板或控件获得有关函数、参数、函数类和函数库的帮助。在LabWindnows/CVI 的交互式环境中编写程序必须符合标准C 语言的规范。另外,在开发应用程序时可以使用编译好的C 语言目标模块,动态链接库(DLL),C 静态库和仪器驱动程序。 LabWindows/CVI 的功能强大在于它提供了丰富的函数库。利用这些库函数除可实现常规的程序设计外,还可实现更加复杂的数据采集和仪器控制系统的开发。仪器库是LabWindows/CVI 的特殊资源。它包GPIB、VXI 和RS-232 仪器的驱动程序,如示波器、多用表和函数发生器,每个驱动程序都提供可编辑的源代码。使用 LabWindows/CVI 开发工具提供的库函数可以创建自己的仪器驱动程序,可以创建单个仪器、多个仪器或实际上并不存在的虚拟仪器的驱动程序,在创建仪器驱动程序过程中可以使用LabWindows/CVI 的其它库函数。使用LabWindows/CVI 的用户界面编辑器可以创建并编辑图形用户界面(GUI),而使用LabWindows/CVI 的用户界面库函数可以在程序中创建并控制GUI。此外,LabWindows/CVI为GUI 面板的设计,准备了许多专业控件,如:曲线图控件、带状图控件、表头、旋钮和指示灯等,以适应测控系统软件开发的需求,利用这些控件可以设计出专业的测控程序界面。四、网络虚拟仪表的设计1、设计要求(1)设计一个服务器程序和客户程序。 (2)服务器程序启动后,弹出输入对话框,请求输入服务器端口号,根据获得的端口号调用RegisterTCPServer函数,将本服务器注册为TCP服务器,若注册成功,则把TCP服务器的IP地址和端口号在面板上显示出来,并且在TCP回调函数中监控客户程序的连续并接受客户的数据。在退出程序之前,调用UnregisterTCPServer函数,注销服务器。(3)在客户程序启动后,弹出输入对话框,请求输入服务器的IP地址和端口号,客户程序根据TCP服务器的IP地址和端口号,调用ConnectToTCPServer函数与TCP服务器建立连接,若连接成功,则将TCP服务器的IP地址和服务器名字在面板上显示出来。同时,在CLIENT回调函数中监控服务器程序的连接并接受服务器的数据。在退出程序之前,调用DisconnectFromTCPServer 函数,断开与服务器的连接。2、面板和控件属性设置TCP/IP服务器面板如图所示,面板和参数设置见下表。TCP /IP,面板和参数设置3、源文件由于源文件包括TCP/IP服务器程序和客户程序,其主要差别在于服务器回调函数和客户回调函数的不同,本报告主要描述服务器程序部分。TCP/IP服务器程序TCP/IP服务器程序主要包括主程序main ,数据发送程序TxScrCallback, 服务器回调函数程序ServerCallback和退出程序Exit。(1) 主程序主要完成端口号设置,服务器注册,以及获取、显示服务器IP地址和端口号的功能。(2) 数据发送程序主要完成数据接收和发送功能。要实现这一功能,主要调用ServerTCPWrite函数。(3) 服务器回调函数主要完成数据接收连接开始事件(TCP_CONNECT),接收中断事件(TCP_DISCONNECT)和客户向服务器发送数据准备好事件(TCP_DATAREADY)等功能。它主要用老获取服务器与客户程序的连接句柄,从客户计算机中接收数据。服务器主要源程序如下:#include #include #include #include #include #include #include #include songliang.h/服务器回调函数int CVICALLBACK ServerCallback(unsigned handle,int event,int error,void *callbackData);int quit=0;int panelHandle;unsigned covHandle; /主程序int main (int argc, char *argv)char portNumString32;char buffer512,tempBuf256;int numLines,ctrl,handle,i;int portNumber;if (InitCVIRTE (0, argv, 0) = 0)return -1;/* out of memory */if (panelHandle = LoadPanel (0, songliang.uir, PANEL) 0)return -1;DisableBreakOnLibraryErrors();/输入服务器的端口号 PromptPopup(端口号, 请输入客户需要连接的端口号n(example:10000),portNumString,31);portNumber=atoi(portNumString);/加载用户面板 panelHandle=LoadPanel(0,songliang.uir,PANEL); /SetPanelAttribute(panelHandle,ATTR_CLOSE_CTRL,PANEL_QUIT); /SetPanelAttribute(panelHandle,ATTR_TITLE,TCP Server); /SetPanelPos(panelHandle,VAL_AUTO_CENTER,VAL_AUTO_CENTER);InstallCtrlCallback(panelHandle,PANEL_kTransmit,TxScrCallback,0);DisplayPanel (panelHandle); /注册服务器if (RegisterTCPServer(portNumber,ServerCallback,NULL)0) MessagePopup(TCP Server,RegisterTCPServer failed!);return 0;SetActiveCtrl(panelHandle,PANEL_STRING);/获取服务器的IP地址GetTCPHostAddr(tempBuf,256);/ 显示服务器的IP地址SetCtrlVal(panelHandle,PANEL_SERVERIP,tempBuf);/显示服务器的端口号SetCtrlVal(panelHandle,PANEL_SERVERPORT,portNumString);/显示主界面DisplayPanel (panelHandle);RunUserInterface ();/注销服务器UnregisterTCPServer(portNumber);DiscardPanel (panelHandle);return 0;int CVICALLBACK TxScrCallback (int panelHandle, int controlID, int event,void *callbackData, int eventData1, int eventData2)int numLines,connected;char buffer512;switch (event)case EVENT_COMMIT: /获取数据在发送区内显示出来GetCtrlVal(panelHandle,PANEL_STRING,buffer);strcat(buffer,n);SetCtrlVal(panelHandle,PANEL_kTransmit,buffer);/清空STRING控件的内容SetCtrlVal(panelHandle,PANEL_STRING,);if (ServerTCPWrite(covHandle,buffer,strlen(buffer)+1,1000)0) MessagePopup(TCP服务器,TCP写错误!);SetCtrlVal(panelHandle,PANEL_CONNECTED,0); default:break;return 0;/ 服务器回调函数int CVICALLBACK ServerCallback(unsigned handle,int event,int error,void *callbackData)char buf512;int readSize;switch(event) /客户程序请求连接case TCP_CONNECT:covHandle=handle;/通信连接灯变亮SetCtrlVal(panelHandle,PANEL_CONNECTED,1);break;case TCP_DATAREADY:if(readSize=ServerTCPRead(covHandle,buf,512,1000)=-kTCP_ConnectionClosed)MessagePopup(TCP服务器,TCP读错误!);SetCtrlVal(panelHandle,PANEL_CONNECTED,0) ;break;/数据在接收区内显示SetCtrlVal(panelHandle,PANEL_kReceive,buf);break;case TCP_DISCONNECT:SetCtrlVal(panelHandle,PANEL_CONNECTED,0);break;return 0;int CVICALLBACK ClearScreenCB(int panel,int control,int event, void *callbackData,int eventData1,int eventData2)if(event=EVENT_COMMIT)ResetTextBox(panel,PANEL_kReceive,);return 0;/程序退出int CVICALLBACK EXIT (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT:QuitUserInterface (0);break;return 0;信号发送和接收效果图(为了截图方便,在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实战网络管理员考试试题及答案
- 软件设计师考试动手实践训练方法试题及答案
- 激励幼儿积极参与的活动设计计划
- 跨学科整合品德教育的路径计划
- 云计算与网络安全试题及答案
- 2024年上海海事大学辅导员考试真题
- 2024年江苏省医疗保障局下属事业单位真题
- 2024年绍兴市科学技术局招聘笔试真题
- 2024年内江师范学院选调工作人员笔试真题
- 行政法学历年试题及答案回顾
- 智能化时代的创新创业教育知到课后答案智慧树章节测试答案2025年春渭南职业技术学院
- 2024年数字化管理试题及答案
- 食品安全自查、从业人员健康管理、进货查验记录、食品安全事故处置保证食品安全的规章制度
- 温州护士面试试题及答案
- 《基于单片机的家用万能遥控器设计5800字(论文)》
- TCHSA 090-2024 年轻恒牙根尖诱导成形术操作专家共识
- 2025年农业合作社廉政风险点及防控措施
- 20以内乘法除法口算练习卷1000道可打印
- 《城市轨道交通行车组织》教案 项目四任务二 ATC设备故障时的列车运行组织
- 生化检验项目选择与临床
- 民警心理减压培训
评论
0/150
提交评论