1. 引言
现如今企业面临着日益激烈的国际竞争,要想赢得市场、赢得用户就必须通过实施MRPII/ERP来加强管理。然而上层生产计划管理受市场影响越来越大,明显感到计划跟不上变化。而在执行层面,越来越多的机器人被投入到生产重复且人为操作失误率较高的可替代操作中,而当面对客户对交货期的苛刻要求,面对更多产品的改型,订单的不断调整,企业如何最大化产量,并且达到产品种类的均匀分布成为一个亟待解决的问题,在有限的空间中寻找最佳的路径来最大化利用机器生产,并且减少人为操作带来的失误性操作就是本智能调度系统想去解决的问题。而传统生产现场管理只是一个黑箱作业,这已无法满足今天复杂多变的竞争需要。因此如何将黑箱作业透明化,找出任何影响产品品质和成本的问题,提高计划的实时性和灵活性,同时又能改善生产线的运行效率已成为目前每个企业十分关心的问题。因此本文探索一种,对多机器人信息实现整合与提炼并进行智能路径优化的方法 [1] [2] 。在基于当前生产环境下,对基础数据进行整理包括设备各种状态与维护,梳理网络拓扑结构,合理进行数据采集,通过建立在智能算法策略基础上的调度系统,来优化生产路径以及材料种类的均衡,为提高生产效率、节约时间成本奠定了基础。
2. 系统总体设计方案 [3]
提升整体成品工料的产出效率,成品工料的生产种类需要均衡生产。项目为了提高生产节奏,提升生产效率,主要进行以下内容攻关:1) 自卸车的生产调度涉及生产计划的手工下达,底板、前箱、后箱、侧箱、副车架、高边焊接区焊接机器人的取送料AGV、RGV调度,焊接工位及RGV库位的管理。2) 对底层数据通讯进行采集与优化,采集设备对象包括上料台扫码枪,AGV的PLC控制器,工位机器人的PLC控制器,承载工装入库扫码枪以及二楼工装库、RGV。在生产运行过程中,需要对这些设备进行实时数据读取与写入等操作。3) 利用算法来提升整体效率,本项目组采用自行研发的算法进行调度,算法结合了高响应算法和先来先服务以及优先级调度算法的优点,具有多输入定尺度高响应功能,最大程度发挥车间设备的生产运行效率。
2.1. 系统软件功能设计 [4]
根据现场情况,需要进行基础数据的维护和生产计划的维护以及统计报表等,划分为计划令系统与智能调度监控系统两个子系统,并共用同一数据库。
2.1.1. 计划令系统
此系统划分为基础数据管理、计划令管理、统计报表、系统管理4个主要功能模块:
1) 基础数据管理包括车型、零件种类、车厢尺寸、举升形式、开门形式、焊接程序、承载工装、2层工装库库位、焊接台零件类型配置、焊接台以及AGV车的维护配置;
2) 计划令管理,包括计划令、上料台以及焊接任务管理;
3) 统计报表包括焊接历史查询以及计划令历史查询;
4) 系统管理包括用户、角色以及功能模块的权限管理。
2.1.2. 智能调度监控系统
此系统则是一套实时监控并通过基于OPC工业标准的数采技术来收集PLC的实时数据,生产管理人员可以更加直观并且实时的观察生产过程中的各个部分达到生产管理的透明化,并通过算法对整体系统进行指令的下发从而调动硬件设备实现自动化生产。调度系统是基于计划令系统上的基础数据来对生产状态进行控制且与计划令系统都基于统一的数据库,智能调度系统包括:
1) 显示界面模块,显示界面包括菜单栏、焊接台状态监控、工装库状态监控、AGV状态监控、任务状态监控以及日志监控信息;
2) 系统初始化管理模块,系统初始化管理针对焊接台初始化以及2楼工装库初始化;
3) 监控管理模块;
4) 生成任务管理模块;
5) 手动任务模块,则是通过OPC通讯可以对不同硬件PLC进行单独的指令下发与调试;
6) 任务管理模块,包括当前任务管理以及任务历史记录,各自下属分为机器人任务,AGV任务,工装库任务。
2.2. 底层数据通讯系统体系结构 [5]
车间内需要调度和通讯的设备包括:上料台扫码器,AGV车辆调度系统,工装库管理系统,工位焊接机器人和工装入库扫码器。这些设备的状态信息,在生产运行时需要实时进行不断交互、读取和写入等;完成和实现状态交互的就是此处要介绍的数据库系统。底层设备集成通讯包括AGV,6轴机械臂(进口设备),和其它相关PLC系统。通过组态网络或其它直连方式,实现底层设备与数据通讯中心的信息交互。
2.3. 车间网络以及硬件布局结构
在总控室中包含智能调度系统,调试用测试机,总数据库以及一台与硬件设备核心交换机相连的总控室交换机用于对数据连接,总控室是用来总体的显示给管理人员直观的数据展示,包括对焊接台、AGV车辆、工控机以及工装库的运行等各方面的细节,用直观的图文数据形式来实时的显示在系统屏幕中,使得整体车间运行中的各项数据指标透明化,更加的便于对细节的掌控,同时对后续系统优化可以提供重要的参数数据。
在排查问题的过程中,数据的透明化也可以带来更加规范化的排查手段,可以更加有针对性、及时性的发现错误,节省时间成本;在工装库中包含一台核心交换机、两端的升降机PLC控制柜以及无线路由器,无线路由器的作用是用来调试使用的,调试时可能需要近距离调试通讯状况,在实际生产运行中,系统只可在总控室中通过网线来控制硬件设备;在一楼焊接区域包含一台交换机,外侧(内侧)上料台工控机,上(下)料端控制柜,AGV控制柜以及两台AGV无线路由器(与小车进行无线通讯与指令发送),车间的网络布局结构图如图1所示。
2.4. 车间硬件布局结构
在一楼焊接区域中每两组机器人相对应两组,焊接台外侧焊接台{1a, 2a, 3a, 4a, 5a, 6a}为一组,内侧焊接台{1b, 2b, 3b, 4b, 5b, 6b}为一组,两侧为升降台(左侧为入库右侧为出库),在二楼工装库中有12个库位与一台RGV车,如图2所示。同时对应一台控制机柜与手持操作面板,从右至左对每两组操作台编号1到6,在第5组操作台旁边放置有一台机器人PLC总控制柜用于可接受调度系统的指令下发,现场机器人操作工可使用手持面板来进行机器人动作编写,而在通讯方面机器人的每一组动作都通过程序焊接码来定义,也就是说当上位机发送给某组焊接台发送一组焊接代码,机器人就可在自己已存在的焊接代码库中搜索并进行匹配查询,匹配后开始执行相应的程序动作完成焊接任务。
在焊接区域两侧则是各有两台AGV车,在焊接台操作台1号旁边有一台AGV车辆PLC总控制柜,而在支撑两楼的承重柱上挂有两台无线路由器用于AGV通讯,每一侧的两台AGV车为一个整体来接收指令信息,根据调度系统下发的指令来进行移动上料与下料。
焊接区域的另外两侧则是两组升降台,在二楼平库两侧各有一台PLC控制柜,左侧的升降台是当AGV取出焊接完的成品工料进行下料操作后会将工装运送到升降台上,升降台将承载工装进行举升操作再由RGV来将承载工装进行入库操作,右侧的升降台则与之相对将RGV运送的工装进行出库操作再由AGV接取工装来进行上料并运送到焊接台进行焊接任务 [6] 。
3. 系统的实现
3.1. 通讯应用以及参数设置
上位机(PC)与焊接机器人、AGV车辆控制、RGV工装库之间的通信由核心交换机实现。从逻辑功能上看,通信系统的上层由交换机服务器的以太网接口与上位机组成,两者之间通过TCP/IP协议通信;下层则由交换机的网络接口部分与机器人焊机台的PLC控制柜、AGV车辆控制柜、RGV工装库的PLC控制柜组成,两者之间通过TCP/IP通信标准交换数据。同时,机器人PLC、AGV、RGV工装库与上位机组成工厂内部局域网拥有各自的IP段,在192.168.0.200~255则是用于调试与测试使用的IP网段。上位机与PLC控制柜相连则通过KEPServerEX 6配置与西门子驱动程序来进行数据的采集与指令的下发。新建的一个名为Channel的通道由Siemens TCP/IP Ethernet程序来驱动,下设四组设备包含:AGV车辆控制,型号为S7-300,IP为192.168.0.10,RGV工装库,型号S7-300,IP为192.168.0.10,Robot机器人组,型号为S7-1200,IP为192.168.0.80,并且在工厂环境中,固定设备需要分配静态IP和网关,且这些参数都需要与工厂局域网适配以避免出现网络通信故障。之后,在根据这三组设备,分别进行IO点的地址管理以及逻辑梳理。
3.2. 设备数据采集格式与读写指令参数
在AGV定时管理中通信连接超时为3秒、请求超时为2秒、重试次数为2次以及请求间无延迟时间设置,通信端口号为102,S7-300的链路类型为PC,CPU槽为1。表1为AGV车辆控制管理中主要逻辑IO点,其中上料台由扫码枪进行扫描,AGV的4台车辆的是否可运行由状态信号来判断。

