基于LabVIEW的苗盘输送控制系统设计

2019-05-24 09:53曹卫彬
农机化研究 2019年9期
关键词:PC机串口单片机

任 玲,曹卫彬,马 锐,王 宁

(石河子大学 机械电气工程学院,新疆 石河子 832000)

0 引言

旱地作物的育苗移栽在我国有悠久的历史,特别是新疆由于特殊的气候原因,采用育苗移栽技术可以有效地避开气候因子对作物产量的影响,提高幼苗的成活率[1]。目前,育苗移栽主要使用半自动移栽方式[2],需要人工进行取苗和送苗,劳动强度大,效率低。

苗盘输送系统是全自动移栽机的关键部件,其功能是将钵盘苗精准地移送到取苗位置,待取苗机构将钵苗取出后,根据苗盘的穴距自动移动苗盘至下一穴孔,进行下一次取苗动作。苗盘输送的频率由取苗频率决定,通过控制苗盘的输送频率使之与取苗动作有效配合,完成自动取苗过程。

为此,设计了一种苗盘输送控制系统,通过控制苗盘输送装置的横向和纵向间歇运动,实现自动送苗;通过对送盘频率和间歇位移的控制,有效配合取苗动作,可以实现自动取苗。为了实时对取苗的工作状态进行监控,通过LabVIEW设计人机交互界面,根据取苗频率的变化实时调整送盘频率,提高取苗的工作效率和质量。

1 总体方案设计

我国研究人员对取苗送苗控制系统的研究主要集中在PLC控制和单片机控制两种主要方式上[3-6]:以PLC控制步进电机来驱动苗盘定位机构完成苗盘输送,以配合钵苗夹持机构完成移栽动作[7-9];以单片机作为控制器的幼苗移栽控制系统,通过在地轮上安装编码器计量脉冲数,根据移栽的实时情况,设定移栽株距,当完成一次移动时,产生触发脉冲,实现移栽过程中的取苗、停苗和放苗[6]。南京农业大学的胡敏娟设计了基于LabVIEW的移栽机输送控制系统[4],该系统采用LabVIEW和数据采集卡的方式,利用传感器采集苗盘工作状态信号,通过数据采集卡发送到PC机,可以实现送盘装置和取苗装置的联合控制,为苗盘输送控制的研究提供另一种方案。

在基于虚拟仪器的控制系统中,硬件以计算机为核心,利用数据采集卡将采集到的信息发送给PC机,实现数据的处理。通过PC机的串口与其它外部设备相连,PC机中的软件运用LabVIEW图形化编程的方式,设计框图直观,由于其软件是核心,可以避免与其他设备相连时技术兼容性的问题。

本设计以PC机作为上位机,由LabVIEW构建控制系统操作界面,上位机根据实时数据发出指令控制苗盘输送的频率;单片机作为下位机,接受上位机发送的指令信号,根据指令信号向步进电机发送脉冲,控制苗盘的横向和纵向移动;同时,接受传感器的检测信号,将苗盘的位置信号送给上位机,通过交互界面实时监测苗盘的运动位置和取苗工作状态,实现苗盘运动和机械手取苗的配合。系统结构如图1所示。

2 硬件设计

系统上电前,在单轴步进电机控制器中设置系统每次发出的电脉冲数、输入端口的工作状态及步进电机的初始化程序。系统上电后,控制系统初始化,开始检测苗盘横向输送机构与苗盘支架导轨两端电感式接近开关的距离关系。当苗盘横向输送机构到达苗盘支架导轨两端电感式接近开关的感应距离时,接近开关触发,给控制器一个信号,单轴步进电机控制器接收到信号后,给步进电机驱动器发送相应的电脉冲,步进电机驱动器驱动步进电机顺时针转过一定角度;电机转动带动驱动轴转动,驱动轴带动主动轮、从动轮、链条运动,从而带动卡在链条凸槽上的苗盘向下运动,及时准确地给取苗机构送苗。当移栽机停止工作时,关闭电源开关,苗盘纵向输送机构停止工作。

