基于平台思想构建AGV地面系统 |
摘要:本文对AGV应用所遇到的问题进行了分析,提出按照“软件平台”的思想构建AGV地面系统的理论。文章对系统的功能结构及工作模式作出了描述,并通过四个方面阐述系统平台化的实现。最后,通过系统的实际应用验证了基于平台思想构建AGV地面系统的优点。
关键词:AGV;AGV地面系统;软件平台;AGVScript;流程模型;路径模型
Abstract: In this paper, we analyse the problems that in applying of AGV. We bring forward: Design AGV Ground-base system with thinking of software-platform. Then, we introduce the structure of this system , how it works and how it realized.At last, validate the advantage of this thinking of design by apply the AGV Groud-base system in many projects.
Key words: AGV, AGV Ground-base System, Software Platform, AGVScript, Model of Workflow, Model of route |
1引言
AGV是英文 Automated Guided Vehicle的缩写,意为自动导引车。AGV应用的主体由AGV地面系统和AGV共同构成,适用于自动化物流系统和柔性制造系统的物料搬运,应用领域涉及汽车、机械、电子、化工、冶金、邮电、航空、银行、商业、印刷出版、食品、医药、烟草、造纸、国防等行业,应用前景广阔。其中,AGV地面系统是一套用于控制和管理多辆AGV进行行走和执行搬运任务的复杂软件系统,可以看作整个AGV应用中的大脑部分。
随着工业自动化技术的不断发展,制造企业的自动化水平也在不断提高,生产系统越来越复杂,AGV系统所需要适应的工作流程和行走路径也越来越复杂多变。地面系统作为整个AGV应用的大脑必须在不同行业的不同企业应用中适应这种变化,指挥AGV准确、安全、快捷地完成搬运任务。如果仍然按照传统的软件项目开发设计模式,针对不同项目的用户需求进行调度软件的个性化开发,那么开发这样一套复杂的智能化调度系统不仅工作量大、项目实施周期长,而且难以保证其稳定性和性能。因此,实现在同一平台上满足不同用户和项目的需求,快速搭建、部署和实施应用项目是AGV实现工程化应用的关键。
2系统分析
基于AGV应用对多行业应用适应性的要求,在AGV地面系统设计中必须考虑系统的柔性和可扩展性。目前,许多系统通过设置大量的系统参数来达到系统定制的目的,然而在AGV应用中,用户需求的变化内容主要表现在AGV的行驶路径和运行流程上,仅仅靠设置参数是无法根本性解决问题的。为此,将系统按照“软件平台”的思想进行设计,不仅要给用户提供一个运行系统,还提供一个可定制系统的开发工具,使用户可以根据自己要求进行简单的二次开发,以达到在同一稳定系统的基础上灵活、快速搭建系统的目的。
按照“软件平台”的设计思想,AGV地面系统需要为用户提供开发平台和运行平台。这样,一个AGV工程应用的构建过程就变成:首先,利用开发平台,按照现场要求对AGV行驶路径进行规划,按照功能要求对运行流程进行编排;然后运行平台动态解析这些系统路径和流程模型,对AGV进行调度和管理,指挥各辆AGV高效、安全、准确地完成搬运任务并对AGV的运行位置、状态及任务的完成情况进行监控。
另外,考虑到在开发平台上进行具体应用项目的二次开发后,应对二次开发的正确性及效果进行调试验证,而这时往往一些硬件条件(包括AGV本身)尚不具备,因此AGV地面系统还需要提供仿真平台,接受运行平台下达的指令模拟AGV的行走、操作过程并与运行平台进行交互。通过运行平台按照二次开发的路径和流程模型的要求调度仿真平台提供的仿真AGV,仿真AGV进行模拟行走和操作,运行平台接收仿真AGV的反馈,并在图形化监控界面中进行反馈显示。当发现仿真AGV执行任务情况与所预期的功能不符时,可及时运用开发平台对路径和流程模型进行修改,从而实现在不依赖于硬件环境的条件下对项目进行调试。
3系统总体功能结构
根据系统分析,AGV地面系统的功能被划分为应用层和平台层,功能结构如图3-1所示:
|

