一种基于LabVIEW的电动直线舵机控制系统及方法与流程

文档序号:16244137发布日期:2018-12-11 23:24阅读:541来源:国知局
一种基于LabVIEW的电动直线舵机控制系统及方法与流程

本发明属于导弹制导控制领域,特别是一种基于labview的电动直线舵机控制系统及方法。

背景技术

随着伺服技术的发展,出现了一类控制精度高、响应速度快、结构尺寸小的微型伺服机构,又被称作舵机。舵机一般应用于导弹系统的调姿和变轨,也应用于各种航天器运行位姿的精确调整,具有较大的发展前景。目前,国内在研的舵机大多为旋转舵机,但随着高精密传动机构的发展,一种新型的直线舵机应运而生,主要由直流电机、齿轮减速器、高精度滚珠丝杠和电位计组成,它可以将直流电机产生的扭矩力转化为直线力,在实际运用中具有很大的灵活性。

直线舵机属于大功率舵机,其工作原理为舵机驱动器接收主控计算机给出的舵机位移指令,从而驱动直流电机产生旋转扭矩,经齿轮减速和滚珠丝杠转化为直线运动。为检测直线舵机是否具有较强的快速响应能力和高精度的目标跟踪能力,需要进行控制和机械性能测试,但是目前电动直线舵机控制系统多采用单片机、dsp等设备来控制,往往存在人机界面不友好的问题,且难以进行实时数据发送、读取以及处理显示,阻碍了舵机模拟加载测试系统的发展。



技术实现要素:

本发明的目的在于提供一种具有友好人机界面的基于labview的电动直线舵机控制系统及方法,并能够进行数据读取处理和界面显示。

实现本发明目的的技术解决方案为:一种基于labview的电动直线舵机控制系统,包括上位机pc、pxi机箱、ni实时控制器、rs485通信卡、舵机驱动器、直线舵机和辅助电源,其中:

所述上位机pc通过tcp/ip总线接入pxi机箱,上位机pc的软件部分基于labview平台开发,包括串口通信模块、参数设置模块、数据输入与读取模块、数据处理和显示模块;

所述pxi机箱上设有ni实时控制器、rs485通信卡,rs485通信卡与舵机驱动器连接;

所述舵机驱动器接入直线舵机,所述直线舵机包括直流电机、齿轮减速器、滚柱丝杠和电位计;

所述辅助电源为舵机驱动器和直线舵机提供不同电压。

进一步地,所述的数据处理和显示模块,进行舵机控制指令的处理与生成,舵机自检返回指令的分析与计算,并将舵机的运行状态与位移-时间实时数据显示在labview人机交互界面上。

一种基于labview的电动直线舵机控制方法,舵机的运动方式分为阶跃运动和正弦运动两种,包括以下步骤:

步骤1、开启装有labview的上位机与下位机pxi机箱;

步骤2、开启舵机电机与辅助电源;

步骤3、上位机程序串口初始化;

步骤4、设置舵机运动形式;

步骤5、舵机指令的生成、发送和读取;

步骤6、通过上位机界面的实时显示,监控舵机的运动过程。

进一步地,步骤5所述的舵机指令的生成,具体如下:

(1)通过“visa配置串口”配置串口相应的波特率、传输数据位;

(2)由上到下构建启动、位移与停止三个布尔量输入控件,将输入的三个布尔量转化为布尔数组,然后转化为十进制数值,并构建“条件结构”,根据按下相应的按钮后转化的十进制数字,选择对应的舵机执行功能;

(3)建立“定时循环”,使整个输入程序实时运行,“定时循环”结构设定为1ms循环一次;

(4)建立“加载信号设置”控件,并构建“条件结构”,可以选择阶跃信号运行模式或正弦信号运行模式;

(5)给定阶跃信号与正弦信号时,通过定时循环结构,将“循环计数”与常量使用“乘”控件,并连接“正弦波”控件,生成时间间隔为1ms的逐点正弦波;