图1 系统结构图Fig.1 System structure diagram

2.1 硬件结构图

采用单片机作为系统的控制器,所选用的单片机型号为宏晶STC90C516RD+,指令代码完全兼容传统8051单片机。12时钟/机器周期和6时钟/机器周期可任意选择,内部集成MAX810专用复位电路,时钟频率在12MHz,复位脚可直接接地。单片机接收传感器的检测信号及当前的位置信号,经过运算处理将其转换成脉冲数发送给电机驱动器,同时将位置信号和检测信号发送给上位机,通过PC机进行显示。硬件结构如图2所示。

图2 硬件结构图Fig.2 Hardware structure diagram

2.2 系统主要模块

本系统采用模块化设计思想,将送苗机构控制系统的硬件分为5个模块:处理器模块、电源模块、控制量输出模块、信号采集模块,以及人机交互模块。

1)处理器模块以STC90C516RD+为核心控制器,接收传感器采集的信号,输出控制信号,同时与PC机界面进行人机交互。处理器模块由单片机芯片电路、晶振电路、电源电路及复位电路组成。其中,晶振采用12MHz。

2)电源模块为单片机提供+5 V电源,为各模块提供合适电平,保证系统正常工作。在取苗控制系统中,由于采用的核心控制器为STC90C516RD,所有元件模块均使用+5V直流电源供电。考虑到在大田作业的实际环境,电源是拖拉机自身的+24V电瓶供电,所以在电源模块的设计开发过程中,将+24V电源转化为稳定可靠的+12V及+5V电源。

3)控制量输出模块由处理器发出电平信号通过输出模块转换为步进电机驱动器的执行信号,由此控制苗盘横向和纵向电机的间歇运动。在送苗系统中,通过控制步进电机来带动苗盘横向和纵向运动,运动到固定的取苗位置,完成取苗动作。步进电机的转动角度是依靠接收到的脉冲的个数来实现的,步进电机的转动速度由发送的脉冲频率决定。

电机工作脉冲数的计算,即

式中A—电机工作脉冲数;

L—每次移动距离(mm),L=32;

PB—滚珠螺杆的螺距(mm),PB=10;

θS—步距角(°),θS=0.45。

代入上述公式,计算出工作脉冲数为2 560Hz。

处理器发出信号到步进电机控制芯片UDN2916,再驱动步进电机动作。步进电机换相控制时所对应的电流控制真值表如表1所示。

表1 UDN2916电流控制真值表Table 1 Current control truth Table

4)信号采集模块由传感器检测取苗机构是否完成取苗,并将信号发送至处理器模块。选用红外避障传感器NPN型E18-D50NK漫反射式,安装在取苗机构未端,取苗机构插入苗盘时发送给控制器的信号是高电平,在取苗装置取苗完成离开苗盘的瞬间,发送给控制器的信号就变成了低电平,即为下降沿触发。在处理器信号转变的瞬间,触发运行电机转动程序。

5)人机交互模块将苗盘中的取苗位置信号送给处理器模块,通过串口发送到PC机,以Labview编写显示界面及程序,显示当前的取苗位置和电机运行的相关参数,并可通过PC机界面实时调整电机运行速度,从而以可视化的方式对苗盘运行状态进行调整,以更好的配合取苗机构动作。

2.3 端口分配

本设计中采用单片机型号是STC90C516RD+,晶振是12MHz,+5V电源供电。STC90C516RD单片机开发板有32个I/O口可用,本次设计占用了15个I/O口,单片机I/O口的分配如表2所示。

表2 单片机I/O口分配表Table 2 SCM I/O port distribution Table

3 软件设计

