Simulation and scheduling of AGV based robotic assembly systems

Simulation and scheduling of AGV based robotic assembly systems

Proceedings,16th IFAC Symposium on Information Control Problems in Manufacturing Proceedings,16th IFAC Symposium on Information Control Problems in Ma...

838KB Sizes 0 Downloads 45 Views

Proceedings,16th IFAC Symposium on Information Control Problems in Manufacturing Proceedings,16th IFAC Symposium on Information Control Problems in Manufacturing Bergamo, Italy, June 11-13, 2018 Proceedings,16th IFAC Symposium on Available online at www.sciencedirect.com Information Control Problems in Manufacturing Bergamo, Italy, June 11-13, 2018 Proceedings,16th IFAC Symposium on Information Control in Manufacturing Bergamo, Italy, JuneProblems 11-13, 2018 Information Control in Manufacturing Bergamo, Italy, JuneProblems 11-13, 2018 Bergamo, Italy, June 11-13, 2018

ScienceDirect

IFAC PapersOnLine 51-11 (2018) 1415–1420 Simulation Simulation and and scheduling scheduling of of AGV AGV based based robotic robotic assembly assembly systems systems Simulation of AGV based robotic assembly systems Simulation and and scheduling scheduling of AGV based robotic assembly systems Andor Bálint Viharos* and István Németh* Simulation and scheduling of AGV based robotic assembly systems Andor Bálint Viharos* and István Németh* 

