基于 Labview 的步进电机检测系统

打印 来源: 浙江省仪器仪表行业协会   发布者:ZJAIA
  浏览1077次 时间:2016年12月27日 11:12

       摘要:步进电机具有控制精确、旋转稳定和不受条件影响的特点。在检测系统中采用STM32实现精确的控制,以A3977作为驱动器,实时检测电机启动、加速、减速等运动状态。上位机完成对步进电机控制的命令的发送和将采集到的信息的显示和保存,上位机采用图形化语言Labview编写,下位机通过CAN总线接收上位机的指令,完成对步进电机的驱动控制和实时检测。


       关键词:步进电机;A3977;Labview;CAN总线


       引言


      步进电机是一种通过脉冲信号控制角位移的直流电机,通过对脉冲信号的控制就可以实现精准的定位。在实际动作中,仪器需要对机械结构进行精确定位,所以对电机的转动精度要求比较高,采用步进电机并加上仪器的机械细分设计,可以达到所需转动精度,因而广泛地应用于数控机床、精密旋转和线性位移系统中。步进电机能否按照要求运行决定了整个系统能否有效的运行,因而对步进电机的相关检测至关重要。传统的步进电机系统用逻辑电路实现控制,由于线路复杂不易调整,存在一定的局限性。采用Labview来实现步进电机的控制,图形化的编程语言易于掌握,人机交互界面简洁明了。通过控制STM32发送脉冲的个数来精确控制电机的角位移,同时改变脉冲频率也可以对步进电机进行调速。上位机与下位机共同控制,实现对电机的精准控制。

       
       一、工作原理

      
       该检测系统由5部分组成,为电源、上位机、下位机控制电路板、电机驱动电路和电机组成。该系统上位机通过CAN总线向下位机发出通信帧命令,下位机收到通信帧并进行解析后驱动指定的电机,将信号通过串并转换传递到驱动芯片,通过驱动芯片实现对电机运动的控制。系统采用的驱动芯片带有检测的功能,将检测到的模拟信号传入到STM32,经过数模转换后,下位机采集到的信息通过 CAN 总线把步进电机的状态传给上位机,上位机对检测的数据进行处理和显示,实现系统的控制和检测。


       二、硬件实现方案


       1、上位机与下位机硬件相连
      
       上位机与下位机通过CAN总线相连,总线通信模型采用单主结构,即主控为主节点,其它节点为从节点。通信方法包括主从命令/响应方式和从站事件触发方式两种。上位机通过CAN通信帧向下位机发送不同的指令,帧中包含功能码,每个动作都对应不同的功能码,当收到不同功能码时,把相应的标志位置1,系统任务通过检测标志位的状态来判断是否执行相应的操作,操作成功再向上位机发送成功CAN帧。

       2.、步进电机的控制
      
       步进电机是通过脉冲信号进行角位移控制的直流电机,通过对脉冲信号的控制即可实现步进电机的精确定位控制。一般情况下,STM32 产生的信号并不能直接驱动电机转动,此时需要电机驱动器来带动步进电机。
     
       本次设计采用的是Allegro公司的A3977芯片。该芯片是双极性、可细分、用于两相式步进电机驱动的专用集成芯片,电流输出2.5A,最大输出功率可接近90w,其主要功能包括步进细分控制、方向控制、速度控制、电流控制、睡眠控制及功率放大等。由于采用了内置译码器技术,A3977可以很容易的使用最少的控制线,对步进电机实施微步进控制。由于 STM32 的GPIO驱动电压为3.3V,A3977的最佳逻辑电压为5V,因此使用电平转换芯片LJ245A来提高GPIO的驱动能力。为了给STM32节省IO控制端,使用了具有8位串行输入/输出、并行输出的移位寄存器芯片74HC595方便对电机的配置。STM32驱动步进电机总电路结构图如图1所示。


                                                              图1   STM32驱动步进电机总电路结构图

       3、数据采集模块
      
       在前面的电机驱动设计中,采用A3977驱动电机,此芯片专门有两个管脚SENSE用来控制芯片H桥的电流检测。通过74HCT4051把需要检测的步进电机驱动芯片 A3977的SENSE 管脚输出到STM32的相应端口并进行模数转换,以便实时检测电机启动、加速、减速等运动状。MC0_OUT、MC1_OUT、MC2_OUT分别接STM32的PA6、PA7、PC4引脚,A/D_DJ接STM32的ADC模数转换引脚PA2。如下图2所示。


       三、软件实现方案


       1、通信设计

      (1)通信帧设计 

       通信采用CAN总线的主从方式,传输的数据包括两种格式:用户协议报文格式和用户自定义CAN协议报文格式。数据帧包括SrcID、DestID、Type、subType和FuncID。SrcID为发送数据帧设备的ID编号,DestID为接收数据帧设备的ID编号;FuncID(功能码)具体定义了系统中数据和命令交换或传递的种类;Type和subType表示数据帧的类型。通信中每帧数据需要源设备ID和目的设备ID,以完成网络数据交换的寻址实现。上位机发送广播命令帧,下位机识别命令帧并解析,执行上位机的相应动作,并将动作执行的信息通过数据帧发送给上位机,实现上位机与下位机的通信过程。

      
       (2)通信界面设计

       Labview是用图标代替文本代码创建应用程序,拥有流程图程序控制设计语言的特点,具有编程直观、编程速度快的优点。为了实现上位机和下位机通过CAN总线通信,设计了四个VI,CAN接收、CAN发送、通信设置和通信。运行前通过通信设置VI进行设备初始化。CAN发送和CAN接收用于上位机和下位机发送帧数据,并将帧数据解析出所传递的信息,执行相应的动作或在界面上显示相应的数据。通信VI调用CAN接收和CAN发送,实现整个通信过程的运行。

       2、步进电机的驱动以及检测
      
       检测系统由七个部分组成,电机自动运行设置、电机移动设置、电机状态查询、步进电机停止、步进电机速度设置、数据显示。利用Labview程序模块化特征,电机自动运行设置,通过设置可以使步进电机按照设置的速度运行,无需手动连续操作;当电机运行过程中,可以通过电机状态查询界面,查询步进电机所在位置的坐标,判断电机运行是否符合要求;当电机出现故障时,可以通过步进电机移动设置、步进电机停止等界面检测电机故障,快速查找问题所在。Labview的优势在于VI可以单独运行的同时,也可以被其他程序调用。本设计将整个程序分成各个子VI界面,通过主程序对各个子VI的调用完成整个程序的运行,当程序运行出现问题是,运行子VI可快速锁定问题所在。将主程序分解成各个子程序,使程序易于理解,框图简洁,充分发挥了Labview 的优势。


结  论


      检测电机能否正常运行,设计了基于Labview软件平台的检测系统。系统通过 CAN 通信实现了控制主机与步进电机控制之间的通信,并可以将步进电机在运行过程中的所有参数反映到虚拟面板中,帮助操作人员以及用户可以通过Labview虚拟仪器的前面板了解到其所有运行参数。这些技术应用到电机检测系统上,使步进电机控制精度较高,Labview的图形化语言简洁并且生动,便于理解且系统运行稳定,用户可以根据不同要求随时调整控制方式,因此具有广泛的应用价值。


TAG: 基于Labview 步进电机 检测系统
上一篇 下一篇