图3-1系统功能结构图 |
如图所示:首先,是系统的平台层,它包括开发平台、运行平台和仿真平台三大部分:(1)开发平台:包括系统规划工具和定义工具分别负责AGV路径的规划和系统参数定义及流程编排,并将开发的模型传输到数据存储中。(2)运行平台:获取数据存储中的模型,指挥AGV完成行走和操作。在AGV执行任务过程中,运行平台中的任务管理负责多任务的合理调度,并使各任务并行执行;车辆管理为各任务分配合适的小车,以保证任务尽快完成;交通管理负责指挥AGV间的相互避让,以保证任务能够安全地完成;车辆驱动负责控制AGV的行走和装卸货操作执行;IO管理负责任务执行过程中,在必要时控制外界的IO设备;通信管理负债任务执行过程中运行平台与AGV、上位调度系统等外围系统的交互;图形化监控负责显示AGV的状态、位置以及任务执行的情况。(3)仿真平台,负责接收运行平台下达的指令,模拟各辆AGV执行行走及操作,并模拟反馈AGV当前位置和状态。
其次,是应用层,它结合具体项目借助平台层搭建的满足项目实际需求路径和流程模型,通过运行平台解析执行,实现满足不同行业的企业AGV应用中不同要求的装货、卸货、充电、数采等功能。
在这样的功能结构下,现场部署的AGV系统包含AGV地面系统的运行平台、路径模型、流程模型和AGV车载系统,其工作模式可以用图3-2表示: |

图3-2 AGV系统工作模式示意图
|
如图所示:运行平台接受物流上位调度计算机发出的物料搬运请求命令后,启动相应的物料搬运任务,并解析模型数据,调度任务和车辆,向AGV下达行走和操作指令;AGV根据运行平台下达的指令执行行走和操作,并随时向运行报告车辆位置、状态信息及任务执行信息,以便运行平台对其进行监控及根据AGV当前状况对其进行实时调度;同时,运行平台向物流上位调度计算机报告任务执行信息;运行平台在必要时使用输入输出模块控制外围设备,如:通过数字IO模块启动或停止充电站。
4系统平台思想的实现
要实现“软件平台”思想,首先必须提供给用户一套二次开发的工具来按照需求定义模型;除此之外,还必须能够解析用户开发的模型,按照定制的流程和路径来进行AGV的指挥调度。因此,我们从以下四方面来实现“软件平台”思想的:
4.1 基于图形编辑的系统规划工具
为了满足AGV在实际应用中适应各种各样复杂变化路径的需要,AGV地面系统中提供了基于图形编辑的规划工具来描述可供AGV行走、停靠的路径资源,以达到针对特定现场应用定制AGV行走路径的目的。在规划工具中包含点、段、站台等图元,这些图元是通过鼠标点击和拖动便可以绘制。在用户绘制路径时,系统捕捉鼠标的操作及拖动轨迹,在界面上以图形化的方式显示路径,同时计算产生图元的位置、方向、线形等属性数据,直观、快捷地构建路径模型。规划工具主体界面如图4-1: |

图4-1规划工具主体界面图 |
4.2 定义工具及AGVScript
开发平台中的定义工具,为满足在不同工程项目中编排AGV运行流程,提供特有的AGV脚本语言(下称为AGVScript)。AGV执行任务的流程由程序来实现,程序由一系列AGVScript宏指令组成,一条宏指令对应各子模块(如:车辆管理、交通管理)提供的功能调用(如:移动车辆到某处、读/写变量、发送消息、程序跳转、变量赋值等)。此外,还提供了系统运行所需的各项参数,包括:一般参数、通讯参数、参数区域定义、转换表定义等功能,其中不同作用域的参数区域可用于程序间传递数据。通过将这些指令、参数进行灵活组合可以实现适应不同现场千变万化的功能流程需求。AGV运行流程编排界面如图4-2: |