Andor Bálint Viharos* and István Németh*  Andor Bálint Viharos* and István Németh*  Andor Bálint Viharos* and István Németh* * Department of Manufacturing Science and Engineering,  * Department of Manufacturing Science and Engineering,  Budapest University of Technology and Economics, Budapest, Hungary, * Department ofTechnology Manufacturing and Engineering, Budapest University of and Science Economics, Budapest, Hungary, * Department of Manufacturing Science and Engineering, (e-mails: [email protected], [email protected]) Budapest University of Technology and Economics, Budapest, Hungary, * Department of Manufacturing Science and Engineering, (e-mails: [email protected], [email protected]) Budapest University of Technology and Economics, Budapest, Hungary, (e-mails: [email protected], [email protected]) Budapest University of Technology and Economics, Budapest, Hungary, (e-mails: [email protected], [email protected]) (e-mails:[email protected], [email protected]) Abstract: The paper presents general discrete event simulation model developed in Siemens Plant Abstract: The paper presents a general discrete event simulation model developed in Siemens Plant Simulation software that controls AGVs in robotic assembly systems. All product assembly operations are Abstract: paperthat presents generalindiscrete event simulation developed in Siemens Plant Simulation The software controlsaa AGVs robotic assembly systems. model All product assembly operations are Abstract: The paper presents generalhas discrete event simulation model developed in Siemens Plant inputs as graphs (trees). A methodology been created that schedules the assembly operations on each Simulation software that controls robotic assembly systems. All the product assembly operations are Abstract: The paper presents a AGVs generalin discrete event simulation model developed in Siemens inputs as graphs (trees). A methodology has been created that schedules assembly operations on Plant each Simulation software that controls AGVs in robotic assembly systems. All product assembly operations are workstation and schedules AGVs so that has the been overall manufacturing time is toassembly be as short as possible. The inputs as graphs (trees). A methodology created that schedules the operations on each Simulation software that controls AGVs in robotic assembly systems. All product assembly operations are workstation and schedules AGVs so that the overall manufacturing time is to be as short as possible. The inputs as graphs (trees). A methodology has been created that schedules the assembly operations on each system can control AGVs in real-time, arbitrary number andtime typeisoftoproducts andasispossible. preparedThe for workstation and schedules AGVs so thathandle the been overall manufacturing be as short inputs as graphs (trees). A methodology has created that schedules the assembly operations on each system can control AGVs in real-time, handle arbitrary number and type of products and is prepared for workstation and schedules AGVs so that the overall manufacturing time is to be as short as possible. The stochastic events. system can control AGVs in real-time, handle arbitrary number and type of products and is prepared for workstation and schedules AGVs so that the overall manufacturing time is to be as short as possible. The stochastic events. system can control AGVs in real-time, handle arbitrary number and type of products and is prepared for stochastic events. system control AGVs inFederation real-time, arbitrary number and by type of products is prepared © 2018,can IFAC (International ofhandle Automatic Control) Hosting Elsevier Ltd.simulation. Alland rights reserved. for Keywords: scheduling, heuristic algorithm, AGVs, assembly, robots, discrete event stochastic events. Keywords: scheduling, heuristic algorithm, AGVs, assembly, robots, discrete event simulation. stochastic events. Keywords: scheduling, heuristic algorithm, AGVs, assembly, robots, discrete event simulation. Keywords: scheduling, heuristic algorithm, AGVs, assembly, robots, discrete event simulation. Keywords: scheduling, heuristic algorithm, AGVs, assembly, robots, discretesoevent simulation. methods are used. In the optimal solution, approximation 1. INTRODUCTION the optimal solution, so approximation methods are used. In  the following, a brief so review of recent studies thisused. area In is 1. INTRODUCTION the optimal solution, approximation methodsin are the following, a brief so review of recent studies thisused. area In is  INTRODUCTION the optimal solution, approximation methodsinare presented. The paper presents 1. the first results of the development of a the following, a brief review of recent studies in this area is 1. INTRODUCTION the optimal solution, so approximation methods are used. In presented. The paper presents 1. theINTRODUCTION first results of the development of a the following, a brief review of recent studies in this area is general discrete event simulation (DES) model of presented. The paperdiscrete presents the first simulation results of the(DES) development a the following, a brief ofAGV recentscheduling studies in thoroughly. this area is researchers havereview studied general event model of presented. The paper presents the firstassembly results ofsystems the development ofofa Many reconfigurable automatic composed researchers have studied AGV scheduling thoroughly. general discrete event simulation (DES) model ofof ofa Many presented. They used mixed-integer linear programming (MILP), ant The paper presents the first results of the development reconfigurable automatic assembly systems composed of researchers have studied scheduling(MILP), thoroughly. general discrete stations event simulation (DES) model of Many robotic assembly and automated guided vehicle They used mixed-integer linearAGV programming ant reconfigurable automatic assembly systems composed of Many researchers have studied AGV scheduling thoroughly. colony algorithms (ACAs), genetic algorithms (GAs), general discrete event simulation (DES) model of robotic assembly stations and automated guided vehicle used mixed-integer linearAGV programming (MILP), ant reconfigurable automatic assembly composed of They (AGV) based material supply. Theautomated aimsystems of the development Many researchers have studied scheduling thoroughly. colony algorithms (ACAs), genetic algorithms (GAs), robotic assembly stations and guided vehicle They usedand mixed-integer linear programming (MILP), ant heuristics, other methods. reconfigurable automatic assembly composed (AGV) based material supply. Theautomated aimsystems of the development of colony algorithms (ACAs), algorithms (GAs), robotic assembly stations and guided such a based general simulation model is to support the vehicle layout They used mixed-integer lineargenetic programming (MILP), ant heuristics, and other methods. (AGV) material supply. Theautomated aim of the development of colony algorithms (ACAs), genetic algorithms (GAs), robotic assembly stations and guided vehicle such a general simulation model is to support the layout and other methods. (AGV) based material supply. The aim of the development of heuristics, planning and evaluation of reconfigurable assembly systems. colony algorithms (ACAs), genetic algorithms (GAs), Zheng et al. (2017) investigated a harbour where waterborne such a general simulation model is to support the layout heuristics, and other methods. (AGV) material supply. The aim of the development of Zheng et al. (2017) investigated a harbour where waterborne planning and evaluation of reconfigurable assembly such a based general simulation model is to support thesystems. layout heuristics, and other methods. In parallel, theevaluation development of a layout configurator module AGVs given transportation orderswhere to complete and planning and of reconfigurable assembly systems. Zheng had et al.many (2017) investigated a harbour waterborne such a general simulation model is to support the layout In parallel, the development of a layout configurator module AGVs had many given transportation orderswhere to complete and planning and evaluation ofwhich reconfigurable assemblycreate systems. has been started as well, will automatically the Zheng et al. (2017) investigated ahad harbour waterborne a closed-loop scheduling problem to be solved. Each AGV module In parallel, the development of a layout configurator AGVs had many given transportation orders to complete and planning and evaluation of reconfigurable assembly systems. has been started as well, which will automatically create the Zheng et al. (2017) investigated a harbour where waterborne a closed-loop scheduling problem had to be solved. Each AGV In parallel, the development of a the layout configurator module simulation models. Moreover, simulation model will AGVs had many given transportation ordersand to complete and had a capacity, each container had a volume, each terminal has been started as well, which will automatically create the a closed-loop scheduling problem had to be solved. Each AGV In parallel, the development of awill layout configurator module simulation models. Moreover, the simulation model will had many given transportation orders to complete and had a capacity, each container had had a volume, and each terminal has been astarted as well, which automatically create the AGVs contain maintenance planning module as well. These a closed-loop scheduling problem to be solved. Each AGV could hold only one AGV at a time. They proposed a MILP simulation models. Moreover, themodule simulation model will a capacity, each container had a volume, terminal and each has been astarted as well, which will automatically create the had contain maintenance planning as well. These a closed-loop scheduling problem had to be solved. Each AGV could hold only one AGV at a time. They proposed a MILP simulation models. Moreover, the simulation model will modules are being developed in the Siemens Tecnomatix Plant algorithm had a capacity, eachthe container had aproblem volume,inand terminal solve scheduling theeach initial state. as well. contain a maintenance planning module holdto only one AGV at had a time. They in proposed a MILP simulation models. Moreover, theSiemens simulation modelThese will could modules are being developed in the Tecnomatix Plant had a capacity, each container aproblem volume, and terminal algorithm solve the scheduling theeach initial state. contain a maintenance module as well. These Simulation software tool.planning This paper presents a general could holdtoonly one AGV atofaorders, time. They proposed a MILP They modelled the sequence the location, speed, and modules are being developed in the Siemens Tecnomatix Plant algorithm toonly solve theAGV scheduling problem in the initial state. contain a maintenance module as well. These Simulation software tool.planning This paper presents a general could hold one at a time. They proposed a MILP They modelled the sequence of orders, the location, speed, and modules are being developed in the Siemens Tecnomatix Plant simulation model (hereinafter called aspresents ‘module’) where current algorithm to of solve the and scheduling problem in the initial state. load AGVs set constraint equations, so that the Simulation software tool. This paper a general modelled the sequence orders, theequations, location, speed, and modules are model being developed in the Siemens Tecnomatix Plant They simulation (hereinafter called aspresents ‘module’) where algorithm to of solve the and scheduling problem in the initial state. current load AGVs setof constraint so that the Simulation software tool. This paper a general simple assembly scheduling problems, the control algorithms They modelled the sequence of orders, the location, speed, and mathematical solution was also a valid, physical solution. simulation model (hereinafter called as ‘module’) where current load ofsolution AGVs and constraint sosolution. that and the Simulation software tool. This paperthe a general simple assembly scheduling problems, control algorithms They modelled the sequence of orders, theequations, location, mathematical wasset also a valid, physicalspeed, simulation model (hereinafter called aspresents ‘module’) where of the AGVs, and the complete material flow including the current load of AGVs and set constraint equations, so that the Then they defined a formula for the cost of physical the transportation simple assembly scheduling problems, the control algorithms mathematical solution was also a valid, solution. simulation model (hereinafter called as ‘module’) where of the AGVs, and the complete material flow including the current load of AGVs and set constraint equations, so that the Then they defined a formula for the cost of the transportation simple assembly scheduling problems, the control algorithms motions of the robots, AGVs and workpieces are solved in a mathematical solution was also a valid, physical solution. solved the equation system, so that the costtransportation was near the the AGVs complete material flow including thea and of the AGVs, and Then they defined a formula for the cost of the simple assembly scheduling problems, the control algorithms motions of the robots, and workpieces are solved in mathematical solution was also a valid, physical solution. and solved the equation system, so that the cost was near the of the AGVs, andThe the aim complete flow module includingis the general manner. ofand thematerial scheduling toa Then they defined a formula for the cost of the transportation minimum. They also showed thatthat when new orders motions of the and robots, workpieces solvedisinthe solved the equation system, so the cost was near are the of the AGVs, the AGVs complete floware including general manner. The aim ofand thematerial scheduling module toa and Then they defined a formula for the cost of the transportation minimum. They also showed that when new orders are motions of the robots, AGVs workpieces are solved in minimisemanner. the totalThe makespan ofthethescheduling assembled module products.is By and solved system,was so disrupted that the cost was way, near the received or the the equation fleet of showed AGVs in any toa minimum. general aim ofand They also thatdisrupted when new orders are motions ofthe thetotal robots, AGVs workpieces solvedisinBy minimise makespan the assembledare products. solved system,was so that the cost was near the received or the the equation fleet of showed AGVs in any way, general manner. The aim of ofthe scheduling module to and using the module, the evaluation of the automatically created minimum. They also that when new orders are problem could be solved again in the new situation and then the totalThe makespan ofthe the assembled products. By minimise received or the fleet of AGVs was disrupted in any way, the general manner. aim of scheduling module is to using the module, the evaluation of the automatically created They also when new orders are problem could solved againwas inthat the new situation and minimise the total makespan the assembled By minimum. layout configurations will beof possible if oneproducts. takes into received orcould the be fleet of showed AGVs disrupted in any way,then the the AGVs be controlled afterwards accordingly. using the module, the evaluation of the automatically created could be solved againafterwards in the newaccordingly. situation and then minimise the total the makespan the assembled By problem layout configurations will beof possible if oneproducts. takes into received or the fleet of AGVs was disrupted in any way, the the AGVs could be controlled using the module, evaluation of the automatically created consideration stochasticwillassembly operations, and problem could be solved again in the new situation and then layout configurations be possible if one failure takes into AGVscould could be controlled accordingly. using the module, the evaluation of the automatically created consideration stochastic operations, and the problem againafterwards in the new situation and then layout configurations willassembly bewell. possible if one failure takes into Saidi-Mehrabad etsolved al. (2015) solved a job shop scheduling planned maintenance events as AGVs couldbebe controlled afterwards accordingly. consideration stochastic assembly operations, failure and the Saidi-Mehrabad et al. (2015) solved a job shop scheduling layout configurations will be possible if one takes into planned maintenance events as well. the AGVs could be controlled afterwards accordingly. consideration stochastic assembly operations, failure and Saidi-Mehrabad problem (JSSP). They had several AGVs that moved on a grid et al. had (2015) solved a job scheduling planned maintenance events as well. operations, failure and problem (JSSP). They several AGVs that shop moved on a grid consideration stochastic assembly Saidi-Mehrabad et al. (2015) solved a job shop scheduling planned maintenance events as well. of nodes where workstations were assigned to several nodes, problem They several AGVs thatto moved onnodes, a grid 1.1 Literature overview Saidi-Mehrabad et al. had (2015) solved a job shop scheduling of nodes (JSSP). where workstations were assigned several planned maintenance events as well. problem (JSSP). They had several AGVs that a grida each having a workstations processing time. Their goaltomoved was toonnodes, find 1.1 Literature overview of nodes where wereAGVs assigned several problem (JSSP). They had several that moved on a grida each having a processing time. Their goal was to find 1.1 Literature overview of nodes where workstations were assigned to several nodes, schedule that makes the makespan minimal. find to that, theya having a workstations processing time. Their goalTo was find 1.1 Literature of nodes where were assigned to several nodes, Scheduling andoverview logistics are inevitable in manufacturing. The each schedule that makes the makespan minimal. To find that, theya each havinga two-stage a processing time. Their the goalfirst wasstage to find developed ACA. During ofthey an 1.1 Literature Scheduling andoverview logistics are inevitable in manufacturing. The schedule that makes the makespan minimal. To find that, each having a processing time. Their goal was to find developed a two-stage ACA. During the first stage of ana order of transportation of palettes and workpieces affect the Scheduling and logistics are inevitable in manufacturing. The schedule that makes the makespan minimal. To find that, they iteration, the sequence of jobs is changed, and in the second order of transportation ofare palettes and in workpieces affect The the developed a sequence two-stage ACA. During the and firstfind stage ofthey an Scheduling andoflogistics inevitable manufacturing. schedule that makes the makespan minimal. To that, iteration, the of jobs is changed, in the second effectiveness the manufacturing processes, the required a two-stage ACA. During first stage of the an order of transportation ofare palettes andprocesses, workpieces the developed stage thethe routes of the AGVs are the improved. Then Scheduling andoflogistics inevitable in manufacturing. The effectiveness the manufacturing theaffect required ofACA. jobs is changed, and the second order transportation oforders, palettes workpieces affect developed a sequence two-stage During firstin stage of the an stage thethe routes of the AGVs are the improved. Then time toofcomplete theand amount of energy usedthe to iteration, iteration, sequence of jobs is changed, and in the second effectiveness of product the manufacturing processes, theaffect required pheromone trails are updated according to their specific rules order of transportation of palettes and workpieces the time to complete product orders, the amount of energy used to stage thethe routes of updated the AGVs are improved. Then the effectiveness of the processes, the required iteration, sequence of jobs is changed, and in the second pheromone trails are according to their specific rules transport the loads andmanufacturing theorders, utilisation of workstations. Hence, stage the routes of the AGVs are improved. Then the time to complete product the amount of energy used to that take evaporation rate and pheromone rate rules into effectiveness of product the processes, the required transport the loads andmanufacturing theorders, utilisation of workstations. Hence, trails are according to theirtrail specific time complete the amount of energy used to pheromone stage the evaporation routes of updated the are improved. Then the that take rateAGVs and pheromone rate rules into thesetoaffect production and costs. As assembly pheromone trails are updated according to theirtrail specific transport the loads and theefficiency utilisation of workstations. Hence, consideration. time to complete product orders, the amount of energy used to these affect production efficiency and costs. As assembly that take evaporation rate and pheromone trail rate rules into transport the loadsthe and the utilisation of workstations. Hence, pheromone trails are updated according to their specific consideration. processes require restriction of the order of operations, and that take evaporation rate and pheromone trail rate into these affect production costs. As assembly transport the loads and theefficiency utilisation of workstations. Hence, processes require the restriction of theand order of operations, and consideration. these affect efficiency and costs. As assembly that take evaporation pheromone trail ratewhere into the AGVs andproduction thethe robots must be controlled without humans, Zhagdoud et al. (2016)rate alsoand investigated a problem consideration. processes require restriction of the order of operations, and these affect efficiency and costs. As assembly the AGVs andproduction thethe robots must be humans, et al. (2016) also investigated a problem where processes require restriction of controlled the order ofwithout operations, and Zhagdoud consideration. scheduling becomes even more important. Many logistics AGVs hadettoal.transport containers from loading depots to be humans, the AGVsrequire and thethe robots (2016) also investigated a problem where processes restriction of controlled the order ofwithout operations, and Zhagdoud scheduling becomes evenmust more important. Many logistics AGVs hadettoal.transport containers from loading depots to the AGVsare and the that robots must be controlled humans, Zhagdoud (2016) also investigated a The problem where problems such there is no known fastwithout way to compute unloading depots. Each AGV had a capacity. nodes were scheduling becomes even more important. Many logistics AGVs had to transport containers from loading depots to the AGVsare and the that robots must be known controlled humans, problems such there is no fastwithout way to compute et al. (2016) also investigated a problem where unloading depots. Each AGV had a capacity. The nodes were scheduling becomes even more important. Many logistics Zhagdoud AGVs had to transport containers from loading depots to problems arebecomes such that there more is no known fast way to compute Each AGV had a capacity. The nodes were scheduling important. Many logistics unloading AGVs haddepots. to transport containers from loading depots to problems are such thateven there is no known fast way to compute unloading depots. Each AGV had a capacity. The nodes were problems are such that there is no known fast way to compute Copyright © 2018 IFAC 1447unloading depots. Each AGV had a capacity. The nodes were 2405-8963 © 2018, IFAC (International Federation of Automatic Control) Hosting by Elsevier Ltd. All rights reserved. Copyright © 2018 IFAC 1447 Peer review©under of International Federation of Automatic Copyright 2018 responsibility IFAC 1447Control. Copyright © 2018 IFAC 1447 10.1016/j.ifacol.2018.08.317 Copyright © 2018 IFAC 1447

