刘 胜,苏 宇,吴 若,苏亚辉
(1.安徽大学 电气工程与自动化学院,合肥 230601;2.合肥市煜仁科技发展有限责任公司,合肥 230088;3.安徽大学 电子信息工程学院,合肥 230601)
AGV具备自动搬运和高效便捷的优点,能够有效解决企业在生产过程中产品的运输过程耗费大量的人力资源,因此在汽车工业、家电制造、烟草、物流、3C电子、医药、食品等行业得到了大量的应用[1~3]。随着工厂生产流水线的高速运转,用户对于AGV系统的实时运行状况和安全性提出了更高要求,AGV管理监控调度系统能够对AGV进行实时状态监控和任务信息的下达与接收,是AGV系统重要核心技术之一[4]。现有的AGV管理监控系统大多是采用桌面软件系统,需要用户安装相应的软件才能使用,存在缺乏资源共享、难以维护、使用不便捷的问题,针对该问题,设计了一种基于Web应用程序的AGV实时状态监控与任务管理软件系统。
该系统主要功能是对车辆进行实时状态监控并对任务进行管理,用户可通过Web端获取车辆的相关信息、控制车辆的运行状态、下达相应的任务、查看相关历史信息等,从而达到人机交互、满足复杂生产环境运行、高效便捷的特点,为企业生产提供了一个智能化、信息化、便捷化的管理平台。本文将从需求分析、业务流程与技术结构、功能模块的实现三个方面介绍系统的设计思想和实现方法。
为了体现软件系统设计的规范化、科学化,将系统需求分析分为功能需求和非功能需求。
1.1.1 AGV实时状态监控
用户通过浏览器在Web页面上登录系统后进入系统主控界面,主控界面具有总览AGV集群运行状态的作用,在Web页面上可实时显示每个AGV的运行状态,并可以通过页面上的按键进行手动控制AGV的运动。
1.1.2 AGV任务管理
用户通过Web页面上的任务管理界面对AGV集群进行任务下达,系统能够自动进行任务调度,并且可以实时观测任务执行的状态。
1.1.3 路径规划
系统在接收到用户下达的特定任务后,能够自动规划一条由目标起点至目标终点的最优路径。
1.2.1 可用性
考虑不同用户对于软件平台的操作能力不同,系统需要对必填项实行控制,让用户可以确保完整的录入相关信息,同时对必填项进行统一规范的提示,提供统一规范的操作提示,降低用户的使用难度,并有足够的提示信息帮助用户有效正确地完成任务,站在用户的立场考虑问题,确保流程运作的合理性,使用户便于使用本系统。
1.2.2 高性能
对车辆的数量、用户与管理员数量、站点数量进行规划,分析同时在线用户及Web端响应时间,确保系统能够适用一定规模的应用群体和进行高效的运行,确保软件之间能够进行正确的数据交换和共享。系统需要具备较高的容错和抵抗干扰的能力,能够保证在硬件和通讯系统正常的情况下进行高效的运行。
1.2.3 安全性
本系统应对用户口令按一定的算法进行加密,提供数据库的自动备份机制,并允许用户进行手工的数据的备份和恢复,以弥补数据的破坏和丢失,能够记录系统运行时发生的所有错误,这些错误记录便于查找错误的原因。用户的重要操作都做相应的日志记录以备查看,同时记录用户的关键性操作信息。
本系统主要有两部分业务,管理员业务和普通用户业务,普通用户通过浏览器在Web网页上进行系统登录后,进入主控界面,可以通过主控界面查看各个AGV的实时状态和任务信息,并且可以下达任务,使收到任务的AGV进行相应任务的完成。管理员除了可以执行普通用户业务之外,还可以对系统的相关基础数据进行管理,包括用户的查看、修改、增加、删除,赋予不同用户的不同权限,设置系统相关的选项,并且可以对地图和车辆进行管理。如图1所示。
图1 系统业务流程图
本系统采用B/S结构即Browser/Server(浏览器/服务器)结构[5,6]。整个系统由4部分组成:Web客户端、应用服务器、通讯子系统、任务调度和路径规划服务。如图2所示。
图2 系统结构示意图
1)Web客户端是运行在PC机上的Web应用,要求安装有浏览器,通过浏览器就可以使用服务器提供的各种功能,用户可以在Web客户端上查看AGV的运行状态,下达运行任务等。
2)应用服务器实现Web客户端对应的数据存储和业务逻辑。实现了AGV状态监控、AGV状态查询、任务管理、地图编辑、用户管理、系统管理等业务逻辑。
3)通讯子系统主要实现与AGV的双向通讯,通讯子系统架构于OPC-UA协议之上[8]。
实现实时接收AGV的状态信息,实时发送控制信息给AGV。
4)任务调度负责接受Web客户端下达的任务,通过任务调度算法协调系统中的AGV完成给定任务。路径规划针对某一特定任务,计算出从源位置到目的位置的最佳路径。
为了实现“高内聚,低耦合”的思想,系统结构按功能从下到上主要分为5层:运行环境、持久层、数据访问层、业务逻辑层和表现层[7]。如图3所示。
图3 软件技术架构图
运行环境:主要包括软硬件的基础设施。
持久层:主要是数据库,用以保存系统数据。
数据访问层:主要功能是提供对数据库访问的统一的接口。
业务逻辑层:主要负责系统业务领域的处理,并将结果在表现层中展示,业务逻辑层处于数据层和表现层之间,起到了数据交换中承上启下的作用。
表现层:主要功能是界面的展示并接收和传输用户的数据,为用户提供与后台的交互界面。
AGV监控与管理系统服务端选用JAVA语言开发,系统服务端采用Spring Boot作为开发框架,数据访问层使用了Spring Data JPA,数据库使用主流的开源关系数据库MySQL。AGV监控与管理系统系统的Web前端采用TypeScript语言和React框架开发,并通过WebSocket与浏览器保持长连接,使得用户可以实时监控AGV状态变化。AGV监控与管理系统通过标准的工业通信协议OPC-UA与AGV车辆进行数据交互[8,9]。
本系统涉及的硬件设备包括:AGV本体(包含机械结构、电气设备和由于AGV本体控制的工控机)、工业局域网设备、软件系统发布使用的应用服务器,负责数据存储的数据库服务器,终端用户完成管理和监控的计算机。工作原理如下:首先AGV本体通过接入工业无线接入点将信息传感设备采集到的感知信息发送到远端的应用服务器,然后应用服务器对数据处理成功后存储到数据库中,最后用户通过PC客户端实现对AGV实时状态信息的远程监控。硬件技术示意图如图4所示。
图4 硬件技术示意图
根据系统需求分析和业务流程,以规范业务流程、信息资源共享、提高工作效率、减少人力成本为目标,将整体系统规划为车辆实时状态监控、地图管理、车辆管理、任务调度与管理、系统管理五大主要功能模块,系统功能模块图如图5所示。
图5 系统功能模块图
系统可以实时监控与之通讯的车辆的状态,主要状态项如:AGV编号、AGV类型、AGV当前站点、运行状态、装载状态、运行速度、运行方向、通信状态、电池电量、结构状态。还可以通过手动的方式对车辆的速度及方向进行控制。如图6所示。
图6 车辆实时状态监控图
用户可以在系统中添加特定任务:工作任务、停止任务、充电任务,任务详情包括:起始工位,目标工位、启动时间、任务优先级等,当任务下达之后,系统自动进行路径规划、车辆分配和任务调度。并可对任务进行查询、修改、取消、情况汇总等,任务查询可以查询如下内容:任务标识、任务类型、任务详情、任务优先级、任务起始时间、任务执行状态等。如图7所示。
图7 任务调度与管理图
用户可以在系统中以图形化的方式编辑地图,地图的主要组件有:站点、路线、区域。对地图、站点、路线进行创建、编辑、删除和启用,保证车辆适用于复杂的工作环境。如图8所示。
图8 地图管理图
用户可以在系统中查询车辆的信息,主要包括:历史运行记录查询、当前运行时间查询,还可以在系统中添加、删除车辆以及设置车辆的功能,使车辆执行各自任务。如图9所示。
图9 车辆管理图
系统管理主要包含用户管理、通信管理、权限设置、日志管理四个子模块,其中用户管理模块功能主要是系统支持管理员对其个人基本信息与登录密码进行设置和修改。超级管理员用户(有且只有一个)还支持对其他管理员用户的查询,增加,删减与修改操作;分配其他各个管理员用户的权限级别,实现完整的RBAC(Role-BasedAccess Control)模式[10];通信管理模块主要功能是用户选择不同的设置项,对发送和接收的数据进行管理。权限管理通过分配角色给用户,同一用户具有不同角色的功能,赋予角色不同权限,用来管理系统,具有灵活性及安全性。日志管理模块主要功能是记录并储存用户的一些改查增删操作,当用户进行查询操作时以日志模式展现给用户。如图10所示。
图10 系统管理图
本文设计了一种基于Web应用程序的AGV实时状态监控与任务管理系统。该系统实现了AGV在不同场景下进行人机交互,使用户能够实时获取监车辆运行状态和相关信息、查看任务完成情况,实现远程调度与管理的功能,具有操作便捷、性能高、安全性强的优点,有效解决车辆在复杂生产线运作而造成监控与管理不便的问题。在当今制造业和物流产业飞速发展的潮流中,具有广泛的应用性。