图4-2 AGV运行流程编排界面
|
4.3 基于虚拟机的任务解析
用户建立的流程模型是一些静态数据,要让系统按照定制要求进行运行,运行平台还必须拥有一套动态解析机制。因此,在运行平台进行任务管理时,需要专门的虚拟机来对定义任务执行流程的AGVScript程序进行解释和执行。虚拟机分析当前语句行中给出的指令执行的参数,对参数做必要的转换处理、根据语句行中的指令名称调用相应的系统功能、根据当前指令的执行结果和当前语句行中的指令执行条件计算下一次运行的语句行的行号。虚拟机将AGVScript语句行中的指令名称和对应的系统功能存储于指令列表中。通过指令名称可以在列表中查找到相应的系统功能进行动态调用,由运行平台中提供这些系统功能的模块协同按照程序定义的流程指挥AGV完成任务。
4.4 基于路径模型计算最短路径的车辆调度
不同的现场,要求AGV行驶的路径差异很大,运行平台不可能安装某条既定的路线来指挥AGV行走。在拥有了通过AGV规划工具建立的路径模型后,运行平台中负责车辆调度的模块根据模型中所描述的路径资源的位置、长度等信息,选择承担任务的AGV并搜索计算出该AGV延什么样的路径到达目标点。
运行平台中负责车辆调度的模块将路径模型视为点集合和段集合所构成的带权有向强连通图。每个段都有唯一的起点,终点和方向,都有长度值作为权值,具有强连通以及每一路径段都有距离的特点。考虑要让车辆最快达到目标点,选择距离目标点最近的车辆就能让任务得到最快地完成,而计算出的两点间最短路径就是小车要行走的路径。由于AGV路径图不为密集图,可以使用贪心算法求取最优唯一解,我们采用Dijkstra算法进行路径搜索。将搜索出的最佳路径信息在合适的时机发送给AGV,AGV根据这些信息进行导航行走,从而实现对路径变化的自适应性。
4.5 基于分布式的运行平台及运行过程可视化
AGV运行平台是一个复杂的控制系统,它需要根据系统中车辆、任务、路径等的变化情况实时地进行大量计算并与AGV及其它周边系统进行大量的信息交换,因此,其实时性要求高;更重要的是:AGV运行平台作为整个AGV应用的大脑,一旦被意外关闭将会导致整个依赖于AGV进行搬运的物料供应链崩溃,因此,其稳定性和安全性要求也很高。另外一方面,用户需要直观地获取系统运行过程中AGV、任务信息,图形化的监控是较好的解决方案。但将AGV和任务运行状态进行动态图形化显示会消耗大量计算机系统资源,考虑到运行平台实时性、稳定性和安全性的要求,我们将所有的计算、控制和调度,如任务调度、车辆管理、交通管理、IO管理作为Windows后台服务进行设计,部署在服务器上;将图形化的监控部署在客户端上,形成典型的客户-服务器结构。这样,一方面可以通过分布式计算保证后台计算、控制和调度得到充足的服务器资源,保证运行平台的实时性,同时借助Windows的安全机制防止服务被意外关闭;另一方面,由于能够得到充足的计算机资源,图形监控可以表现得更加丰富、直观和实时,同时还可以同时部署在生产现场的不同位置,方便客户在多点对系统运行过程进行可视化监控,及时处理问题。图形监控界面如图4-3,监控系统真实地显示了AGV的运行路径,以形象的图标显示AGV所处的位置并以不同颜色表示AGV执行任务的状态。
|

图4-3 AGV图形监控界面
|
5系统应用情况
目前,AGV地面系统已在一汽红塔总装车间、上海市劳动局数字制造中心、北京物资学院物流试验室、杭州发动机厂、常州柴油发动机厂等项目中得到成功应用。应用涉及汽车装配、机械加工、教学研究、发动机生产行业,AGV行驶路径和流程都有很大差异。各项目在到现场进行实施安装前,按照项目要求运用AGV地面系统中的开发平台进行了路径规划和任务流程编排。并利用仿真平台对项目进行了仿真,为项目的快速实施打下较好的基础。各项目在系统实施后,经长期运行用户确认系统稳定可靠,功能达到应用要求。
6小结
采用“软件平台”思想开发出的系统可实现将软件开发和项目实施分开,使目前存在的项目开发周期长、进度得不到保证等问题得到根本解决。因为项目的开发不再是采用软件设计、编码、测试、部署的流程,而只是使用这种系统提供的开发工具,进行简单的流程定义和参数定义,系统就可以按照项目要求运行,从而可大大降低了技术风险。
另外,采用软件平台思想设计开发软件将有利于软件的产品化。由于项目实施人员不能更改系统原代码,必须反馈问题,由软件开发人员解决,因此软件问题容易快速发现并解决,形成稳定可靠的版本。
经项目实践证明:基于“软件平台”思想为指导构建的AGV地面系统是一套能适应复杂多变的运行路径和运行流程,可以快速完成AGV工程项目开发、仿真和部署应用的整体解决方案。 |
参考文献:
1 Len Bass、Paul Clements、Rick Kazman著,孙学涛、杜学绘、刘冬萍译,软件构架实践,清华大学出版社,2002年.
2 樊跃进著. AGV在我国烟草行业的应用物流技术与应用. 2005.(7)
3 Craig Larman 著,姚淑珍、李虎等译,UML和模式应用,机械工业出版社,2002年.
4 樊跃进等著. 推挽式激光导引无人车设计. 物流技术. 2003.(1):14-15,21
5 昆船公司自主AGV操作手册 内部资料,2005
6 关宏等. AGV整体集成系统结构设计. 物流技术.2004.(4)
作者简介:
张智勇 云南昆船设计研究院副院长,高级工程师。1996年7月开始从事AGV的研究与开发工作,已积累了丰富的AGV理论和实际经验。曾获部级科技进步三等奖一次;云南省科技进步一等奖一次;获“云南省科技创新人才”,“昆明市技术带头人后备人选”称号。
单位:云南昆船设计研究院
地址:昆明市人民中路6号
邮编:650051
电话:13320510006,0871-3192339
E-mail: zhangzhiyong@mail.ksec.cn
|
|