(6)将所采样得到的位移数值转换为相应位置控制指令。

进一步地,步骤(6)所述的将所采样得到的位移数值转换为相应位置控制指令,具体如下:

根据直线舵机所接受的固定字符串格式,将字符串指令格式规定为07a3datalldatalhdatahldatahhcrc,crc=03+datall+datalh+datahl+datahh;数据处理方法为:

首先将采样位置数值利用“乘”控件将数值放大100倍,并利用“转换为长整型”控件将其转换为32位长整型数据,然后利用“强制类型转换”控件转化为字符串并将其转化为一维数组,该一维数组包含四个元素,每个元素为八位,然后根据给出的舵机控制指令格式,采用“数组索引”提取数组中最后2个元素,并且使用“创建数组指令”将原数组中最后2个元素与2个零合并为新的数组,此数组就包含全部的控制舵机位移的信息;再引用“for循环”结构,使新数组的4个元素相加;接着使输出的数值再加3并输出crc的值;最后,使用“创建数组”控件将07、a3、新数组、crc组成最终的数组,并转化为所需的字符串指令格式。

进一步地,步骤5中所述的舵机指令的读取,具体如下:

(1)使用“属性节点”来不断监测端口是否有数据返回;

(2)建立“条件结构”,“属性节点”的bytesatport端口连接“不等于零“后连接至“条件结构”的选择端口,当端口处的数据不为零时,则读取端口数据;

(3)读取舵机驱动器串口数据并进行截取有效部分数据,具体如下:根据舵机的返回指令格式,舵机不断循环返回12字节的字符串,其格式为550000data0data1data2data3data4data5data6data7crc,每个数据为16进制,每个数据为8位,其中crc=data0+data1+data2+data3+data4+data5+data6+data7,crc用于校验返回的数据是否正确,使用“visa读取”控件读取舵机驱动器连续返回的24个字节的字符串;

(4)从截取的24字节的字符串中提取舵机所规定的12位反馈指令格式的数据;

(5)将标准的12位字符串指令进行数据处理,并进行显示。

进一步地,步骤(4)中所述的,从截取的24字节的字符串中提取舵机所规定的12位反馈指令格式的数据,具体如下:

(1)将截取到的24字节字符串数据使用“字符串至字节数组转换”控件转换为一维数组,并且创建“while”循环,使程序不断循环运行;

(2)采用“搜索一维数组”控件搜索十六进制数值55,并且在“搜索一维数组”后创建“条件结构”,搜索到55后将元素索引端口值加1并连接至“索引数组控件”,同时将55后面11个元素提取出来;

(3)根据所控制舵机给出的数据校检方式,构建“条件结构”来判断是否使用该组数据;

(4)将索引到的12个元素使用“创建数组”创建为新的数组,并使用“字符串至字节数组转换”转为字符串格式。

进一步地,步骤(5)所述的,将标准的12位字符串指令进行数据处理,并进行显示,具体如下:

(1)将标准的12位字符串指令转化为数组,并使用“索引数组”控件提取data4与data3,该两位元素包含舵机当前位移信息;

(2)使用“创建数组”将00data4data3创建为新数组,并将其转化为双精度浮点数;

(3)使用“减”控件减去65535,再使用“除”控件除以100,输出对应实际位移值。

本发明与现有技术相比,其显著优点为:(1)程序简单,操作方便,具有较好的稳定性和人机交互性,可以高效的实现对舵机位置控制和实时检测;(2)为舵机模拟加载测试系统提供了一种良好的控制方案,可广泛运用于同型舵机的控制系统中。

附图说明

图1为本发明基于labview的电动直线舵机控制系统的结构示意图。

图2为本发明基于labview的电动直线舵机控制系统的运行流程图。

图3为本发明基于labview的电动直线舵机控制系统的舵机指令图。

图4为本发明的输入程序数据处理程序图。

图5为本发明的读取程序图。

图6为本发明的读取程序12字节字符串截取程序图。