IFAC INCOM 2018 1416 Bergamo, Italy, June 11-13, 2018

Andor Bálint Viharos et al. / IFAC PapersOnLine 51-11 (2018) 1415–1420

arranged in a weighted graph where some nodes were connected and some not. They searched for a solution where an objective function was minimised. They proposed a genetic algorithm to solve the problem. They investigated the use of GA and Dijkstra’s algorithm together and even a heuristic algorithm in addition to the former two. They have found that Dijkstra’s algorithm improved the solution significantly. Some other works are not presented here due to lack of space. Interested readers are referred to the paper of Miyamoto and Inoue (2016) on dispatch and conflict-free routing problem of capacitated AGV systems, the article of Soylu et al. (2000) about a self-organising neural network approach of a single AGV problem, and the paper of Fazlollahtabar et al. (2015) about a review study on methodologies to optimise AGV scheduling and routing problems. Filho et al. (2014) reviewed the literature of GAs applied to solve job sequencing, routing and other scheduling problems on flexible manufacturing systems. Based on the best knowledge of the authors, not many studies investigated the connection of assembly and logistics and the effects of stochastic events on logistics, especially in automatically created simulation models. As finding a near to optimal schedule takes much computing time and cannot be performed real-time, stochastic events can make it hard to control a fleet of AGVs. This paper aims to introduce a flexible heuristic algorithm that can schedule AGVs real-time in an assembly system even when there are stochastic events. 2. PROBLEM DESCRIPTION The products are defined as a set of product assembly instructions. The product order list is given. Each product must be manufactured in the given quantity in any order of completion. The boundary of a manufacturing system is specified with the following restrictions: there is at least one source where the elementary parts are created, and at least one drain where the finished products can be delivered to in order that they get out of the model. There are some robotic cells that are connected by tracks. AGVs can approach every object in the assembly system on the tracks. Each cell contains a robot that performs the assembly tasks, at least one workstation where the assembly is performed, and buffers where the assembled parts can be stored. There is at least one AGV_Pool, where AGVs can park. Any positive number of AGVs can be specified. The methods presented below can handle stochastic assembly and setup times as the algorithm always investigates the current state of the plant without depending on time. An example Plant Simulation model of system layout can be seen in Fig. 1.