苗盘输送控制系统采用文献C51语言进行程序编写,并采用Keil uVision3集成开发环境进行软件开发,在数据处理、逻辑判断以及准确性等方面合理高效。在系统软件设计中,实现3个目标:①为处理器提供准确、实时的数据;②合理安排各个中断程序的优先级,保证实时性要求高的中断能够得到最快的响应和处理;③采用合理的设计方法,提高整个软件系统的可读性和可靠性。

3.1 程序流程图

系统的主程序是一个循环结构,主要功能是对各模块进行初始化并调用各子程序模块。单片机在不断重复进行判断后,管理各子程序模块完成相应的控制任务。

系统上电后,单片机进行系统初始化,首先根据是否接到到位传感器信号,判断是否纵向移动。如果有到位信号说明一行取苗结束,执行纵向移动程序,进行下一行取苗;无到位信号则说明一行取苗正在进行,则执行横向运动程序;在执行相应运动之前,单片机会向PC机发送数据串,作用是在LabVIEW的前面板显示取苗的实时位置。

选取的苗盘规格为 8×16 格,外形尺寸为 280mm×540mm,每个苗盘穴口的大小为 32mm×32mm,相邻穴孔中心距为32mm,苗盘纵列两端带有卡槽。设计的移动轨迹为“弓”字型,即以苗盘右下角的穴孔为初始位置;首先控制苗盘进行横向移动,方向信号为右移,每次移动的步距为32mm,移动的频率以机械手的取苗频率为准(即为红外传感器的下降沿信号为触发),间歇右移7次(以计数器计数的方式实现),即取完最下行8株苗;随后,控制苗盘进行下移32mm(开始进行第2行取苗),此时取苗手位于苗盘左下方第2行第1个穴孔,再次控制横向移动,方向信号为左移,间歇左移7次,完成第2行取苗;之后,重复以上动作。苗盘的运动轨迹如图3所示。程序流程如图4所示。

图3 苗盘的运动轨迹Fig.3 Trajectories of seedling dish

3.2 苗盘输送控制实现

苗盘输送控制主程序的作用是在取苗装置中取出苗盘里的苗时,传感器的传输信号由高电平到低电平的下降沿,此时根据相应条件执行选择语句。其中,a为传感器传输的信号,在取苗装置取苗时,a=1,取出苗离开苗盘后,a=0;i为苗盘的列数;j为苗盘的行数;m=1表示正转,m=0表示反转。每取完一次苗后,苗盘正向移动1个穴格,重复7次后,纵向移动1个穴格,然后反转移动1个穴格,重复7次,之后再纵向移动1个穴格,再正向移动,循环往复,直到移动到第16行,此时的一个苗盘取苗结束,开始换下一个苗盘。程序中有4个选择语句分别是判断正转、反转、左边沿纵移、右边沿纵移。然后执行相应的语句,实现苗盘的“弓”字形运动。

图4 程序流程图Fig.4 Program flow chart

1)电机正反转实现。在设计中有两个电机,分别使苗盘横向和纵向移动,本设计使用的是双极性步进电机,所以程序中单相四拍通电驱动时序:

正转: A/ B A B/

反转: B/ A B A/

A/和A同在一个线圈,B/和B同在一个线圈。

2)串口通信程序实现。在进行串口通信之前,首先要进行串口初始化,要设置串口通信参数及方式,其中本次使用的单片机的晶振是12MHz,为了减少误差,保证串口通信的速率,设置波特率2400,则波特率初值是F3H,误差为0.16%。

串口发送程序:主要功能是将单片机中的数据发送给PC机,PC机中的LabVIEW程序再将接收的数据进行分解处理,由前面板显示苗盘的实时位置,其中单片机发送的是2字节数据。

串口接收程序:主要功能是将在LabVIEW参数设置界面上设置的苗盘速度发送到单片机,进而控制电机运动的速度。

3.3 LabVIEW主程序实现

用LabVIEW和单片机进行串口通信,需要使用LabVIEW串口通信函数节点编写程序。本程序根据单片机串口参数设置波特率为2 400,数据位为8,无检验位,停止位为1。设置好通信参数,要进行速度参数的设置,设置好速度数值,创建数组,转换成字符串,就可以通过VISA写入发送给单片机。