图7为本发明的读取程序位移信息数据处理程序图。

具体实施方式

一种基于labview的电动直线舵机控制系统,包括上位机pc、pxi机箱、ni实时控制器、rs485通信卡、舵机驱动器、直线舵机和辅助电源,其中:

所述上位机pc通过tcp/ip总线接入pxi机箱,上位机pc的软件部分基于labview平台开发,包括串口通信模块、参数设置模块、数据输入与读取模块、数据处理和显示模块;

所述pxi机箱上设有ni实时控制器、rs485通信卡,rs485通信卡与舵机驱动器连接;

所述舵机驱动器接入直线舵机,所述直线舵机包括直流电机、齿轮减速器、滚柱丝杠和电位计;

所述辅助电源为舵机驱动器和直线舵机提供不同电压。

进一步地,所述的数据处理和显示模块,进行舵机控制指令的处理与生成,舵机自检返回指令的分析与计算,并将舵机的运行状态与位移-时间实时数据显示在labview人机交互界面上。

一种基于labview的电动直线舵机控制方法,舵机的运动方式分为阶跃运动和正弦运动两种,包括以下步骤:

步骤1、开启装有labview的上位机与下位机pxi机箱;

步骤2、开启舵机电机与辅助电源;

步骤3、上位机程序串口初始化;

步骤4、设置舵机运动形式;

步骤5、舵机指令的生成、发送和读取;

步骤6、通过上位机界面的实时显示,监控舵机的运动过程。

进一步地,步骤5所述的舵机指令的生成,具体如下:

(1)通过“visa配置串口”配置串口相应的波特率、传输数据位;

(2)由上到下构建启动、位移与停止三个布尔量输入控件,将输入的三个布尔量转化为布尔数组,然后转化为十进制数值,并构建“条件结构”,根据按下相应的按钮后转化的十进制数字,选择对应的舵机执行功能;

(3)建立“定时循环”,使整个输入程序实时运行,“定时循环”结构设定为1ms循环一次;

(4)建立“加载信号设置”控件,并构建“条件结构”,可以选择阶跃信号运行模式或正弦信号运行模式;

(5)给定阶跃信号与正弦信号时,通过定时循环结构,将“循环计数”与常量使用“乘”控件,并连接“正弦波”控件,生成时间间隔为1ms的逐点正弦波;

(6)将所采样得到的位移数值转换为相应位置控制指令。

进一步地,步骤(6)所述的将所采样得到的位移数值转换为相应位置控制指令,具体如下:

根据直线舵机所接受的固定字符串格式,将字符串指令格式规定为07a3datalldatalhdatahldatahhcrc,crc=03+datall+datalh+datahl+datahh;数据处理方法为:

首先将采样位置数值利用“乘”控件将数值放大100倍,并利用“转换为长整型”控件将其转换为32位长整型数据,然后利用“强制类型转换”控件转化为字符串并将其转化为一维数组,该一维数组包含四个元素,每个元素为八位,然后根据给出的舵机控制指令格式,采用“数组索引”提取数组中最后2个元素,并且使用“创建数组指令”将原数组中最后2个元素与2个零合并为新的数组,此数组就包含全部的控制舵机位移的信息;再引用“for循环”结构,使新数组的4个元素相加;接着使输出的数值再加3并输出crc的值;最后,使用“创建数组”控件将07、a3、新数组、crc组成最终的数组,并转化为所需的字符串指令格式。

进一步地,步骤5中所述的舵机指令的读取,具体如下:

(1)使用“属性节点”来不断监测端口是否有数据返回;

(2)建立“条件结构”,“属性节点”的bytesatport端口连接“不等于零“后连接至“条件结构”的选择端口,当端口处的数据不为零时,则读取端口数据;