Fig. 1. An example model of an automatic assembly system layout in Plant Simulation Within this DES model there are 2 AGV pools, 5 Robots, 6 workstations (SPx) of which Robot4 has two ones, 2 Sources, 2 Drains, and an input buffer (Buffer) and an output buffer (Store) for each cell. The AGVs are created when the simulation starts. The object Swap facilitates the handling of continuous assembly on the same workstation in the module but has no physical meaning. The AGVs can move on one-way tracks. The AGVs are modelled with the inbuilt Plant Simulation transporter object that finds the paths based on the locations and destinations of the AGVs. 2.1 Assembly instructions All assembly instructions are defined in a form of a tree. The root denotes the completed product, the leaves denote elementary parts, the other nodes denote assembled subparts. Each node is assembled from its children (the assembled part will be referred to as parent, the subparts as children). Each child denotes a part type, for example, a bolt. When multiple children of a type (bolts) are needed in a step, they are still represented by a single node. Each child has a quantity that is needed to assemble the parent. Each parent has an assembly type and can be assembled on a few – at least one – workstations with a given assembly time for each station. Each workstation has its own setup matrix that contains the setup times from one product to another. The exact layout configuration is not known and the method must work in any layout that fulfils the conditions specified above. 3. HANDLING ASSEMBLY TREES Siemens Plant Simulation 13.0.5 was used to create the DES model. The assembly instructions of the products are read from separate Excel tables, where each node in the tree is a row,