图5 数据发送程序Fig.5 Data sending program

将接收到的2字节字符串通过程序分别分析出来行数和列数,如图5所示。发送的字符串通过缓冲区到达VISA读取,再字符串转换成数组,此时的数组有2个元素,索引数为0的是列数,索引数为1的是行数,连接XY图就可以在图中显示。此时就将2字节的字符串分离出来,分离出来的行数和列数就可以通过算法得出已取苗数和剩余苗数。数据接收和数据处理程序如图6所示。

3.4 其他功能的实现

为了保证系统登陆过程的安全性,需要设置账号和密码,只有在输入正确的账号和密码后,系统才能正常运转,如图7所示。本设计中为了避免每次都输入账号和密码,设置了人工确定开始监控按钮,此模式可以用于系统调试过程中,避免了反复输出账户和密码的繁琐。

图6 数据接收和数据处理程序Fig.6 Data reception and data processing program

图7 系统登陆账号密码的设定Fig.7 Setting of logging in to your account password

4 苗盘输送控制试验

按照单片机控制器电路连线要求,将传感器、单片机开发板及步进电机进行了实物连接,模拟苗盘输送过程的控制要求,如图8所示。

单片机通过串口通讯,将检测到的取苗位置信号(行坐标和列坐标)及本次取苗是否完成信号送给上位机,上位机显示当前的行坐标和列坐标,并以直观的图形方式显示当前的取苗位置,如图9所示。图9中的显示界面包含控制按钮、参数设置和工作状态显示3个主要部分。控制按钮包含启动和停止及是否进行人工监控3个控制按钮。参数设置包含速度设置、通信电脑接口设置、波特率设置、数据位设置、奇偶设置、停止位设置6个参数设置。当前工作状态显示包含行数显示,列数显示,已取苗数显示,剩余苗数显示及取苗实时位置显示5个工作参数显示。

图8 系统构成与模拟试验Fig.8 System structure and simulation test

图9 系统人机交互界面Fig.9 Human-computer interaction interface

操作时,首先要根据单片机程序进行串口的初始化设置,主要为以下5个参数。通信电脑接口设置为com3,波特率设置为2 400,数据位设置为8,奇偶设置为0,停止位设置为1。做好初始化设置之后,再设置速度控制值,本次设置速度控制值为2。按下启动按钮,控制苗盘开始按照速度2的方式移动,在界面上可以显示取苗的实时位置。图9中显示的区域为苗盘规格为 8×16 格,共计128株苗;外形尺寸为 280mm×540mm,每个苗盘穴口的大小为 32mm×32mm,相邻穴孔中心距为32mm。图9中亮点的位置为当前的取苗位置(第2行、第4列),同时在行数显示一栏显示2,在列数显示一栏显示4,在已取苗数一栏显示13,在剩余苗数一栏显示115。该系统实现了对苗盘移动的控制,可以控制取苗位置依次“弓”字型移动,实现同步显示当前取苗位置的行坐标和列坐标,以及当前取苗个数和剩余苗数。

5 结论与展望

1)通过串口通讯实现了穴盘苗横向和纵向的间歇供给的要求,通过LabVIEW设计了人机交互界面,实现了工作参数设置,通过单片机和LabVIEW串口通信,实现了苗盘移动速度的实时控制。在供苗过程中,实现了取苗的实时位置显示,已取苗数和剩余苗数实时显示功能。

2)本设计中LabVIEW和单片机的串口通信采用有线的方式,但随着通讯技术的发展,远程人机交互界面控制更受欢迎,后期的研究可以采用无线进行数据传输;增加数据传输的字节数,提升人机交互界面功能。

猜你喜欢
PC机串口单片机
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
船舶电子设备串口数据的软件共享方法
用VC++实现PC机与单片机的串行通信
VC.NET下实现dsPIC单片机与PC机的通信