一种多AGV小车上位机统一调度系统设计方法与流程

文档序号:12270179阅读:523来源:国知局
一种多AGV小车上位机统一调度系统设计方法与流程
本发明涉及AGV小车进行协调调度
技术领域
,具体涉及一种多AGV小车上位机统一调度系统设计方法。
背景技术
:众所周知,无人搬运车(AutomatedGuidedVehicle,简称AGV),指装备有电磁或光学等自动导引装置,能够沿规定的导引路径行驶,具有安全保护以及各种移载功能的运输车,工业应用中不需驾驶员的搬运车,以可充电之镍铬、铅酸电池为其动力来源;一般可透过控制器来控制其行进路线以及行为,或利用电磁轨道来设立其行进路线,电磁轨道粘贴在地板上,无人搬运车则依循电磁轨道所带来的讯息进行移动与动作。移动机器人AGV在制造业及物流业应用中以其高效、准确、灵活地完成物料的搬运任务,并且可多台AGV组成柔性的物流搬运系统。AGV作为基础搬运工具,它的应用深入到物流、家电生产、机械加工、烟草、微电子制造等多个行业。而要想实现多台AGV的高效协同工作,更需要一个能够掌控工业现场全局的调度中心,实现对AGVs的状态监控,以及对任务的分配和调度。同时,随着物联网+工业的生产模式的逐步推广应用,AGV上位机系统需要对AGV的运行状态的大数据分析,从而达到对资源的优化配置等都有着重要的作用。因此,AGV上位机系统对于整个AGV系统的高效运作、最优资源配置、数据分析等都有着至关重要的作用。随着自动化物流运输系统的快速发展和柔性制造系统的广泛应用,集群化、网络化和智能化控制是AGV系统发展的重要方向。然而目前国内对AGV的研究主要偏向于AGV小车的研究,对AGV上位机系统的研究较少。因此,如何实现对多AGV小车的网络化调度和监控成为需要解决的主要问题。申请号为201410265253.1的发明涉及AGV小车进行协调调度的
技术领域
,特别是涉及一种AGV调度系统,本发明的AGV调度系统灵活调度多个AGV,避免AGV相互碰撞,解决多辆AGV行使路线的单一问题,同时避免了增设更多的导航轨道,节约了成本,提高了生产效率;包括呼叫模块、通信模块、车载控制模块和上位模块;呼叫模块用于当某个工位需要AGV时,发送呼叫信号至通信模块;通信模块接收到呼叫信号后将呼叫信号发送至车载控制模块;车载控制模块接收到呼叫信号后控制AGV运动至呼叫信号发出的工位处;车载控制模块在工作时发送位置信号至通信模块;通信模块接收到位置信号后将位置信号发送至上位模块进行位置显示。该发明可以实现多个AGV小车资源的合理分配,但是需要人工介入参与,上位机控制并不智能化。技术实现要素:本发明所要解决的问题是提供一种多AGV小车上位机统一调度系统设计方法,能够解决AGV集群化的问题,能够实现多AGV协同工作下资源的最优配置。为解决上述技术问题,本发明采用的技术方案为:一种多AGV小车上位机统一调度系统设计方法,包括如下步骤:S1、地图导入:首先读取地图以及配置参数文件,如果没有读取到地图以及参数文件或者不存在该文件,则会弹出选择地图对话框要求用户导入地图并设置好配置参数;S2、地图识别:先识别出地图中的关键节点,然后再提取出各个节点间的连接情况(即两个节点间是否存在直达路径);S3、地图分析:建立在地图识别的基础上,对各个节点间的连接关系和它们之间的权值进行分析;S4、状态显示:系统寻找当前在线的AGV小车,当AGV小车收到上位机发来的信息后,将状态信息发送给上位机;S5、任务调度:上位机下达任务请求坐标,系统计算当前离任务地点最近的空闲AGV小车;S6、路径规划:系统在步骤S1至S3的基础上得到节点的位置、连接关系以及各个连接的权值分配,然后使用dijkstra算法实现最短路径规划,再判断在最短路径上的各个节点的转向方向最后将方向信息和路径信息整合后交由网络模块发送至AGV小车;S7、任务执行:AGV小车接收方向信息和路径信息后,执行任务并调整自身信息为“忙”,然后将状态信息发送至上位机,上位机将AGV小车的状态信息显示给任务申请者反馈任务已调度;S8、任务完成:AGV小车在任务完成后调整自身信息为“闲”,并将状态信息发送至上位机,上位机将AGV小车的状态信息显示给任务申请者反馈任务已完成;S9、日志记录:每当任务分配的时候,就将任务信息存在在当前任务属性中,其中包括AGV当前位置、任务起始位置、任务最终位置、当前点到任务起点路径、任务起点路径到任务终点路径和当前电量,当任务结束后记录下AGV任务结束时的电量,接着将任务信息输出到Excel,然后清空当前任务。进一步的,所述步骤S1中地图内的弧线用直线代替,拐点处用棱角代替圆弧。进一步的,所述节点包括十字路口、丁字路口和拐角点。进一步的,所述节点的识别采用Haris角点检测,从图象局部的小窗口中观察图象特征,窗口向任意方向的移动都会存在图象灰度的明显变化的部分就是节点,其数学表达式如式1所示,通过平移图象窗口产生灰度变化,(式1)其中窗口函数可以是矩形窗口,也可以是高斯窗口,由于,于是对于局部微小的移动量[u,v],可以近似得到表达式2:(式2)其中M是2x2矩阵,可由图象的导数求得:(式3)最终定义角点的响应函数为式4所示:(式4)其中:(式5)(式6)和是M的特征值,通过这些特征值可以确定这个窗口所在部分是Corner、Edge或者Flat。进一步的,所述步骤S3中权值分析包括两个点之间是否可以直接到达,如果可以则计算出权值,如果不可以则可以理解外权值无穷大。进一步的,所述步骤S5中当前所有空闲的AGV小车的所在点与任务地点的直线距离最短的便是距离任务地点最近的空闲AGV小车。进一步的,所述AGV小车与上位机的通讯依靠网络模块进行,所述网络模块包括用于AGV小车自动连接上位机的IP地址和端口广播部分、上位机接收下位机发送的状态信息的UDP服务器部分以及采用TCP协议实现的任务分配部分;系统启动广播程序线程,接着启动UDP接收数据服务器线程,系统通过广播寻找当前在线的AGV小车,当AGV小车收到广播信息后就会将上位机系统的IP和监听端口记录下来,然后将状态信息发送给上位机。本发明提供了一种多AGV小车上位机统一调度系统设计方法,本发明设计的前提是AGV小车需要具有WIFI通信功能,即硬件必须增加网络通信模块,不在本发明讨论范围。本发明设计的多AGV小车的上位机统一调度系统,主要解决AGV集群化的问题,包括多AGV协同工作下资源的最优配置,以及提高AGV小车的工作效率,即实现工作环境信息提取、AGV小车路径规划、人机交互和日志记录等模块。本发明使用python编程语言开发,python语言是在1989年GuidovanRossum发明,是一种面向对象、解释型计算机程序设计语言,具有语言简洁清晰、良好的可移植性、可扩展性以及丰富的库,并且用户可以调用C模块,具有极强的灵活性。本发明设计的上位机系统采用模块化的设计方式,主要包括AGV状态显示模块、地图识别模块、路径规划模块、任务调度模块、充电归航模块和网络通信模块。为达到直观明了的效果,状态显示采用在背景地图上动态标示AGV的位置和状态信息,包括AGV小车当前的忙闲、电量状况;同时为了使用人员的方便,对于地图没有过于繁杂的要求,只需要用画图工具按比例画出地图即可,在软件中采用图象识别的方式寻找出有用的关键信息;对于任务调度与充电归航等都是基于路径规划而实现的扩展功能,主要实现路径规划。本发明中上位机统一调度系统与多AGV小车之间通过以太网来进行数据交互,主要包括地图识别、参数处理、网络模块、数据处理、路径规划、任务分配、报表输出和实时显示。地图识别实现地图导入、节点检测和路径识别等任务,由于只需要在导入地图的时候进行识别计算,因此采用保存识别结果到文件的方式,往后启动系统只要不改变地图就不必再次调用地图识别模块,避免了重复计算带来的额外开销。参数处理实现参数设置、参数保存和参数读取任务。网络模块采用了UDP协议来监听AGV上报的状态信息,而对于任务的分配则使用面向连接的TCP协议,保证任务信息的准确到达。在每一个任务下达执行后,数据经过数据处理、路径规划和任务分配步骤,通过生成报表输出,到Excel文件,供管理人员进行数据分析,作为资源最优分配参考,并进行实时显示。当程序开始执行时,首先读取配置参数文件,如果没有读取到参数或者不存在该文件,则会弹出选择地图对话框要求用户导入地图,接着系统会自动识别地图,取得有用信息,然后用户设置好必要参数。如果读取到参数,则会直接加载界面,显示地图,当准备工作完成之后,系统就会启动广播程序线程,接着启动UDP接收数据服务器线程,系统会通过广播寻找当前在线的AGV,当AGV收到广播信息后就会将上位机系统的IP和监听端口记录下来,然后将状态信息发送给上位机,上位机收到信息后首先判断信息类型,如果是常规信息则查看是否有以该AGV编号命名的对象,如果有则更新显示数据,如果没有则以该AGV的编号创建相应的对象,然后显示数据,如果收到的数据是任务请求数据,则会调用任务调度和路径规划两个模块,寻找最近的空闲AGV,然后计算到达任务地点的最短路径和执行任务的最短路径,最终响应任务请求和分配任务到AGV,任务结束后输出任务信息到报表。当程序运行结束时自动保存参数,接着退出程序。本发明能够解决AGV集群化的问题,能够实现多AGV协同工作下资源的最优配置,实现AGV小车的动态监控显示、任务处理与分配、任务路径规划以及任务文本化记录,即运作可视化和资源最优配置,能够达到整个系统无人值守且高效运行的效果。附图说明下面结合附图对本发明作进一步描述:图1为本发明的AGV上位机整体流程图;图2为本发明的AGV小车上位机系统的功能模块;图3为本发明的AGV小车上位机系统的软件模块;图4为本发明的地图识别模块Harris角点检测结果;图5为本发明的状态显示模块流程图;图6为本发明的任务调度流程图;图7为本发明的ESC菜单和右键菜单的功能;图8为本发明的AGV状态显示测试结果。具体实施方式下面结合图1至图8对本发明技术方案进一步展示,具体实施方式如下:本实施例提供了一种多AGV小车上位机统一调度系统设计方法,包括如下步骤:S1、地图导入:首先读取地图以及配置参数文件,如果没有读取到地图以及参数文件或者不存在该文件,则会弹出选择地图对话框要求用户导入地图并设置好配置参数;S2、地图识别:先识别出地图中的关键节点,然后再提取出各个节点间的连接情况(即两个节点间是否存在直达路径);S3、地图分析:建立在地图识别的基础上,对各个节点间的连接关系和它们之间的权值进行分析;S4、状态显示:系统寻找当前在线的AGV小车,当AGV小车收到上位机发来的信息后,将状态信息发送给上位机;S5、任务调度:上位机下达任务请求坐标,系统计算当前离任务地点最近的空闲AGV小车;S6、路径规划:系统在步骤S1至S3的基础上得到节点的位置、连接关系以及各个连接的权值分配,然后使用dijkstra算法实现最短路径规划,再判断在最短路径上的各个节点的转向方向最后将方向信息和路径信息整合后交由网络模块发送至AGV小车;S7、任务执行:AGV小车接收方向信息和路径信息后,执行任务并调整自身信息为“忙”,然后将状态信息发送至上位机,上位机将AGV小车的状态信息显示给任务申请者反馈任务已调度;S8、任务完成:AGV小车在任务完成后调整自身信息为“闲”,并将状态信息发送至上位机,上位机将AGV小车的状态信息显示给任务申请者反馈任务已完成;S9、日志记录:每当任务分配的时候,就将任务信息存在在当前任务属性中,其中包括AGV当前位置、任务起始位置、任务最终位置、当前点到任务起点路径、任务起点路径到任务终点路径和当前电量,当任务结束后记录下AGV任务结束时的电量,接着将任务信息输出到Excel,然后清空当前任务。进一步的,所述步骤S1中地图内的弧线用直线代替,拐点处用棱角代替圆弧。进一步的,所述节点包括十字路口、丁字路口和拐角点。进一步的,所述节点的识别采用Haris角点检测,从图象局部的小窗口中观察图象特征,窗口向任意方向的移动都会存在图象灰度的明显变化的部分就是节点,其数学表达式如式1所示,通过平移图象窗口产生灰度变化,(式1)其中窗口函数可以是矩形窗口,也可以是高斯窗口,由于,于是对于局部微小的移动量[u,v],可以近似得到表达式2:(式2)其中M是2x2矩阵,可由图象的导数求得:(式3)最终定义角点的响应函数为式4所示:(式4)其中:(式5)(式6)和是M的特征值,通过这些特征值可以确定这个窗口所在部分是Corner、Edge或者Flat。进一步的,所述步骤S3中权值分析包括两个点之间是否可以直接到达,如果可以则计算出权值,如果不可以则可以理解外权值无穷大。进一步的,所述步骤S5中当前所有空闲的AGV小车的所在点与任务地点的直线距离最短的便是距离任务地点最近的空闲AGV小车。进一步的,所述AGV小车与上位机的通讯依靠网络模块进行,所述网络模块包括用于AGV小车自动连接上位机的IP地址和端口广播部分、上位机接收下位机发送的状态信息的UDP服务器部分以及采用TCP协议实现的任务分配部分;系统启动广播程序线程,接着启动UDP接收数据服务器线程,系统通过广播寻找当前在线的AGV小车,当AGV小车收到广播信息后就会将上位机系统的IP和监听端口记录下来,然后将状态信息发送给上位机。如图1所示,当程序开始执行时,首先读取配置参数文件,如果没有读取到参数或者不存在该文件,则会弹出选择地图对话框要求用户导入地图,接着系统会自动识别地图,取得有用信息,然后用户设置好必要参数。如果读取到参数,则会直接加载界面,显示地图,当准备工作完成之后,系统就会启动广播程序线程,接着启动UDP接收数据服务器线程,系统会通过广播寻找当前在线的AGV,当AGV收到广播信息后就会将上位机系统的IP和监听端口记录下来,然后将状态信息发送给上位机,上位机收到信息后首先判断信息类型,如果是常规信息则查看是否有以该AGV编号命名的对象,如果有则更新显示数据,如果没有则以该AGV的编号创建相应的对象,然后显示数据,如果收到的数据是任务请求数据,则会调用任务调度和路径规划两个模块,寻找最近的空闲AGV,然后计算到达任务地点的最短路径和执行任务的最短路径,最终响应任务请求和分配任务到AGV,任务结束后输出任务信息到报表。当程序运行结束时自动保存参数,接着退出程序。如图2所示,主要包括AGV状态显示模块、地图识别模块、路径规划模块、任务调度模块、充电归航模块和网络通信模块。为达到直观明了的效果,状态显示采用在背景地图上动态标示AGV的位置和状态信息,包括AGV小车当前的忙闲、电量状况;同时为了使用人员的方便,对于地图没有过于繁杂的要求,只需要用画图工具按比例画出地图即可,在软件中采用图象识别的方式寻找出有用的关键信息;对于任务调度与充电归航等都是基于路径规划而实现的扩展功能,主要实现路径规划。如图3所示,主要包括地图识别、参数处理、网络模块、数据处理、路径规划、任务分配、报表输出和实时显示。地图识别实现地图导入、节点检测和路径识别等任务,由于只需要在导入地图的时候进行识别计算,因此采用保存识别结果到文件的方式,往后启动系统只要不改变地图就不必再次调用地图识别模块,避免了重复计算带来的额外开销。参数处理实现参数设置、参数保存和参数读取任务。网络模块采用了UDP协议来监听AGV上报的状态信息,而对于任务的分配则使用面向连接的TCP协议,保证任务信息的准确到达。在每一个任务下达执行后,数据经过数据处理、路径规划和任务分配步骤,通过生成报表输出,到Excel文件,供管理人员进行数据分析,作为资源最优分配参考,并进行实时显示。1、地图识别模块该部分的显示模块是在全屏的基础上实现的,所以地图识别模块会自动将地图转化为显示器的分辨率后再做处理。地图识别模块先识别出地图中的关键节点,然后再提取出各个节点间的连接情况(即两个节点间是否存在直达路径),并且取得各个连接的权值分配情况。其中节点包括如十字路口、丁字路口和拐角点等。主要采用Haris角点检测,两个节点间的路径只检测了直线,在地图制作的时候需要遵循以下两个规则:①弧线需要用直线代替,②拐点处用棱角代替圆弧。(1)Harris角点检测算法在节点识别中,本发明采用Harris角点检测,其基本思想是从图象局部的小窗口中观察图象特征,窗口向任意方向的移动都会存在图象灰度的明显变化的部分就只角点。其数学表达式如式1所示,通过平移图象窗口产生灰度变化,(式1)其中窗口函数可以是矩形窗口,也可以是高斯窗口,由于,于是对于局部微小的移动量[u,v],可以近似得到表达式2:(式2)其中M是2x2矩阵,可由图象的导数求得:(式3)最终定义角点的响应函数为式4所示:(式4)其中:(式5)(式6)和是M的特征值,通过这些特征值可以确定这个窗口所在部分是Corner、Edge或者Flat,如图4所示。在通过Harris角点检测后得到的是角点整个区域的像素点,并且结果还是图片,由于像素点比较多,并不能唯一标识一个节点,因此需要采用进一步的信息处理来提取节点的位置并转化为坐标,才能在接下来的地图分析中使用,具体解决方法是首先提取出检测结果中的所有像素点的坐标,然后聚合相邻的像素点加权求平均,此时即可得到每一个节点的像素坐标。(2)地图分析地图分析是建立在识别的基础上,在取得节点的坐标之后作的进一步分析,主要内容包括各个节点间的连接关系和它们之间的权值(即两个点之间是否可以直接到达,如果可以则计算出权值,如果不可以则可以理解外权值无穷大,这是最短路径规划算法的基础)。首先识别出节点之间的连接关系,方法是遍历节点列表,两两取出,由于在制作地图时已经将弧线转化为了直线,因此只需要在两个节点间取几个点判断其颜色是否是路径的颜色即可得到各个节点的连接关系,但是这有一个问题,如果做为最终的路径规划使用的话会存在重复路径,即会存在A、B、C三点在一条直线上,然后识别出来的连接关系有AB,AC,BC,然而AC明显是多余的,因此需要一个排重的过程。使用的方法是首先找出同一起点的所有连接关系,然后留下最短的一条连接,即可留下AB,从而排除AC。至此,就可以将地图识别出来的节点和连接信息存储和交由路径规划模块使用了。最后结算存在连接的各个节点之间的权值,该值时两个点之间的直线距离,每一个连接应该有两个记录,即如果AB=1,那么应该还要增加一个BA=1的记录,这样路径规划时才可以既能从A点到B点,又能从B点到A点。2、路径规划模块路径规划部分是该系统的核心部分,它是在地图识别的基础上实现的,首先需要通过地图识别模块识别出来节点的位置、连接关系以及各个连接的权值分配,然后才能使用dijkstra算法实现最短路径规划,接着再判断在各个节点的转向方向,如左转、右转和直行等,最后将方向信息和路径信息整合后交由网络模块进行发送。(1)算法Dijkstra算法是1959年荷兰计算机科学家迪克斯特拉提出的,是从一个顶点到其余各个顶点的最短路径算法,属于典型的单源最短路径算法,主要解决有向图中的最短路径问题。其特点是以起始点为中心向外层层扩展,直到扩展到终点为止。算法原理:设G=(V,E)是一个带权有向图,首先将图中顶点集合V分为两个子集,第一个用S表示(初始时只有源点v,往后没计算出一条路劲就将其加入S),为已计算最短路径的顶点集合,第二个用U表示,为所有未确定最短路径的顶点集合,按最短路径长度的递增次序依次把集合U中的顶点增加到集合S中。在增加的过程中,需要保持从源点v到S中所有顶点的最短路径长度小于从源点v到U中任何其它顶点的最短路径长度。不仅如此,在集合S中,每一个顶点的距离就是从v到该顶点的最短路径距离,而在集合U中,每一个顶点的距离是以集合S中某几个顶点为中间点的从v到该顶点的当前的最短路径距离。(2)各节点转向判断AGV在各个节点的转向判断主要可以分为三种情况,第一种是这个节点是一进一出,即这个节点一共只有两条连接,也就是这个点是单纯的拐角位置的顶点,在实际轨道中是弧线不需要做方向判断处理;第二种是这个节点与前一个节点或下一个节点的连接是水平的或者是竖直的,那么只需要判断三个点的坐标关系就可以判断出当AGV到达这个节点时的转向方向;第三种也是比较复杂的一种,如与这个节点相连的所有连接组成一个十字或者丁字型,但不是水平或竖直的,而是斜着的,不存在与屏幕坐标系垂直或者平行关系,因为三个点的坐标可能是任意位置,这时则需要使用象限角来判断,然而第二种情况之所以不使用象限角是因为水平和垂直的情况下计算斜率是没有意义的,同时也没办法进行下一步计算。最终象限角判断方向的主要有两个步骤,先计算出两个连接的象限角,然后再通过两个象限角判断转向。3、状态显示模块状态显示模块主要是方便使用者直观明了的观察AGV的运行状态,其中显示的信息包括AGV的位置、电量和工作的忙闲。状态的显示是在主窗体下实现的,当程序打开后,直接就可以在主界面上看到AGV的状态。在本模块中采用的是面向对象的编程方式,专门为AGV编写了一个类,本质是一个标签,每当有一个新的AGV加入,就以这个AGV的名字实例化一个AGV对象,对象的属性包括AGV编号、电量、坐标、任务状态、IP地址和当前任务,其中除了IP地址和当前任务是没有显示之外,其它都是可以在主界面上直观的看到的,AGV编号和AGV当前电量的百分比是直接显示在标志该AGV的标签上的,而坐标则换算成了屏幕坐标把AGV标签显示在屏幕上地图的相应位置,状态则是通过AGV标签的颜色来表示的,其中红色表示正在执行任务,绿色则表示当前空闲状态,这个属性在任务调度的时候寻找空闲AGV的时候同样也会用到,IP地址是为了任务分配时使用的,当前任务则是为了输出报表是使用的。如图5所示,在状态显示模块中,首先从接收到的数据列表中取出数据,然后判断本次数据属于哪一个AGV的,如果这个AGV已经存在对象了则更新之前的数据并且刷新显示,否则就为这个AGV实例化一个对象,然后显示数据,如此循环。4、任务调度模块任务调度模块的主要功能是处理任务请求与任务分配,每当网络模块收到任务请求的坐标,系统就会计算当前离任务地点最近的空闲AGV,具体计算方式是采用计算两点间的距离,即当前AGV的所在点与任务地点的直线距离,找出距离最短的AGV,然后调用路径规划模块,生成该AGV到达任务地点的路径,并且计算任务起始点与终止点间的路径,最终通过网络模块将任务路径发送给AGV,AGV自动调整自己的状态为忙,然后AGV继续将状态信息发送给上位机。在这之后,上位机将发送信息到任务申请者反馈任务已调度,流程如图6所示。5、用户指令模块该系统的功能在秉承内部高度自动化的设计理念下,同时也考虑到用户可能需要人工的做一定的调度调整,如当任务较少时停用部分AGV,使一个AGV单独往返执行同一个任务等,也有可能用户需要测试当前AGV的网络状态是否连通等,在此基础上,在设计中为该系统增加了ESC菜单和AGV右键菜单,其中ESC菜单为系统设置和统一调度的菜单,其中的操作都是全局性的操作,如图7所示,ESC菜单初步实现了调度全部AGV返回充电位、更换地图和比例尺设置等功能。在右键菜单中初步实现了调度单个AGV回到充电位。6、网络模块网络模块的主要功能是完成与下位机的通信,本模块主要可以分为三个部分,分别是IP地址和端口广播部分、UDP服务器部分以及任务分配部分,这三部分之间相互独立,在实际运行时采用多线程的方式独立运行。IP地址和端口广播的功能是为了使刚加入的AGV能够自动连接上上位机,其实现原理是采用了目的地址为255.255.255.255的UDP数据包将上位机的IP地址和监听端口广播到整个VLAN,并且是定时10S广播一次,当下位机接收到数据包之后,检查数据内容的开头是否是‘AGVHOST’如果是则记录下地址,往后每次将状态信息发送到该IP地址,UDP服务器是为了接收下位机发送的状态信息,由于考虑到TCP协议需要连接,开销大,速度较慢,而采用UDP协议则速度较快,但UDP也存在不安全的问题,不能保证数据的准确到达,可考虑到传送的状态信息是定时持续的,所以可以用下一次的数据包来弥补中间出错的地方,因此综合考虑采用了UDP协议来做数据的接收,同时UDP服务器接收的数据包也分为两种,一种是常规的状态信息包,另一种则是任务请求包,其中常规的状态信息包是AGV发给上位机的包括位置、电量和忙闲状态信息的数据包,常规数据信息包没有标识符,各个状态量之间用‘,’号隔开。任务请求包则是用户发给上位机的在某个位置需要AGV的任务请求数据包,其中T为数据标识,中间有‘,’号隔开。任务分配部分则是采用的TCP协议实现的,这是为了保证任务数据的准确到达,每当一个任务请求数据包到达,系统会根据任务地点生成的路径下发给所调动的AGV,同时给任务请求者一个确认任务请求的反馈信息,如果当任务请求这一段时间还没有收到任务确认,则可以重新申请。任务分配的数据包分为3段,第一段是数据标识,第二段是AGV到达任务地点的路径,第三段是任务起点到任务终点的路径,中间用‘,’号分隔。7、日志记录模块报表输出则是方便最后做资源优化配置,数据分析等方便生成的相应报表,报表采用Excel表格的形式,系统会自动生成一个日志记录的Excel文件,每一个AGV有一个相应的sheet,由于每一个AGV有一个存储当前任务的属性,每当任务分配的时候,就将任务信息存在在当前任务属性中,其中包括AGV当前位置、任务起始位置、任务最终位置、当前点到任务起点路径、任务起点路径到任务终点路径和当前电量,当任务结束后记录下AGV任务结束时的电量,接着将任务信息输出到Excel,然后清空当前任务。最终对多AGV小车上位机统一调度系统进行现场测试,具体包括创建AGV对象,更新AGV对象信息等,测试结果如图8所示,其中方块表示的是运行中的AGV,红色表示状态为忙,绿色表示为空闲状态,标识的第一行是AGV的编号,第二行是电量信息,因为不能用彩色的原因,对于方块颜色的表示采用汉字注释。最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其他修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1