1448

IFAC INCOM 2018 Bergamo, Italy, June 11-13, 2018

Andor Bálint Viharos et al. / IFAC PapersOnLine 51-11 (2018) 1415–1420

indentation (empty cells) denote the depth of a node and the table contains all the information presented above. When reading the input data from the Excel file, the module transforms the graph to its own format, where each node is a row in a table and each node is denoted by an identifier (ID). The root has the ID 0. The IDs are coded in a selected numeral system. The IDs are calculated according to (1):

c  p b  i

(1)

In (1) c denotes the ID of the i-th child of the parent, p is the ID of the parent, b is the base of the numeral system. The base of the numeral system must be one greater than the maximal number of children of any node in the assembly forest (union of all assembly trees). The module chooses the base of the numeral system automatically. Possible workstations, processing times and the assembly type is also read from the Excel tables. An example of an assembly tree is shown in Fig. 2. Its transformed version is presented in Table 1. In Fig. 2, each node contains the name, the ID (the base of the numeral system is 10 in the examples), and the quantity of the part that is needed to assemble one piece of its parent part.

1417

4. OVERVIEW OF THE CONTROL ALGORITHMS The algorithm used by the module is heuristic, so it does not schedule the AGVs and tasks before the simulation, but it determines the orders real-time based on heuristic rules. The module supervises the state of the assembly system after each simulation event and makes decisions accordingly. The goal of the module is to minimise the overall manufacturing time of the products. The module has a main program called Kernel. It has a similar role to the kernels of operating systems but it is much simpler. The main purpose of the Kernel is to organise and prioritise the processes in the system and to allocate the resources (workstations). There is a table called Process_Log that holds all the information needed about the running processes. There is an Assembly_Conductor, an AGV_Control, a Piece_Control, a Robot_Transfer_Control, and some instances of Assembly_Control (ASC). Each process has a process identifier (PID), a name, a state, and a nice value. The Assembly_Control instances keep track of information on the assembly they are assigned to. A nice value is an integer in the range [-20; 20] representing the order or importance of the process. Processes with lower nice values are executed before processes with higher nice values. The idea of nice comes from GNU/Linux systems. A nice of 20 means that the process is stopped; this is the maximum of nice. Generally, the closer an assembly operation is to the root of the product, the more important it is, and the lower nice it has. 4.1 The Kernel The Kernel calls itself just after each simulation event in the assembly system. Each run consists of the following: First, the Kernel sorts the processes in increasing nice order in the Process_Log. After that the Kernel sets its Process_Log row variable to 1, then iterates over the processes. When the Kernel reaches a process that is stopped, it stops running and calls itself just after the next event in the simulation. When the current process is not stopped, and it is an Assembly_Conductor, or an AGV_Control, the Kernel calls it as long as its return value is true. In this case, the process has more work to do. The Piece_Control and the Robot_Transfer_Control is called once during each Kernel run. If the process is an ASC, the Kernel decides whether to allow it to run. If the ASC requests assembly, the Kernel checks whether a workstation can be assigned to the ASC or not. If there is such a free workstation, the Kernel reserves the workstation for the ASC where the overall setup and assembly time is minimal and starts the ASC, otherwise blocks the ASC. If the ASC was blocked, the Kernel investigates whether it can unblock the ASC (if there is a free workstation). The ASC is called to run as long as it changes its state, so as long as it has some work to do.