(3)读取舵机驱动器串口数据并进行截取有效部分数据,具体如下:根据舵机的返回指令格式,舵机不断循环返回12字节的字符串,其格式为550000data0data1data2data3data4data5data6data7crc,每个数据为16进制,每个数据为8位,其中crc=data0+data1+data2+data3+data4+data5+data6+data7,crc用于校验返回的数据是否正确,使用“visa读取”控件读取舵机驱动器连续返回的24个字节的字符串;

(4)从截取的24字节的字符串中提取舵机所规定的12位反馈指令格式的数据;

(5)将标准的12位字符串指令进行数据处理,并进行显示。

进一步地,步骤(4)中所述的,从截取的24字节的字符串中提取舵机所规定的12位反馈指令格式的数据,具体如下:

(1)将截取到的24字节字符串数据使用“字符串至字节数组转换”控件转换为一维数组,并且创建“while”循环,使程序不断循环运行;

(2)采用“搜索一维数组”控件搜索十六进制数值55,并且在“搜索一维数组”后创建“条件结构”,搜索到55后将元素索引端口值加1并连接至“索引数组控件”,同时将55后面11个元素提取出来;

(3)根据所控制舵机给出的数据校检方式,构建“条件结构”来判断是否使用该组数据;

(4)将索引到的12个元素使用“创建数组”创建为新的数组,并使用“字符串至字节数组转换”转为字符串格式。

进一步地,步骤(5)所述的,将标准的12位字符串指令进行数据处理,并进行显示,具体如下:

(1)将标准的12位字符串指令转化为数组,并使用“索引数组”控件提取data4与data3,该两位元素包含舵机当前位移信息;

(2)使用“创建数组”将00data4data3创建为新数组,并将其转化为双精度浮点数;

(3)使用“减”控件减去65535,再使用“除”控件除以100,输出对应实际位移值。

下面结合附图和具体实施例,进一步阐述本发明。

实施例1

结合图1,本发明基于labview的电动直线舵机控制系统,包括硬件和软件两部分,硬件部分包括上位机pc、pxi机箱、ni实时控制器、rs422通信卡、舵机驱动器、直线舵机和辅助电源,所述直线舵机包括直流电机、齿轮减速器、滚柱丝杠和电位计;所述上位机装有labview编程平台,用于编写舵机控制程序并设计人机交互界面;下位机ni控制器与上位机采用tcp/ip通讯协议进行数据交换;舵机驱动器通过rs485通信接口与ni控制器相连接;辅助电源为舵机直流电机和驱动器分别提供58v和28v直流电压。软件部分基于labview平台开发,包括串口通信模块、参数设置模块、数据输入与读取模块、数据处理和显示模块。

系统运行的流程如图2,根据舵机所需要的运动模式,将舵机的运动方式分为两种运动模式:阶跃运动与正弦运动。舵机的运动过程的实时监测方法,包括以下步骤:

步骤1、开启装有labview的上位机与下位机pxi机箱;

步骤2、开启舵机电机与辅助电源;

步骤3、上位机程序串口初始化;

步骤4、设置舵机运动形式;

步骤5、舵机指令的发送和读取;

步骤6、界面的实时显示。

为了使操作方便,本发明还设计了基于labview的舵机的输入程序与舵机的读取程序。

舵机的输入程序的程序图如图3所示,程序设计步骤为:

(1)通过“visa配置串口”配置串口相应的波特率、传输数据位;

(2)由上到下设计启动、位移与停止三个布尔量输入控件,将输入的三个布尔量转化为布尔数组,然后转化为十进制数值,并设计条件结构,根据按下相应的按钮后转化的十进制数字,选择对应的舵机执行功能。控制舵机所提供的控制指令如图4所示,按下启动控件则向舵机驱动器写入07ac0000000001字符串启动指令;按下位移控件则向舵机驱动器写入位置指令;按下停止控件则向舵机写入停止字符串指令07ad0000000002;

(3)建立“定时循环”,使整个输入程序实时运行,根据舵机控制要求,“定时循环”结构设定为1ms循环一次;

(4)建立“加载信号设置”控件,并设计“条件结构”,可以选择阶跃信号运行模式与正弦信号运行模式;