Table 1. AGV vehicle control IO point
表1. AGV车辆控制IO点
表2为焊接机器人主要逻辑IO点,定时管理中通信连接超时为3秒、请求超时为2秒、重试次数为2次以及请求间无延迟时间设置,通信端口号为102,S7-1200的链路类型为PC,CPU槽为1。机器人的任务可发送则是根据当前机器人是否反馈焊接完成的信号,操作技工在调试机器以及编写机器动作是也需要反馈给上位机一个正在焊接的信号防止AGV车辆的进入以及焊接型号信息为9为数字组成,每组数字代表不同焊接方式与机器动作。
表3为RGV工装库主要逻辑IO点,定时管理中通信连接超时为3秒、请求超时为2秒、重试次数为2次以及请求间无延迟时间设置,通信端口号为102,S7-300的链路类型为PC,CPU槽为2。

Table 3. RGV flat library control IO point
表3. RGV平库控制IO点
3.3. 计划令管理 [7] [8]
计划令管理模块主要包括:1) 创建计划令;2) 计划令管理;3) 上料台管理;4) 焊接任务管理。计划员根据本工厂的生产负荷能力、日程安排、物料准备等因素编制日生产计划,即创建计划令。开工前做进一步的单产品计划排产,指导现场生产。焊接任务管理与上料台管理配合调度系统完成现场生产任务。本计划令管理需要计划员根据工厂实际情况,创建计划令,即生产日计划。对计划令进行排产,排产的结果是生成单产品计划。计划令主要功能包括:查询、新增、修改、删除、手动排产、自动排产。其中:手动排——选择一条计划令进行排产,每点一次排一个单产品计划,已排产数量 + 1;自动排产——可将一条计划令进行全部排产,排产结果为该计划令的全部单产品计划。自动生成单产品计划编号,编码规则:计划令号 + 批次号 + YYYYMMDD + (手动排产时为:S + 已排产数量,自动排产时为:Z + 流水号)。
新增——计划员根据工厂实际情况,创建计划令,即新增生产日计划。修改、删除——对于未排产的直接修改、删除即可;正在排产的和已经完成的计划令不可删除和修改。计划令创建完状态为未排产N,当排产后,计划令状态为正在排产S,当计划令完成后变为已完成F。当计划数量 = 实际数量时,系统记录计划令实际完成时间。实际开始时间 = 第一次排产时的时间。计划令包含信息主要有:计划令号,批次号,单产品计划号,零件种类,车型,车型尺寸,计划数量,已排产数量,已生产数量,计划令状态,箱板材料(边 × 底),举升型式,开门型式,部装描述,焊接程序,实际开始时间,实际完成时间,创建日期,创建人,备注。计划令管理的页面布局包括:查询、新增、修改、删除、手动排产、自动排产。页面查询:计划令号,零件种类,车型,创建时间,排产时间,状态(未执行,正在排产,已完成,全部)首次进入页面,缺省给出的只有正在排产的计划令。
3.4. 智能调度算法设计与应用 [9]
本项目组采用自行研发的算法进行调度,算法结合了高响应算法和先来先服务以及优先级调度算法的优点,具有多输入定尺度高响应功能,最大程度发挥车间设备的生产运行效率,具体算法流程图,如图3所示。
1) 本算法不考虑不同类别物料数量的协调,具体数量协调由“计划令编制”考虑。2) 每当有新的工位发生空闲时、每天开始工作时或者重启系统后,由调度系统调用本算法。3) 每天开始工作时或者重启系统后,需要根据系统前一天或者重启系统之前存储的各工位情况进行初始化。4) 输出序列为按照送料的先后顺序而排定的各空闲工位。5) 如果共用一组机器人的两个工位都是空闲,则这类空闲工位在输出序列的第一梯队;如果共用一组机器人的两个工位中有一个空闲,则这类空闲工位在输出序列的第二梯队。调度过程中,判断是否进行过初始化。
若否,进行初始化,输入所有目前的工位状态,外侧焊接台{1a, 2a, 3a, 4a, 5a, 6a}为一组,内侧焊接台{1b, 2b, 3b, 4b, 5b, 6b}为一组。按照6a、6b、5a、5b……的顺序查找空闲工位,第一个空闲工位所在组为第一组,另一组为第二组。输出序列为:第一组第一个空闲工位A,第二组不与A共用机器人的第一个与空闲工位B,第一组剩下的不与B共用机器人的第一个空闲空位C,第二组剩下的不与C共用机器人的第一个空闲工位D (如果某一组空闲工位排完而另一组还有多个空闲工位,则另一组剩下所有空闲工位依次排到序列后面)……剩下的空闲工位(前面没排的共用机器人的另一个空闲位)按照查找顺序依次排到序列最后。
若是,如果与工位A共用机器人的工位B也是空闲的,则工位B插入到现有序列的第一梯队的末尾。工位A插入第二梯队中与A不是同一组的连续几个工位的第二个,若没有这样的连续工位则插入现有队列第二梯队末尾;如果与工位A共用机器人的工位B不是空闲的,则将工位A插入到现有序列第二梯队中与A不是同一组的连续几个工位的第二个,若没有这样的连续工位则插入现有队列第二梯队末尾。
4. 系统的应用 [10] [11]
本系统以Visual Studio C#2017为开发平台、SQL Server2014为后台数据库、KepServerEX 6 Configuration为IO点位通讯配置。此系统的交互界面分为两部分,一部分为计划令系统管理,另一部分为智能调度系统。前者是对用户信息管理,基础数据中车型、工装、库位、AGV等维护支持,上料台与焊接任务的管理,统计报表管理,是对系统开始前的条件初始化管理,以及进行数据总结与分析,其操作界面如图4所示。
基础数据管理包括车型、零件种类、车厢尺寸、举升形式、开门形式、焊接程序、承载工装、2层工装库库位、焊接台零件类型配置、焊接台以及AGV车的维护配置,其中车型指代车辆名称。零件类型包括厢架、前厢、后厢、左侧厢、右侧厢、副车架。举升形式包括侧举、前举、中举。开门方式包括侧开门和后开门。焊接程序包括副车架空工装(111111117)、副车架6撑(180000627)、230高粗轴(180000067)等数十种不同的加工程序,在这其中副车架空工装主要用来进行调试使用。承载工装维护指代是否锁定工装可用,承载工装初始位置是在2楼工装库中,只在使用时由RGV运到出库升降台,而在1楼中使用后的承载工装通过入库升降台由RGV运回,形成一个运行闭环。库位的维护则是需要确认初始2楼中12个库位是否有工装。同时对焊接台是否锁定进行初始确认。
计划令管理,包括计划令、上料台以及焊接任务管理,指代对零件类型进行如何焊接并进行排产的计划管理。上料台管理是当工料装载到AGV的承载工装上,工人需进行手动确认去往的焊接台以及焊接任务是否正确。焊接任务管理则是监控任务的进展情况。
统计报表包括焊接历史查询以及计划令历史查询。
系统管理包括用户、角色以及功能模块的权限管理。
后者是对系统运行过程中的实时监控,是让管理者可以实时的监控系统中的各项指标,其中算法调度与各个硬件之间的衔接配合是系统的核心功能,其操作界面如图5所示。
显示界面包括菜单栏、焊接台状态监控、工装库状态监控、AGV状态监控、任务状态监控以及日志监控信息。其中,12组焊接台每个焊接台状态都包括计划令号、零件类型、当前类型、焊接程序、部装描述、承载工装编号,在工装库状态中包括入库升降台、2楼12组库位、出库升降台,各自信息包括工装类型、以及所属焊接台。任务状态监控则包括外侧(内侧) AGV任务,出库(入库) RGV任务,AGV下属显示信息包括:是否允许发任务、当前任务号、任务内容、任务起点、任务终点、承载工装编号、任务状态,RGV下属显示信息包括:当前任务号、任务内容、工装编号、工装类型、库位、区域、焊接台、任务状态。
系统初始化管理针对焊接台初始化以及2楼工装库初始化,对12组焊接台查看他们的焊接程序码与是否有承载工装停留并查看工装码,对工装库的12组库位查看是否有承载工装停留并查看工装码,焊接台工装与工装库工装相加共为12组。
监控管理包括开始监控与停止监控,开始监控后,将对整体系统开始下发指令,并根据计划令来对工料进行生产安排。
生成任务管理,可以对内外侧进行各自的任务生成与停止。
手动任务模块,则是通过OPC通讯可以对不同硬件PLC进行单独的指令下发与调试,其中包括:
1) 焊接台模拟信号:焊接机器人手动下发焊接命令(任务号、焊接台),用于调试使用的12组焊接机器人模拟信号从1A到6A为外侧焊接机器人,1B到6B为内侧焊接机器人,可以进行模拟机器人反馈信号(锁定、正在焊接以及焊接完成),可以在进行系统测试时不需要接入硬件,只进行软件系统方面的单元测试。
2) AGV模拟信号:下料任务命令(任务号、起点、终点),通知小车去到出口升降台外侧(内侧)接取工装,外侧(内侧)小车的急停与启动,下达外侧(内侧)已取完工装的指令。
3) 工装库模拟信号:对工装库手动下发入库命令(入库任务号、终点库位号),出库命令(出库任务号、起点库位号、内外侧),入库扫码信息,入库升降台请求任务信号,入库升降台举升到位信号,模拟RGV入库开始(结束)、RGV空闲、出库开始(结束),工装到达外侧(内侧)出口指令信号。
任务管理模块:包括当前任务管理以及任务历史记录,各自下属分为机器人任务,AGV任务,工装库任务。在当前任务管理中,当智能调度系统运行时,对于机器人、AGV、工装库的指令活动都分别产生对应的任务号来进行生产过程跟踪,当出现系统调试、中断等特殊情况时,可以在当前任务管理中,恢复执行任务以及将当前任务手动完成并校对是否与软件系统同步确保不出现数据不匹配等紊乱信息。在任务历史记录中则可以追踪查看任意时间区域内的任务执行数据,达到数据透明化。
5. 结束语
本系统利用OPC工业标准通过KepServerEx 6对底层设备进行数据采集,对基础数据进行整理包括设备各种状态与维护,对所有基础数据进行跟踪并通过计划令系统进行存储与维护,梳理网络拓扑结构,通过建立在智能算法策略基础上的调度系统,来优化生产路径以及材料种类的均衡,进一步来提高生产效率、节约时间成本。同时,通过本系统进一步实现工件工料的自动化生产水平,降低人力成本,使得日常运行中所付出的必要成本维持在一定水平上。
基金项目
天津市自然科学基金(18JCQNJC77200)。