Fig. 2. An example of an assembly tree Table 1. A transformed assembly tree

In Table 1, the first row is the root, the complete product. It has 3 direct children with IDs 1, 2, and 3. The possible workstations, the list and quantity of the children and the assembly type of each assembly operation is contained in the table (but not in Fig. 2).

After this, the Kernel increments the row counter and starts handling the next process if that process is not stopped. No process, except for the Kernel, is allowed to call itself or any other process or give other processes permissions. In this way, the Kernel ensures that the processes will not interfere and they

1449

IFAC INCOM 2018 1418 Bergamo, Italy, June 11-13, 2018

Andor Bálint Viharos et al. / IFAC PapersOnLine 51-11 (2018) 1415–1420

will always follow in the order of importance. In the next sections, each process type is presented in more detail. 4.2 The Assembly_Conductor The Assembly_Conductor (hereafter ACO in Section 4.2) runs in one instance. Its job is to read the product orders table and assign an ASC to the final assembly of each new order (assembling the complete product that is denoted with 0 in the tree). Orders are split into single products in the module. From now on, an order refers to the task of assembling a single product and its parts. Each new order gets a specific order ID. The ACO then writes the ASC’s parameters in the Process_Log and assigns the nice value 0 to it and sets its state to “init”. If this is done, it returns true and is called again by the Kernel. In fact, this method runs only at the start of the simulation, and writes a new ASC in the Process_Log for each order, then stops. This method can be further improved, but the module works as it is now. Because of the Kernel system, the ASCs do not interfere. The nice of the ACO is -20, thus it is the very first method to be called by the Kernel. 4.3 The Assembly_Control The Assembly_Control is a “recursive” method, it might write new instances of itself in the Process_Log. It is assigned to one assembly operation of one part in one product and it is the ASC’s duty to perform that assembly. Upon the first “init” run, the ASC checks the assembly table of its product and searches the part it needs to assemble. Then, it finds its children (in the assembly table) that need to be ready to start the assembly. If all of its children are elementary pieces, it requests assembly. If there is at least one assembled part among its children, then the ASC assigns another ASC instance to each assembled part, writing a new row in the Process_Log with the appropriate parameters. The nice of the children will be greater by one than the nice of the parent. The reason for this is that completing products is more important than starting new ones, otherwise the plant would be flooded with parts of uncompleted products. Therefore, each ASC will have a nice equal to the depth of the node of the product it needs to assemble in the tree. After the initialisation, the ASC will be called again because it has changed its state (to “assembly_request” if there are only elementary parts among its children, “waiting_for_subassemblies” otherwise). When the state of the ASC is “assembly_request”, the Kernel decides whether to block it or allow it. In the first case, the ASC’s state will be “blocked_init”, in the second case it will be “assembly_allowed”. If the assembly is allowed, the Kernel assigns a workstation to the ASC. When the Kernel allows an ASC to start the assembly, it changes its state to “assembly_allowed” and then calls the ASC. In this state, the ASC searches all of its direct children in the AGV_Orders based on their PIDs. This table in the module holds each single part as an entry. Each entry has a PID (the PID belonging to the ASC of the entry), an order ID,