(5)给定阶跃信号与正弦信号时,通过(3)中设计的定时循环结构,将“循环计数”与常量0.001使用“乘”控件,并连接“正弦波(逐点)”控件,生成时间间隔为1ms的逐点正弦波;

(6)采样得到位移值,发明了将所采样得到的位移数值转换为相应位置控制指令的方法,数据处理方法如图5所示,根据图4控制舵机所接受的固定字符串格式,字符串指令格式规定为07a3datalldatalhdatahldatahhcrc,crc=03+datall+datalh+datahl+datahh,数据处理方法为:首先将采样位置数值利用“乘”控件将数值放大100倍,并利用“转换为长整型”控件将其转换为32位长整型数据,然后利用“强制类型转换”控件转化为字符串并将其转化为一维数组,该一维数组包含四个元素,每个元素为八位,然后根据给出的舵机控制指令格式,采用“数组索引”提取数组中最后2个元素,并且使用“创建数组指令”将原数组中最后2个元素与2个零合并为新的数组,此数组就包含全部的控制舵机位移的信息;再引用“for循环”结构,使新数组的4个元素相加;接着使输出的数值再加3并输出crc的值;最后,使用“创建数组”控件将07、a3、新数组、crc组成最终的数组,并转化为所需的字符串指令格式。

结合图3所示,上述方案中读取程序在输入程序的基础上添加了对舵机驱动器串口返回数据的读取部分的程序,具体如下:

(1)对输入程序,使用“属性节点”用来不断监测端口是否有数据返回;

(2)建立“条件结构”,“属性节点”的bytesatport端口连接“不等于零“后连接至“条件结构”的选择端口,当端口处的数据不为零时,则执行读取端口数据部分程序;

(3)读取舵机驱动器串口数据并进行截取有效部分数据,如图6所示,具体的操作步骤如下:结合图4,根据舵机的反馈指令格式,舵机不断循环返回12字节的字符串,其格式为550000data0data1data2data3data4data5data6data7crc(每个数据为16进制,每个数据为8位),其中crc=data0+data1+data2+data3+data4+data5+data6+data7,crc用于校验返回的数据是否正确,使用“visa读取”控件读取舵机驱动器连续反馈的24个字节的字符串。

(4)结合图6,从(3)中截取的24字节的字符串中提取舵机所规定的12位反馈指令格式的数据,具体处理方法如下所示:

(4.1)将截取到的24字节字符串数据使用“字符串至字节数组转换”控件转换为一维数组,并且创建“while”循环,使程序不断循环运行;

(4.2)采用“搜索一维数组”控件不断地搜索十六进制数值55,并且在“搜索一维数组”后创建“条件结构”,搜索到55后将元素索引端口值加1并连接至“索引数组控件”,同时将55后面11个元素提取出来;

(4.3)根据所控制舵机给出的数据校检方式设计“条件结构”来判断是否使用该组数据;

(4.4)将索引到的12个元素使用“创建数组”创建为新的数组,并使用“字符串至字节数组转换”转为字符串格式。

(5)结合图7,将(3)中得到的标准的12位字符串指令进行数据处理并将其进行显示,具体实施方法如下:

(5.1)将标准的的12位字符串指令转化为数组,并使用“索引数组”控件提取data4与data3,该两位元素包含舵机当前位移信息;

(5.2)使用“创建数组”将00data4data3创建为新数组,并将其转化为双精度浮点数;

(5.3)使用“减”控件减去65535,再使用“除”控件除以100,输出对应实际位移值。

(6)使用“捆绑”控件将输入舵机位移指令的理想值与舵机返回实际位移指令捆绑为簇,并用“波形图表”输出显示。

本发明基于labview设计了某型电动直线舵机的控制系统,具有程序简单,操作方便的有点,可以高效的实现对舵机位置控制和实时检测,为舵机模拟加载测试系统提供了一种良好的控制方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1