




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9/23/2003,河南科技大学电信学院自动化所,1,第11章 LabVIEW与其它应用程序的通讯,课程名称:虚拟仪器技术 任课教师:林青松,计划学时:2,教学目的和要求,弥补LabVIEW的不足,补充知识,。,9/23/2003,河南科技大学电信学院自动化所,2,动态连接库的生成和调用 CIN节点的使用,重点,9/23/2003,河南科技大学电信学院自动化所,3,CIN节点,难点,9/23/2003,4,如何克服LabVIEW在功能上的不足? 如何克服LabVIEW 在实时上的不足?,思考题,9/23/2003,河南科技大学电信学院自动化所,5,12.1 C代码调用,在LabVIEW中提供了一个C代码调用的接口,即Advanced函数子模板中的代码接口节点(CIN-Code Interface Node) 下面举例说明:假设有两数相加,调用CIN节点求其和,方法步骤如下:,9/23/2003,河南科技大学电信学院自动化所,6,调用CIN节点方法步骤,在后面板调出CIN节点,增加参数端口(其中2个为输入输出,1个为输出) 连接2个加数(输入输出)与和(仅输出) 在CIN节点上单击鼠标右键,弹出菜单,选择Creat.c File,如下图所示:,9/23/2003,河南科技大学电信学院自动化所,7,前面板和后面板,9/23/2003,河南科技大学电信学院自动化所,8,自动产生的C代码如下,/* * CIN source file */ #include “extcode.h“ CIN MgErr CINRun(float64 *_1, float64 *_2, float64 *_); CIN MgErr CINRun(float64 *_1, float64 *_2, float64 *_) /* ENTER YOUR CODE HERE */ return noErr; ,9/23/2003,河南科技大学电信学院自动化所,9,编写C代码,进入VC+开发环境 打开LabVIEW自动产生的C代码文件 在/* ENTER YOUR CODE HERE */处添加以下代码:*_=*_1+*_2; 编辑完成,关闭文件,9/23/2003,河南科技大学电信学院自动化所,10,编辑后的C代码,/* * CIN source file */ #include “extcode.h“ CIN MgErr CINRun(float64 *_1, float64 *_2, float64 *_); CIN MgErr CINRun(float64 *_1, float64 *_2, float64 *_) /* ENTER YOUR CODE HERE */ *_=*_1+*_2; return noErr; ,9/23/2003,河南科技大学电信学院自动化所,11,编译VC+6.0源程序,在VC+6.0中创建一个空的Win32 Dynamic DLL project 在DLL工程中加入自己编写的实现两数相加的C代码 在DLL工程中加入CIN对象和函数库:加入CINTOOLS路径下的cin.obj、labview.lib、lvsb.lib、lvsbmain.def共4个文件,9/23/2003,河南科技大学电信学院自动化所,12,编译VC+6.0源程序,在DLL工程中加入CINTOOLS路径:选择工程设置,将Setting For设为ALL Configuration;选择C/C+分页,设分类为Preprocessor,在附加包含路径文本框中输入CINTOOLS路径。例如C:Program FilesNational InstrumentsLabVIEW 6.1cintools,9/23/2003,河南科技大学电信学院自动化所,13,加入CINTOOLS路径,9/23/2003,河南科技大学电信学院自动化所,14,编译VC+6.0源程序,Alignment和run-time library设置:选择工程设置,将Setting For设为ALL Configuration;选择Code Generation分页,在Struct member alignment列表框中选1 Byte,在Use run-time library列表框中选Mutithreaded DLL,如下图:,9/23/2003,河南科技大学电信学院自动化所,15,Alignment和run-time library设置,9/23/2003,河南科技大学电信学院自动化所,16,编译VC+6.0源程序,创建LSB源文件: 将CINTOOLS路径下的lvsbutil.exe拷贝到C盘根目录。 选择工程设置,将Setting For设为ALL Configuration;选择Custom Build页,在命令文本框中输入:c:lvsbutil $(TargetName) -d $(WkspDir)$(OutDir),在输出文本框中输入:$(OutDir)$(TargetName).lsb。如下图:,9/23/2003,河南科技大学电信学院自动化所,17,创建LSB源文件,9/23/2003,河南科技大学电信学院自动化所,18,编译VC+6.0源程序,编译DLL,生成.lsb 文件。生成的.lsb文件在工程目录的Debug文件夹中。,9/23/2003,河南科技大学电信学院自动化所,19,装载lsb文件,在CIN节点上单击鼠标右键,弹出菜单,选Load Code Resource,弹出选择文件对话框后选中编译完成的lsb文件,此时工具条上的运行按钮由断开的状态变为完整,表示程序可以正确操作。,9/23/2003,河南科技大学电信学院自动化所,20,运行结果,9/23/2003,河南科技大学电信学院自动化所,21,变量名说明,前面板的变量名与C代码的变量名可以不同,但数据类型必须相同。 在自动产生C代码前,前面板的变量名应避免采用中文名,在自动产生C代码后,可将前面板的变量名改为中文名。,9/23/2003,河南科技大学电信学院自动化所,22,CIN节点的用途,提供了LabVIEW与VC+语言的接口,可用于底层驱动程序的开发,如对于国产的低价位的板卡或自行设计的板卡,可利用CIN开发相应的设备驱动程序。,9/23/2003,河南科技大学电信学院自动化所,23,12.2 库函数调用,LabVIEW在Advanced函数模板中提供了调用库函数节点(Calling Library Function Node)。 通过调用Windows标准共享库函数,可以提高程序的开发效率,增加应用软件的功能 为国产低价位板卡或自行设计的板卡设计DLL驱动程序,在LabVIEW中调用,可实现对这些板卡的控制和数据采集等。,9/23/2003,河南科技大学电信学院自动化所,24,举例获取鼠标当前位置,在LabVIEW后面板中放上调用库函数节点,双击节点弹出如下对话框,9/23/2003,河南科技大学电信学院自动化所,25,9/23/2003,河南科技大学电信学院自动化所,26,举例获取鼠标当前位置,点击Brows按钮,打开一个文件对话框,在c:windowssystem目录下找到User32.dll。或直接输入库文件路径和名称。 在Function Name下拉列表框中找到GetCursorPos函数。或直接输入函数名。,9/23/2003,河南科技大学电信学院自动化所,27,举例获取鼠标当前位置,在Calling Conventions下拉列表框中找到stdcall(WINAPI)。注意:如果是自行开发的库函数(DLL)或其它在VC环境下编译的库函数必须选C调用约定,否则会死机。,9/23/2003,河南科技大学电信学院自动化所,28,举例获取鼠标当前位置,Parameter框中的return type不变,Type框中选Numeric,Data Type框中选Signed 32-bit Integer。即指定返回32位整形数。,9/23/2003,河南科技大学电信学院自动化所,29,9/23/2003,河南科技大学电信学院自动化所,30,举例获取鼠标当前位置,点击Add a Parameter After按钮,按下图选择或输入有关参数,9/23/2003,河南科技大学电信学院自动化所,31,9/23/2003,河南科技大学电信学院自动化所,32,举例获取鼠标当前位置,点击OK退出 在前面板上放一个簇,其中放置两个32位整数,Label分别x、y,代表鼠标的xy坐标。前后面板分别如下图所示:,9/23/2003,河南科技大学电信学院自动化所,33,举例获取鼠标当前位置,运行程序,移动鼠标,即可显示出光标当前在屏幕上的位置。,9/23/2003,河南科技大学电信学院自动化所,34,举例得到磁盘的剩余空间,9/23/2003,河南科技大学电信学院自动化所,35,框图,9/23/2003,河南科技大学电信学院自动化所,36,对话框,9/23/2003,河南科技大学电信学院自动化所,37,举例得到磁盘的类别,9/23/2003,河南科技大学电信学院自动化所,38,框图,9/23/2003,河南科技大学电信学院自动化所,39,对话框,9/23/2003,河南科技大学电信学院自动化所,40,Winbase.h,#define DRIVE_UNKNOWN 0 #define DRIVE_NO_ROOT_DIR 1 #define DRIVE_REMOVABLE 2 #define DRIVE_FIXED 3 #define DRIVE_REMOTE 4 #define DRIVE_CDROM 5 #define DRIVE_RAMDISK 6,9/23/2003,河南科技大学电信学院自动化所,41,库函数调用的应用,如果将以上DLL换成板卡的驱动程序,返回的参数就可位板卡的状态或采集的数据,送出数据到DLL即可实现输出控制。 利用Windows系统dll中的函数可实现在LabVIEW中难以实现的功能,增加编程的灵活性。,9/23/2003,河南科技大学电信学院自动化所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年中国烟草总公司福建省公司考试真题及答案
- 2025年院感相关理论知识考试题库及答案
- 2025年跨文化交流能力测试考试试卷及答案
- 2024年绵阳市涪城区城厢街道办事处招聘专职网格员真题
- 2025年职业病防治法试题(含答案)
- 2025年事业单位考试公共基础知识模拟题及答案
- 2025年免疫培训试题及答案
- 2025年第一季度质量与安全和职业卫生考试题(附答案)
- 2025年职业道德与法律知识考试试卷及答案
- 2025生态旅游度假区施工合同定额结算优惠与生态保护协议
- 骨科门诊常见病诊疗流程
- 医院法律法规培训内容
- 科技创新管理办法细则
- 股东合伙人知识产权共享与保护合同
- 飞书使用教程培训
- 商务礼仪仪容仪表培训
- 无导线起搏器护理
- “七一”党课:从《党章》中汲取奋进力量把全面从严治党进行到底
- 抖音达人签约合同范本
- T/CCMA 0172-2023移动式升降工作平台施工现场管理规程
- 铁路交跨协议书
评论
0/150
提交评论