the ID in the assembly tree, a name, a location, a destination, a state, and an AGV field that may be empty or filled in, depending on the fact whether an AGV is handling the order. This time the ASC searches for completed parts in the AGV_Orders whose PID is identical to its own one, and sets their destination to the workstation it has been assigned by the Kernel and sets their state to “to_be_transported”. Then it adds new entries for each elementary part in the AGV_Orders table with the state “to_be_created” and directs them to its workstation. When the ASC runs in “waiting_for_subassemblies” state, it simply checks whether all of its assembled child parts are ready or not. Every ASC has a list of its children and they check the state of their children whether they are ready. If so, it sets its own state to “assembly_request”. When the ASC is called in “blocked_init” state, it searches its direct, already assembled children in the AGV_Orders and sends each to a buffer in order to remove unfinished parts from the plant. After that, the ASC changes its own state to “blocked”. In this state, the Kernel decides whether to unblock it in each turn. In the case of unblocking, the Kernel changes its state to “assembly_allowed”. When all of the children arrive at the specified workstation, first the setup (if any) starts, then the assembly. The robot of the cell assembles the parts (in the Plant Simulation model this is modelled by placing all subparts to a container that is the assembled part). When the assembly is ready, the entries of the children are deleted from the AGV_Orders table and a new entry for the new part is inserted. If it is a completed product, its destination is set to the closest drain and its state is set to “to_be_transported”, and the ASC’s state to “stopped”, otherwise, the destination is left empty and the ASC’s state is set to “carry_away_request”. The module finds the closest drain, using data in the Location_List. In the next Kernel run, the parent of the current ASC can take the part to start the assembly. If the assembly starts, the parent ASC stops the child ASC. Otherwise, the parent ASC is blocked, therefore, it does not carry the part of the child ASC away and does not stop the child ASC. In this way, the child ASC will be called the last in “carry_away_request” state. In this case, it will send the part it has just assembled to a buffer, then, the ASC stops itself and changes its state to “stopped” and its nice to 20. 4.4 The Piece_Control The Piece_Control (hereafter PIC in Section 4.4) checks the AGV_Orders table for an entry whose state is “to_be_created”. These are elementary parts that come from sources. When the PIC finds one, it checks all the sources where the part can be created (the sources where the elementary parts can be created are also inputs in the Excel table). Then it creates the part on a source if possible, sets its attributes, then continues the search for parts with the state “to_be_created” and creates of them as many as possible. Each source may have only one elementary part at a time. The nice of the PIC is 18, which means it will be the last but one method to be called before the AGV_Control.

1450

IFAC INCOM 2018 Bergamo, Italy, June 11-13, 2018

Andor Bálint Viharos et al. / IFAC PapersOnLine 51-11 (2018) 1415–1420

4.5 The AGV_Control The AGV_Control controls the AGVs in the system. The quantity of AGVs can be set as input. AGVs are located in the AGV_Pools distributed evenly at the start of the simulation. In each run, the AGV_Control checks whether there is a free AGV or not. If there is one, the AGV_Control iterates over the AGV_Orders table and looks for tasks. It chooses the first task according to the following priority. A part needs to be transported

1419

put on “containers” (that have no physical meaning), the setup time and assembly operation time are summed up, and the assembled part is removed. Some Stores and Buffers hold parts that are either assembled or waiting for being assembled. In Fig. 3 Robot4 is putting a load on the yellow, stopped AGV. This simulation run contains two AGVs. The assembly tree of product 2 is presented in Fig. 2 and Table. 1.

1. To a drain; 2. From a workstation to a buffer; 3. From a workstation to another one; 4. From a buffer to a workstation; 5. From a source to a workstation. The reason for this priority is that the AGVs should take orders in a manner that the overall number of workpieces on workstations is to be as few as possible. This frees up stations as soon as possible, in this manner a new assembly operation can be assigned to them. It also prevents the system from being crowded with unfinished parts. Then the AGV_Control assigns the AGV to the task just found and sends the AGV on its way. If the AGV_Control changes something, it returns true and the Kernel calls it again, or it returns false and is not called again. The AGV_Control and all other methods get location data from a table called Location_List. This is a list where data of the cells are stored. Each row consists of a track, a workstation, a robot and a store within a cell and a sensor position on the track, so that the methods know the cell’s location along the track. The sensors are used to start methods when the AGVs trigger them, and in this way, the module can handle the loading and unloading of the AGVs. The AGV_Control has a nice of 19, thus it is always the last method in each Kernel run. Plant Simulation by default always chooses the shortest path for the AGV (transporter) on the tracks, thus it was not necessary to work out a solution to find the closest way to a workstation.

Fig. 3. Execution of the simulation Fig. 4 shows the model of a different layout. The control methods are the same in both cases. The only differences are the layout and its representation in the Location_List.

4.6 The Robot_Transfer_Control The Robot_Transfer_Control (hereafter RTC in Section 4.6) has a nice of 17. It is called just before the Piece_Control and the AGV_Control. The RTC checks the AGV_Orders table whether there is a part that needs to be transported within a cell. In this case, an AGV is not needed, because the cell’s robot can transfer the part on its own. Therefore, the RTC starts an independent method that waits until the given robot finishes its current task, then immediately takes control over it and makes the robot pick and place the part. It is important that this method is independent of the RTC because the Kernel and the processes must not wait for any event, the Kernel must run instantaneously. ASCs are stopped when their job is done, other methods stop when there is no order left to do. If all the processes are stopped, the Kernel also stops and the simulation ends. By this time, every product order is completed. Fig. 3 shows the same model as in Fig. 1, however, here the simulation is running. The assembly process is simulated in the way that all parts are

