基于AGV系统的软件设计
2012-07-25刘冰,蔡震,申猛
刘 冰,蔡 震,申 猛
(中国电子科技集团公司第四十七研究所,沈阳110032)
1 引言
AGV是自动导引运输车(Automated Guided Vehicle)的英文缩写。它是一种以电池为动力,装有非接触导航(导引)装置的无人驾驶车辆。它的主要功能表现为能在计算机监控下,按路径规划和作业要求,精确地行走并停靠到指定地点,完成一系列作业功能,并具有安全保护功能的运输车。AGV控制系统由主计算机和车载计算机系统及辅助装置组成,采用计算机技术、无线数据通讯技术、自动控制伺服技术及车辆管理等综合技术集成微机控制系统及车载控制系统。其中,主计算机主要负责任务分配、车辆调度、路径(线)管理、交通管理、自动充电等功能;车载控制系统在收到上位系统的指令后,负责AGV的导航计算、导引实现、车辆行走、装卸操作等功能。
2 上位机程序设计
上位机程序,即主计算机程序是人机信息交换的界面,同时也是AGV安全、可靠运行的保障。一个较好的上位机程序首先应该有一个较好的操作界面,使其能够让使用者便捷地下达各种操作指令;其次要有较好的数据组织能力,使其能够更好的组织AGV执行各种指令。
3 程序功能模块设计
上位机程序根据需要可分为五大模块,即生成指令模块,通讯模块,AGV监控模块,文件管理模块和紧急处理模块。
生成指令模块的作用是接收和分析人工输入的命令及其参数,并将其进行编码,存入待发数据工作区。上位机生成的指令码为5个字节。
在同步字节中放入的是固定值0FFH,相当于同步指令,其作用是使上位机数据的发送与下位机数据的接收同步。在命令字节中放入的是命令代码,命令字节后面的三个参数字节放入的是执行命令所需的参数(见表1)。
下位机程序,即单片机程序是AGV能够运行的软件基础,它直接影响AGV执行指令的能力和效果,同时也将影响其可靠性和安全性。
表1 命令代码、命令含义以及参数含义
4 下位机程序设计
下位机程序,即单片机程序是AGV能够运行的软件基础,它将直接影响AGV执行指令的能力和效果,同时也将影响其可靠性和安全性。
5 程序功能设计
下位机程序根据需要可分为七大功能模块,即主控程序模块、步进电动机驱动程序模块、直流电动机驱动程序模块、传感器数据采样程序模块、监控程序模块、数据处理程序模块、通讯驱动程序和出错处理程序模块。
主控模块的功能是把其他功能模块有机的结合起来,使其能够协调工作。
步进电动机驱动程序的功能是完成步进电动机的驱动,步进电动机驱动程序包括步进电动机的转向驱动、步进电动机的转角驱动和步进电动机的转速驱动,它们的实质就是控制单片机PD口3位和6位输出高低电平和控制单片机PD口4位和5位输出脉冲的个数及频率。
直流电动机驱动模块的功能是完成直流电动机的驱动,直流电动机驱动程序包括直流电动机的转向驱动和直流电动机的转速驱动,它们的实质就是控制驱动芯片L298N输入引脚的高低电平和控制由单片机PB口3位和PD口7位输出的PWM信号的占空比。
传感器数据采样模块的功能是采集所有传感器的数据,它的实质是从单片机PC口读入传感器的高低电平。
监控模块的功能是监视程序的运行状态。它的实质就是控制单片机的PA口和PD口向数码管和蜂鸣器输出相应的具有一定意义的数据。
数据处理程序模块包括四个功能:
(1)处理由上位机发出的指令数据并生成相应的控制数据。
(2)处理由传感器采集的数据并生成相应的控制数据。
(3)通过程序运行状态或是AGV运行状态为监控程序提供输出数据。
(4)通过程序运行状态或是AGV运行状态向上位机提供反馈数据,反馈数据代码及其含义如表2所示。
通讯驱动程序模块的功能是接收上位机发送的指令数据和向上位机发送反馈数据。它的实质就是操作单片机的串口。在本设计中初步设定串行通讯的速率为600BPS,通讯数据无奇偶检验,两位停止位。
出错处理程序模块的功能是当AGV出现运行错误或是紧急情况时控制AGV做出相应的处理。
表2 下位机反馈数据代码及其含义
6 结束语
AGV系统的软件部分是这个系统的重要组成部分,上位机和下位机的程序设计能够很好的协同控制AGV的导航计算、行走、装卸等操作。
随着更多国家对AGV系统的不断发展与研究,AGV已经不仅限于在汽车工业上的应用,更多的新型AGV被广泛应用于工业、医疗领域,也可以用于办公室信件的自动分发和电子行业的装配平台。AGV从仅由大公司应用,正向小公司单台应用转变,而且其效率和效益更好。
[1] 孔令中.AGV原理及应用[M].北京:化学工业出版社,2006.
[2] 陈冬云.AVR单片机原理及应用[M].北京:机械工业出版社,2005.