Cookie Baking Cell by 282REF


									System Overview
The cookie baking cell consists of a cookie tray storage and dispense unit, an oven for
baking cookies, a cooling rack, a mill for dispensing frosting, and a conveyor system to
move the finished cookie to a vision inspection station and a finished goods area. A
centrally located robot moves a cookie tray from the dispense unit to the oven, from the
oven to the cooling rack, from the cooling rack to the mill, and from the mill to the
conveyor system. The conveyor system moves the cookie to the vision inspection station
where cookies are identified as passed or failed after vision inspection, based on frosting
pattern. The conveyor system then delivers the cookie to one of the two locations in the
finished goods area based on the status of the vision inspection.

The operation of the cell can be broken down into two logical areas, the baking unit and
the dispense and delivery unit. The baking unit consists of the cookie tray storage,
dispense, the oven, and the cooling rack. The cooling rack has room for four cookie
trays. The robot moves trays between the three areas in the baking unit. When all four
positions in the cooling rack are occupied with cookies no more cookies will be sent into
the baking area. As orders are put into the system one cookie at a time is moved from the
cooling rack to the dispense and delivery unit. The robot moves a cookie into the mill for
frosting application. When the frosting application is complete the robot moves the
cookie to the conveyor system. The conveyor system moves the tray to the vision
inspection station where the cookie and frosting are inspected. After inspection is
complete the conveyor system moves the cookie to the finished goods area.

Communication between the different components is achieved using a central database.
The different control components of the baking cell each have a separate computer that
connects to the database; device net, robot, mill, and control programs. The database is
located on a central processing unit. There are four different tables in the database that
are used for controlling the system, the command table, order table, order number table,
and cooling status table, all tables can be viewed in the attachment. The command table
is used to move trays through the cell, the order table is where all orders are stored, the
order number table is where the current order number is stored, and the cooling status
table is used for moving trays in and out of the cooling rack.

      The device net communicates with the command table. The device net controls
       everything that has an input and output, sensors, cylinders, etc. based on the
       command table status. See device net description for more details.
      The robot communicates with the command table. The robot moves trays around
       the cell based on the command table status.
      The mill communicates with the command table. The mill dispenses frosting on
       the cookie when the proper command is made (status = 1) in the command table.
      The control programs communicate with all of the database tables. The control
       program monitors the command table and sets commands based on the system
       status. The trays are moved through the cell based on the commands set by the
       control program. The control program also monitors the order number table
       where the current order is found.
All the stations are radically arranged around the robot vertical axis and a transition
position was defined to allow the motion of the robot arm to move from one station to
another without bumping anything on the way. Refer to Figure 1 for the work cell setup
of the cookie making machine.

                           Feeder                                                  Accept

                                                                Frosting            St.
                                              Robot              Station


                                    Figure 1. Work cell Setup

Consumers of the cookies interact with the baking cell through a web page. The web
page generates an order and saves it to the order table. The order consists of order
quantity, dispense program choice, and name. The web program queries the order
number table for the next available order number and assigns it to the order. The web
program saves the order into the order table. When saving the order in the order table the
order status and run quantity are both set to zero. As orders are processed in the system
the order status is updated in the order table. When the cookie is moved to the mill the
order status is set to 1, when the cookie is moved to the conveyor the order status is set to
2, when the conveyor moves the tray to the vision inspection station the order status is set
to 3, when the conveyor moves the tray to the final inspection area the order status is set
to 4, and when the conveyor moves to its home position the order status is set to 5. The
order status is set by the control program as the cookie is processed in the cell.

A separate program, also recognized as the master program, monitors the current order
number and its status. When the master program is initialized it goes through each order
in the order table and finds the first order that is not completed. That order number is
then set in the order number table as the current order. The master program will monitor
the status of the current order. When the status is set to 5 the master program will look
for the next uncompleted order number and update the current order. The Software
portions explains further details of the overall system.

All of the system controls are monitored through the command table. When the system is
started the oven door (command 6) is in the closed position (status 1) and all other
commands should be reset (status = 0). The work-flow through the cookie making cell is
controlled as follows:

Bake Controls

The system should continually bake cookies until the 4 buffer positions are full. The
control program will monitor the status of the buffers C13-16 and determine when to
insert a tray into the oven and what buffer position the tray should be moved to.

      Device net should always try to present tray, C0.
      Control program sets open oven command (C1) when the WIP is less than 4 C0 is
       made, C4 is not made, C6 is made, and C17 is not made. Set C1.
           o There is an integer in the program that is equal to the summation of C4,
                C9, C10, C11, & C12.
      Device net opens oven when C1 is made, reset C6 (first) and set C2 (second). Do
       not reset C1.
      Control program sets C3 when C0 is made, C2 is made, C4 is not made, and C17
       is not made. Set C3, Set C4, Reset C1.
      Robot moves tray to oven when C3 is made, Reset C3 (first) and Set C5 (second).
      Device net will close oven when C5 is made, Reset C5 (first), Reset C2 (second),
       and Set C6 (third).
      Control program starts bake timer when C4 and C6 are made, Set C7.
      Control program sets C8 when bake timer is complete, Set C8 and Set C17.
      Control program sets C1 when C8 is made, Set C1
      Device net opens oven when C1 is made, reset C6 (first) and set C2 (second). Do
       not reset C1.
      Control program sets C9-12 when C8 is made and C2 is made. The buffer
       position that the tray is moved to is determined using a separate table, buffer
       table, which is initially set to position 1, after a tray is moved to position 1 the
       table is set to position 2 for the next move….. Before giving the move tray to
       buffer command C13-16 are checked for tray present status. Set C9-12, Reset C7,
       Reset C8.
      Robot makes move C9-12, Set C13-16 (first), Reset C9-12 (second), Reset C4
       (third), Set C5 (fourth).
      Control program resets C17 when C6 = 1 and C4 = 0, Reset C17.
      Control program resets C1 when C17 = 1 and C2 = 1, Reset C1.
Dispense Controls

The system should only send one tray into the dispense/vision/final product area at a
time. The control program will determine when trays are sent into the area by monitoring
order status.

      Control program monitors order status and sets C20-23 before resetting C13-16.
       The buffer position that the tray is moved from is determined using a separate
       table, buffer table, which is initially set to position 1. If the tray is present at the
       proper buffer C13-16, the corresponding cooling complete command is made,
       C36-39, the current order number has a status = 0, and there are no trays present
       in the dispense and final unit. Set C20-23 and reset C13-16.
      Robot moves tray to mill when C20-23 is made, reset C20-23 and set C4.
      Device Net clamps tray when C24 is made, reset C24 and set C25.
      Dispense program runs when C25 is made, set C26.
      Device Net unclamps tray when C26 is made, reset C25 & C26 and set C27.
      Robot moves tray to cart when C27 is made, reset C27 and set C28.
      Device Net moves cart to vision position when C28 is made, reset C28 and set
      Device Net communicates with Vision when C29 is made, set C30 & C31.
      Device Net moves the cart to the final product area based on the status of C30 and
       C31, reset C29 & C30 & C31 and set C32-33.
      Device Net should eject tray and move to next position, reset C32-33 and set C34.
      Control program will reset C34 after the order status is updated.
            o Query running qty for order number, from ordertable.
            o Add 1 to the running qty and write value to table.
            o Query order qty and running qty for order number, from order table.
            o If order qty = running qty set status = 5
            o If order qty > running qty set status = 0
            o Reset C34.
      When C35 is made (prox. sensor) there is only enough frosting for that cookie, no
       more orders should be sent into the dispense station until C35 is reset by device

Control Program Overview

The control program monitors the baking process based on C13-16. It sets C1 and C5
when the oven needs to be opened and closed and keeps track of bake and cooling times,
outlined above.
The control program also monitors the order table, database, and C35 to send trays to the
mill. The control program will set the order status when database commands are set.

      The current order is displayed in the ordernum table. The control program can
       reference the current order number in the ordertable.
           o When status is 0 a tray should be sent to dispense
           o When C24 is set update status to 1
             o    When C28 is set update status to 2
             o    When C29 is set update status to 3
             o    When C32-33 is set update status to 4
             o    When C34 is set update status to 5