Fig. 4. Execution of the simulation with an alternative layout 5. FURTHER DEVELOPMENT DIRECTIONS The module is currently under development. One of the focuses is to be able to handle palettes filled with parts rather than simple parts. Another planned extension is to enable the modelling of stochastic processes, such as probabilistic process times and failures, and to support the planning of maintenance actions. As machines might break down or stop

1451

IFAC INCOM 2018 1420 Bergamo, Italy, June 11-13, 2018

Andor Bálint Viharos et al. / IFAC PapersOnLine 51-11 (2018) 1415–1420

for maintenance, additional methods will be added that generate and handle these downtime events or delays caused by the stochastic process times. Another additional feature could be the possibility to define priority product orders. Based on the current Kernel’s nicebased system its development would be a straightforward way. 5.1 Combining the module with external schedulers We also plan to add the possibility of simulating a schedule generated by an external program. This is important, because there are complex methods that give better results than heuristic algorithms. Nevertheless, there are pros and cons for modern scheduling algorithms compared to heuristic algorithms. First, they give better results in general. However, they usually take much computing time to generate a schedule, especially if the model is complex, and they usually do that at the start of the simulation. In some cases, they run during the simulation as well to adjust the schedule, like in case of Zheng et al. (2017). Sometimes these methods cannot handle stochastic events as easily as heuristic algorithms because they cannot know the exact times at the very start of the simulation. The schedule they produce might be impossible to follow at some point in time because of stochastic events or failures in the plant. In this case, these schedulers need to update their schedule and this takes time. Then a heuristic algorithm could take over control in the plant until the schedule is updated, then follow the schedule again. In this way the near to optimal solutions determined by the modern schedulers and the robust nature of the algorithm presented above could complement each other. Such a duet is likely to give better results than one of the algorithms alone. 6. CONCLUSIONS This paper has presented a heuristic algorithm that is highly flexible and can manage a wide variety of automatic assembly systems composed of robotic assembly stations and AGV based material handling, and able to produce any product orders satisfying a given set of assembly and other conditions. The Kernel’s system helps in adding other features as processes, thus the module is easy to extend. This is useful, especially for research applications. The Kernel calls the processes in the order of nice values as long as needed. The information is stored in assembly trees, in the AGV_Orders, where each part has an entry, and in the Process_Log, where every running or stopped instance of a process has an entry. Every type of tasks has a specific method, among them the Assembly_Control and the AGV_Control are the most important ones. An Assembly_Control process handles one assembly operation, and if needed, it starts other instances of Assembly_Control to assemble the subparts it needs. The AGV_Control manages AGV transports based on priority rules. The module can be applied to a wide variety of layouts created by a configurator automatically, because the algorithms get data from the Location_List (that can be created by the configurator as well), and they are independent of the

layout. The simulation module can quickly evaluate these layouts in order that some key performance indicators, such as throughput time, can be estimated. Applying the simulation module to an extended layout is easy, one just needs to append an additional row to the Location_List for each added workstation with its connected objects, and edit the assembly instructions so that they contain the new workstations. The strength of the methodology is that it is prepared for stochastic events. Other modern methods often require much time to generate a schedule that is likely to be better than the schedule obtained by the heuristic methodology presented here. In the future, the methodology could be used as an auxiliary scheduler that takes control over the system while another more sophisticated method updates the schedule. In this way, these modern schedulers and the robust methodology presented in the paper could be united. The algorithms and the methods developed so far provide a solid base for further extensions and developments. ACKNOWLEDGEMENTS Work for this paper was supported by the European Commission through the H2020 project EPIC under grant No. 739592. REFERENCES Fazlollahtabar, H., and Saidi-Mehrabad, M. (2015). Methodologies to optimize automated guided vehicle scheduling and routing problems: a review study. Journal of Intelligent & Robotic Systems, Volume 77, Issue 3-4, pp. 525-545. Filho, M. G., Barco, C. F. and Neto, R. F. T. (2014). Using Genetic Algorithms to solve scheduling problems on flexible manufacturing systems (FMS): a literature survey, classification and analysis. Flexible Services and Manufacturing Journal, Volume 26, Issue 3, pp. 408-431. Miyamoto, T. and Inoue, K. (2016). Local and random searches for dispatch and conflict-free routing problem of capacitated AGV systems. Computers & Industrial Engineering, Volume 91, pp. 1-9. Saidi-Mehrabad, M., Dehnavi-Arani, S., Evazabadian, F. and Mahmoodian, V. (2015). An ant colony algorithm (ACA) for solving the new integrated model of job shop scheduling and conflict-free routing of AGVs. Computers & Industrial Engineering, Volume 86, pp. 2-13. Soylu, M., Özdemirel, N.E. and Kayaligil, S. (2000). A selforganizing neural network approach for the single AGV routing problem. European Journal of Operational Research, Volume 121, Issue 1, pp. 124-137. Zaghdoud, R., Mesghouni, K., Dutilleul, S.C., Zidi, K. and Ghedira, K. (2016). A hybrid method for assigning containers to AGVs in container terminal. IFACPapersOnLine, Volume 49, Issue 3, pp. 96-103. Zheng, H., Negenborn, R.R. and Lodewijks, G. (2017). Closed-loop scheduling and control of waterborne AGVs for energy-efficient inter terminal transport. Transportation Research Part E: Logistics and Transportation Review, Volume 105, pp. 261-278.

1452