资源描述:
《基于LabVIEW的倒立摆控制器驱动函数库设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、控制系统中文核心期刊《微计算机信息》(测控自动化)2006年第22卷第3-1期文章编号:1008-0570(2006)03-1-0122-03基于LabVIEW的倒立摆控制器驱动函数库设计DesignofDriverProgramofInvertedPendulumBasedonLabVIEW(三峡大学)向学军魏开云Xiang,XuejunWei,Kaiyun摘要:选用LabVIEW作为倒立摆控制系统的界面设计开发工具。为了在LabVIEW图形化编程环境下使用倒立摆控制器Windows环境下的动态链接库,本文将动态链接库中的
2、函数全部转换设计为在LabVIEW环境下可以调用的函数形式。在LabVIEW开发环境中实现了倒立摆测控系统程序的各项功能。关键词:LabVIEW;倒立摆;驱动程序中图分类号:TP273文献标识码:AAbstract:LabVIEWisusedastheprogrammingtooltodesigntheuserinterface.Thereal-timecontrolcodesisencapsulatedintooneDynamicLinkLibrary(DLL)whichcanbeusedinLabVIEW.Thecont
3、rolofthelineardoubleinvertedpendulumbasedonLab-VIEWisrealized.技Keyword:LabVIEW;IvertedPndulum;Driver术中的函数全部转换为在LabVIEW环境下可以用的函1引言数形式。创本文采用LabVIEW作为开发工具,实现LabVIEW中动态链接库的调用是通过CLF(Call新GLIP2002直线两级倒立摆系统的控制。GLIP2002直LibraryFunction)节点实现的,其节点图标如图1所示。线两级倒立摆系统包含倒立摆本体、电控箱及
4、由运动控制卡和普通PC机组成的控制平台等三大部分。固高公司提供了基于Win98/MS-DOS的控制、实验软件及基于Win2000/XP操作平台的Matlab/Simulink实验、控制软件和接口软件。图1LabVIEW的CLF节点PC机通过主机通讯接口与GT-400-SV运动控制通过对其进行配置,可以将动态连接库中的函数器交换信息。包括向运动控制器发出运动控制指令,一一提取出来,但首先必须知道函数的原型(包括函并通过该接口获取运动控制器的当前状态和相关控数的返回类型,参数个数以及各个参数的类型),适当制参数。运动控制器完成实
5、时轨迹规划、位置闭环伺配置之后在框图程序中,CLF节点会自动显示函数的服控制、主机命令处理和控制器I/O管理。运动控制器输入输出类型,这样通过将LabVIEW中的控件连接至通过编码器接口,获得运动位置反馈信息,通过四路CLF节点的各个输入输出端,当程序运行的时候,模拟电压输出(或脉冲输出)接口控制伺服电机实现LabVIEW就调用了动态链接库中的相应函数了。主机要求的运动。在配置过程中应该注意LabVIEW的数据类型和LabVIEW是美国国家仪器公司推出的一种图形动态链接库中数据类型的差异,比如在C/C++中为编程语言,无论是
6、在程序编写还是在用户界面设计上BOOL型的变量,在LabVIEW中对应的类型为32位都有非常大的优势。的整型。例如,设置当前轴的目标速度的函数short2设计基于LabVIEW的GT-400-GT_SetVel(doubleVel);在LabVIEW中进行配置之后SV驱动程序得到的子VI如图2所示:2.1从动态链接库中提取函数GT-400-SV提供Windows环境下的动态链接库,库中包含了对运动控制器读写的全部函数,但由于LabVIEW为图形化编程环境,所以必须将动态链接库图2设置当前轴的目标函数VI节点中标签为Vel的控
7、件代表shortGT_SetVel向学军:副教授(doubleVel)中的参数Vel,控件上的DBL表示控件的湖北省教育厅科研基金(D200513001)-122-360元/年邮局订阅号:82-946《PLC技术应用200例》您的论文得到两院院士关注控制系统数据类型为DBL,标签为outputparam的显示控件为个模块。函数的返回值,控件上的I16表示控件的数据类型为I16,对应于库函数中的short。2.2模块的错误处理LabVIEW自带的某些函数中可以对程序的运行错误加以及时处理,当程序运行出现错误时可以精确定位出出问
8、题的模块,以及出错误的原因。通过分析可知,LabVIEW程序中用一个簇(clus-图3无错状态下程序代码ter)的数据结构来表示错误信息。其用三个数据元素Case结构的另外一个分支为默认值,也就是除了具体表示错误的类型和状态,即用一个BOOL类型的错误代码为0以外的所有错误代码均在此分支结