The robot is a Movemaster EX by Mitsubishi with 5DOF plus an open or close gripper at
the end of the arm. The gripper has variable gripping pressure that can be set through
software. The bolts that attach the end of arm tooling to the robot are M3x1 bolts.

The robot is an integral part of the workstation, and sets many of the limitations and
possibilities for the workstation. The 5DOF have limitations on the angles that can be
made. None of the 5 axes have a full 360-degrees of rotation. The Y, Z, and P axes have
the most constraints on their rotation. These three axes set how close to the robot base
that the end of arm tooling can be moved. The robot also has a limited reach, outwards
from the base. The layout of the manufacturing cell was determined mainly by the
constraints imposed by the robot.

The cookie tray placed several limitations on the robot motion and manufacturing cell
layout. The tray had to be approached linearly from the front in order for it to be picked
up and placed correctly. In order to do this each pickup or drop-off station had to be
radially arranged around the robot’s base.


The robot software consists of three essential parts. An overall C++ program, which reads
and writes the main control database located on another computer. The C program also
communicates with the robot hardware through RS-232. Currently the robot is connected
to serial port 1, but this may easily be changed at the start of the program. The next level
of software is the internal program sections in the robot. The internal program can be
thought of as a subroutine from the main program. Each subroutine ends with the ‘WH’
command. This allows the main program to wait for the robot to complete its motion
without hard coded delays. The final layer of software is the programmed points and
other specific commands functions, stored in the robot’s EEPROM memory as a series of
numbered of lines by mean of minicom. The command used to drive the robot are called
using the run command function and are given in Table 1.

                             Table 1: Robot Command Functions Used
  Function call               Use           Example                       Description
      Mo               Move to position     mo 10,c            Move to position 10 with grip closed
      Nt              Bring robot back to      nt             Must be used before any other function
                        zero on all axis
        Gc                Close grip           gc                         Closes the grips
        Go                Open grip            go                         Opens the grips
        wh             Reads data from         wh         Sends a the location of the arm to the serial port
      Rn                 Run code in robots         rn 10, 150   Runs code stored in lines 10 to line 140, one line
                               EPROM                                             before line 150
       Gs                 Go to subroutine           gs 400               Go to subroutine at line 400
       Rt                Exit the subroutine            rt                     Exit the subroutine

The points used in the final layer of program must be programmed using the teaching
pendant. Each axis can be moved individually. The robot continuously checks for the
updated status in the command table from database “robot” located on the computer
whose IP is “”. The master program and each individual work area also
continuously update this database. The program to run the robot follows the flowchart in
figure 1.


      Initialize robot

      Loop Always

      Get all Status

      Move to Cart                             Move to Cart               Update Status
      From Mill = 1

       Move to Mill
     From Buffer = 1                            Move to Mill              Update Status

     Move to Buffer
     From Oven = 1                             Move to Buffer             Update Status

     Move to Oven
     From Stack = 1                            Move to Oven               Update Status

                            Figure 1. The Flowchart for the Robot Operation

Station setup

The robot ties the work cell together by moving parts from one workplace to another. The
workplaces consist of a tray dispenser, an electric cooker, a buffer, a frosting dispenser,
and a cart.
   Trays are stack vertically in dispenser that feed one tray at a time once the pick up
    point has been cleared.
   The cooker has only one shelf and its door is pneumatically opened. The robot get
    instruction to put and pick up the tray from the database.
   The buffer is provided to allow the cookies to cool down before the frosting
    operation. It has four shelf
   The frosting station is a milling machine that has been transformed to dispense the
    frosting. The robot can only deposit or pick up a tray once the clamp of the mill
    station has been released.
    A cart is always waiting close by at a predefined location for a tray from the
    frosting station.

To top