Process Characterization of a PMMA Hot Embossing System by Katharine Luginbuhl Sc. B. Mechanical Engineering Massachusetts Institute of Technology, 2012 Submitted to the Department of Mechanical Engineering in partial fulfillment of the requirements for the degree of Master of Science at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY AC4N'ES June 2014 MASSACHUSET , INSTITUTE OF T~cN~G D Massachusetts Institute of Technology 2014. All rights reserved. AUG 15 201 L RA. E S R Signature redacted .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Author ............................................. Department of Mechanical Engineering May 9, 2014 Cetiid byySignature ...... S i Certified n t r redacted e a t d ......................................... David E. Hardt Ralph E. and Eloise F. Cross Professor of Mechanical Engineering Thesis Supervisor A ccepted by.. Signature redacted ........................................... David E. Hardt Ralph E. and Eloise F. Cross Professor of Mechanical Engineering Graduate Officer 2 Process Characterization of a PMMA Hot Embossing System by Katharine Luginbuhl Submitted to the Department of Mechanical Engineering on May 9, 2014, in partial fulfillment of the requirements for the degree of Master of Science ABSTRACT Microfluidics devices are important both for research use and medical application. To create these microfluidics devices, the hot embossing process is commonly used. In order to characterize this process to enable cycle to cycle control, a small-scale system was developed, using a hot embossing machine, taping machine, and functional tester previously created. Parts were moved between these machines with an Epson GlO SCARA robot, which provided the appropriate efficiency and accuracy. This system was able to produce embossed parts with a takt time of less than 135 seconds, and over 1000 of such parts were produced. The system was analyzed to determine potential sources of variance, considering both things that would alter the part and things that would alter the measurements. This enabled the system to be run in a state of statistical control, which in turn allowed for a designed experiment to be done on the system. This designed experiment determined that the forming temperature, forming force, forming time, as well as the square terms for the forming temperature and forming force and the cross-terms of forming force with forming temperature and forming time with forming temperature, were all statistically significant in the formation of parts. With this data, cycle-to-cycle control can be enabled in the future. Thesis Supervisor: David E. Hardt Title: Ralph E. and Eloise F. Cross Professor of Mechanical Engineering 3 4 ACKNOWLEDGEMENTS There are a number of people without whom this thesis would not be possible: First, many thanks to my advisor, Professor David Hardt, who is excellent at both making sure that the technical details are always clear while keeping focus on the overall project. His enthusiasm and dedication kept everything interesting, and his broad knowledge base made him always able to find an answer. I want to thank Maia Bageant, whose knowledge, hard work, and overall good company made her a delight to work with, and who was willing to help me figure out how to make the robot behave even when it meant altering her precisely-designed hot embosser. I want to thank Caitlin Reyda for the amazing suggestion that I get involved in this project, and for her wonderful machine designs without which the system would not have existed. I would like to thank Joseph Favella both for his machining expertise and for his ability to always find the potential dangers of the system. I would like to thank Nadege Zarrouati for the excellent selection of robotic arm that I got to use, as well as for the prescient ability to pick something that could interface with our other machines. I would also like to thank everyone else who worked on the many iterations of this project prior to me. I want to thank my friends Chris Carignan, Hannah DuBose, and Lucretius Williams for their ongoing support and encouragement throughout this project, as well as their tolerances of the resulting sleep schedule. I would like to thank my family, especially my parents, Erica Turner and William Luginbuhl, without whom none of my work would have been in any way possible, and who have always been confident in my abilities. I would also like to thank my younger sister, Jessica Luginbuhl, who is always willing to listen to me explain my latest projects. Finally, a tremendous thanks to the MIT-Singapore Alliance, for their generous funding of the project and making everything possible. 5 6 7 TABLE OF CONTENTS 1 2 3 4 5 Introduction ......................................................................................................................... 19 1.1 M icrofluidics ................................................................................................................ 19 1.2 Hot Embossing........... 20 1.3 Precision Manipulation................................................................................................. 22 1.4 Process C ontrol ......................................................... 22 1.5 Project Motivation................................................................................................. ............................................ .............................................. ................................................. 23 Previous Work........................................................................... 25 2.1 The Part ... ........................................................................ 25 2.2 Hot Em bossing M achine............................................................................................ 26 2.3 Taping M achine.............................................................................................................. 29 2.4 Functional Testing...................................................................................................... 31 2.5 Epson Robot ........... .oo..................................................................... 34 Robotic Handling System .................................................................................................. 37 .. ~.. . . 3.1 Safety ... o........................................................................................ 38 3.2 End Effector Design.................................................................................................... 39 3.3 Precision Part Manipulation............................................. 40 3.4 Autonom ous Programm ing ........................................................................................ 48 3.5 System Comm unications............................................................................................. 56 3.6 System Failure Modes........ooo ..o............................... ...... o................. 59 Minimum System Cycle Time.......................................................................................... 4.1 Simulation ........... 4.2 Results.......................................................... ............................................. 63 63 ........... 66 Initial Experiments of System Characterization .............................................................. 73 5.1 Experim ental M ethod................................................................................................ 73 5.2 Blank Parts .. ................................................................................. 74 5.3 Hot Embossing M achine ............................................................................................ 78 5.4 Functional Tester........................................................................................................ 82 5.5 Taping Machine.................................................. 89 8 6 Statistical Process Control Results and Discussions..................................................... 6.1 7 Statistical Control...................................................................................................... 91 91 Process Characterization Using Designed Experiments ................................................ 101 7.1 M easurem ent Errors ..................................................................................................... 101 7.2 DOE Results................................................................................................................. 103 Conclusions......................................................................................................................... 111 Next Steps .................................................................................................................... 113 A Robot Sam ple Code ........................................................................................................... 115 B Robot Points ....................................................................................................................... 125 C DO E Data ........................................................................................................................... 129 D M ATLAB Simulation........................................................................................................ 137 9 References........................................................................................................................... 157 8 8.1 9 LIST OF FIGURES Figure 1-1: The four steps of the hot embossing process for microfluidics devices. By applying pressure to a plastic at or near its glass transition temperature, the plastic will locally flow into the shape of the mold, after which it can be cooled and separated. A bonding layer over top seals the m icrofluidics channels. [3]................................................................................................. 20 Figure 1-2: The resulting cross-section of a microfluidics channel, based on the forming force applied. Higher forces cause more localized flowing of the plastic, resulting in sharper channels with steeper walls. This data corresponds to PMMA parts formed at 110 C. [5]..................... 21 Figure 2-1: The tool used to make the part. Two input ports combine via a mixing pattern using 50 pim to a single output port. Additional markers have been placed on the part in case additional measurem ents were needed. [12]............................................................................................ 25 Figure 2-2: The first version of the hot embossing machine, showing the forming platens in the Instron ........................................................................................................................................... 27 Figure 2-3: The current hot embossing hardware, with key features labeled. [12].................. 28 Figure 2-4: The taping machine, showing the path of the tape as the parts are moved linearly along the belt. Parts will be sealed with one piece of tape, which is then separated by the adjacent cutter. [13]..................................................................................................................................... 30 Figure 2-5: Three parts that have been embossed, with the tape placed overtop of them. The dotted lines show where the tape will be cut to separate the parts, and the arrow shows the direction the parts move within the machine. [13] ................................................................... 31 Figure 2-6: A zoomed-in image of a part in the functional testing machine, and that image with the data from the functional tester recorded on it. The average width and standard deviation measures in the upper-left corner are based on the four measured channel widths. The information in the upper-right corner is used to determine the presence of the part. The TRUE label in the lower-right corner indicates that the part may have fluid flow through it. ............ 32 Figure 2-7: The standard deviation of the intensity across both an unmixed and a mixed channel. The mixed channel has a much lower standard deviation because of the more uniform intensity. [13]................................................................................................................................................ 33 Figure 2-8: The four joints of a GlO Epson robot, which enable it to move in all three dimensions, with one axis of rotation. Hard stops may be applied to joints 1 and 2 to reduce the range of motion. [21].................................................................................................................... 35 Figure 3-1: The manufacturing cell layout. Parts go from the dispenser (1) to the hot embosser (2), then are transferred to the taping machine (3) and cutting machine (4). From there, they are placed in the functional tester (5) and finally the finished parts bin (6).................................. 37 Figure 3-2: The robotic end effector, formed from a hollow vacuum channel with holes to create a seal against the part. The talon or hook on the end of end effector allows for part manipulation independent of the vacuum. The two ports on the end effector allow for the simultaneous transportation of two parts. [13]............................................................................................... 39 10 Figure 3-3: The three degrees of freedom of the part on the effector head. Parts may be shifted in either of the two planar dimensions (a) (b) with respect to the effector head, or rotated. (c) Parts cannot be shifted or rotated perpendicular to the planar effector head, as this would cause the vacuum holes to not adhere to the part, and the part to be dropped. ......................................... 41 Figure 3-4: The part dispenser, holding approximately 20 parts. The spring forces the parts to the top of the dispenser, from where they can be removed. ........................................................... 43 Figure 3-5: An example part in the dispenser, showing the variation in x, y, and orientation which m ay result from the dispenser. ....................................................................................... 43 Figure 3-6: The alignment of a part when being retrieved from the dispenser. The location of the talon is indicated with the dotted line. The part starts unoriented in the dispenser, with the effector head lowered over it. (a) The part is then pulled straight out of the dispenser, aligning it against the talon on the end-effector and orienting it. (b) The vacuum is then activated and the part is moved against the side of the dispenser, which causes its location to be fully known. (c)45 Figure 3-7: The initial method of part alignment against the three pins. Parts are placed sufficiently far away from the pins such that, given the variance in their location, they will never overlap with the pins. (a) Parts are then pushed towards the back pins. (b) Finally, parts are pushed against all three pins. (c)............................................................................................... 45 Figure 3-8: The orientation of a part using three-pin alignment. The part is first brought against the two farthest alignment pins, which involves some intentional overshooting on the part of the robot. The part is then moved diagonally with respect to the three pins, causing it to orient and rest against them , fully fixing its location.................................................................................. 46 Figure 3-9: The precision of the robot when placing parts in the functional tester over 50 trials. For these higher-resolution images, a two-pixel margin of error corresponds to slightly more than 1 pm, allowing the actual part variance to dominate. The maximum linear displacement can be seen to be approximately 30 gm in x and approximately 20 pm in y, and the maximum angular displacement about 0.3 degrees. As it is uncertain which position is correct, all errors have been shifted to have a m ean of 0 im................................................................................................. 48 Figure 3-10: The top-level priority system for the actions of the robot. Each time the robot completes an action, a new action is selected based on this priority system............................ 51 Figure 3-11: Detailing the task the robot will select for a given system state, assuming the dispenser has blank parts remaining. By starting at the indicated blue square and accurately answering each question about the state of the system, it can be determined what action the robot will perform, indicated by a green square, or how the robot will wait, indicated by a yellow square. Red squares indicate that the system has stalled, and correspond to states that cannot norm ally be achieved.................................................................................................................... 53 Figure 3-12: Detailing the task the robot will select for a given system state, assuming the dispenser does not have blank parts remaining. By starting at the indicated blue square and accurately answering each question about the state of the system, it can be determined what action the robot will perform, indicated by a green square, or how the robot will wait, indicated by a yellow square. Red squares indicate that the system has stalled, and correspond to states that cannot norm ally be achieved. .................................................................................................... 54 11 Figure 3-13: A sample task structure where the robot performs tasks sequentially, rather than 55 based on the state of the system ............... ............................................................................... Figure 3-14: A top-level view of the system communications. The mechanism by which the communication occurs is indicated by color. Locations labels include the data stored at that location. The data communicated at each junction is listed at the bottom. .............................. 57 Figure 3-15: Dye contamination occurs due to the back pressure in the functional tester causing bubbles of both water and dye to form (a). When the part is inserted into the functional tester, it makes contact with the red dye bubble (b), and, as it is inserted, drags that bubble into the bubble of water (c). When the part is placed, the water inlet has red dye in it (d)............................... 60 Figure 4-1: Showing the consistency between cycles and average cycle time for the system, as 67 determined by the functional tester.......................................................................................... Figure 4-2: The takt time of parts after slight modifications to the hot embossing and functional testing code to increase efficiency. The overall cycle time has decreased by almost 7 seconds, 69 and there are fewer outliers...................................................................................................... Figure 4-3: The simulated system cycle times as a function of the functional testing time. Cycle times increase linearly with the functional tester while the robot completes its task shortly before the hot embosser opens. The peak corresponds to the robot performing an action while the hot 70 embosser is waiting for a part ................................................................................................. Figure 4-4: The system cycle time as a function of the functional tester processing time, using a different priority set for the robot. While similar to Figure 4-3, the cycle times after the peak are 71 lower. ............................................................................................................................................ Figure 5-1: A run chart showing parts made from two different orders of the PMMA blanks. The red dotted line indicates where the run switched from the first order to the second. A small but 75 noticeable drop in the average channel width occurs at this point. .......................................... Figure 5-2: The box plots of and the results of an ANOVA test on the mean channel widths the parts immediately preceding and immediately following the switch in part orders. The probability of a mean shift occurring given the data is greater than 98%. ............................... 76 Figure 5-3: The average channel width of parts J61 to J120, where parts J91 to J100 have both a higher average value and a significantly higher variation than the rest of the parts. Each ten parts came from its own packet, although only one of the six packets used appears to be distinct...... 77 Figure 5-4: The boxplot and ANOVA test for the group of ten parts which appear to be outliers. Based on this run data, something almost certainly changed. However, whether this was due to 78 the ten part group or some other factor is uncertain. ................................................................ Figure 5-5: The force applied by the actuator on the part during forming, over many cycles. While slightly noisy, the applied force is highly consistent between cycles............................ 80 Figure 5-6: The upper heater temperature of the hot embosser over 60 part cycles. There is increased variance during the heating and cooling steps. During the forming step, temperature is consistent to within about 1 degree Centigrade. No clear trends are shown. ........................... 81 Figure 5-7: The temperature of the lower heater during part forming over 60 part cycles. Because of its lower power, the lower heater had a lower overall temperature than the upper heater, as 82 w ell as a longer rise time. ......................................................................................................... 12 Figure 5-8: The measurements taken by the functional tester when the same part was placed into it repeatedly. These measurements are the average of the four channel widths visible to the functional tester. The grand mean is 65.33 gm, with a standard deviation of 0.31 m............ 83 Figure 5-9: A normal probability plot for the functional tester repeatability test. The data is not completely normally distributed, as higher values are more likely than would be expected. ...... 84 Figure 5-10: The averages of each of the four channels measured during the functional tester repeatability test. The error bars shown correspond to one standard deviation. The inter-channel variation is greater than the variation in the measurements for a given channel...................... 85 Figure 5-11: Part El 1 with the light source on a lower setting (left) and a higher setting (right). The higher light setting has reduced the amount of shadow around the channel, which caused the edge detection software to measure the right picture as having a channel 4 pm narrower. ......... 85 Figure 5-12: The channel widths recorded by the functional tester under two conditions with the primary lighting source. When the lighting was increased, the average part width decreased by about 4 jm, owing to a decrease in the number of shadows seen by the optical measurement... 86 Figure 5-13: Measurements from the same part at varying times of day, as well as with the overhead lighting off. These tests show that the secondary lighting conditions do not significantly impact the part measurements............................................................................... 87 Figure 5-14: A portion of the optical target, as seen from the functional tester. This image was used to confirm the calibration of the functional tester. The lines on the optical target are exactly 50 m wide. .................................................................................................................................. 88 Figure 5-15: The measured spacing of the 50 gm lines and between those lines on the optical target image, at 25 distinct points along the image. The line width is 80 pixels, indicating that 1 pixel corresponds to .625 gm .................................................................................................... 89 Figure 5-16: The test for taping machine variability. Six parts were put through the taping machine 10 times each, with the resulting measurements then recorded. The mean and standard deviation for each part are indicated. The taping machine is a non-negligible source of system variation . ............................................................................................. ,......................................... 90 Figure 6-1: The run chart for the first run of the system to make a statistically significant number of parts. While the system was in control for the first 60 parts, a mean shift occurred at the end. ....................................................................................................................................................... 92 Figure 6-2: The CuSum chart for the initial process run, using groups of n = 3. With this chart, the process mean shift can clearly be seen............................................................................... 93 Figure 6-3: A run chart for the second of the long runs, again showing a mean shift. In this process, the mean shift starts at the beginning and then levels off........................................... 94 Figure 6-4: The run chart for the first 60 parts of the J Series, or third long run. The initial portion of the run shows what appears to be a startup transient, which then levels off, with the rest of the run being largely uniform. A slight discontinuity occurs between parts J19 and J20, where the blank parts were switched from the initial batch ordered to the second batch. However, this switch does not coincide with the end of the startup transient........................................... 95 Figure 6-5: A run chart after the system appeared to be in control. While the process is almost in control, there is a mean shift for approximately ten parts between J90 and J100. There is also a 13 significant mean shift between parts J60 and psrts J61, although the only change was that the system was left on for a little over an hour between the parts.................................................. 96 Figure 6-6: The run chart for the K series, with the forming temperature set to 120 C instead of 115 C. This caused the parts to have a much lower channel width, which was the desired effect. The process continues to be in contrql..................................................................................... 97 Figure 6-7: The high outlier from the K series, part K4. The tape has not properly adhered to the part, causing large amounts of bubbling, which may have prevented the part from being properly 97 measured....................................................................................................................................... Figure 6-8: The process run again with the high temperature at 120 C after a number of minor hardware tweaks. The L series pictured provides the same data from the K series run before the minor hardware tweaks, indicating that the process is still in control...................................... 98 Figure 6-9: The ANOVA test done between the K series and the L series, which shows no significant m ean shift.................................................................................................................... 99 Figure 6-10: The normal probability plot for the combined K and L series. The process is not normal, largely due to the number of outliers with narrower channels. The cause for these 99 outliers is not currently known. ................................................................................................ Figure 7-1: One measurement error incurred during the DOE. The left image shows the measurements of the four channels from part DOE 2. The left-most channel clearly has a much narrower measurement than the other three, and upon closer examination, as seen in the image on the right, the software has measured the distance from the outside of one channel to the inside of the other, rather than the distance between the outside of both channels............................... 102 Figure 7-2: The pattern used by the image matching software to determine that a part is present (left) and a part which the measurement software had trouble detecting, owing to how narrow its 102 channels were (right)................................................................................................................... Figure 7-3: A part where two of the channels have been measured, and a close-up of the two channels that were improperly measured. The edge-finding has recorded the channels as being 103 w ider than they actually are........................................................................................................ Figure 7-4: The average channel widths of parts formed at 115 C, as a function of forming force and forming time. Parts formed at 115 C in this range have a much higher width than the forming parts, as the PMMA only begins to flow at 114 C. Increased form time and force both result in 106 sm aller channels.......................................................................................................................... Figure 7-5: The average channel width for parts formed at 120 C. Parts at this temperature, given higher form times and forming forces, get closer to ideal channel width of less than 60 pm, but do not reach it at these parameters. Increased forming force and form time both decrease channel width, except at the highest forming force when increasing the form time from 30 seconds to 40 seconds........................................................................................................................................ 107 Figure 7-6: The average channel widths of parts formed at 125 C. Here, many of the parts are below 60 gm in channel width, and the graph starts to level off at high form times and forming 10 8 forces........................................................................................................................................... Figure 7-7: The average channel width as a function of forming temperature and forming strain. Forming strain is given by the forming force times the forming time. In this region, forming 14 strain has a much larger impact on the part at temperatures close to the glass transition temperature of the part................................................................................................................ 109 Figure 7-8: The impact of each term and cross-term, along with the probability that the given parameter is statistically significant. All parameters except for the force curvature term are highly significant. ....................................................................................................................... 110 Figure 7-9: The residuals for the least-squares fit model of the DOE data. The predicted fit is highly correlated with the data.................................................................................................... 110 15 16 LIST OF TABLES Table 3-1: The information communicated between the robot and the hot embossing machine and functional tester during the course of system operations. The hot embossing machine and functional tester have the same communication scheme. Data flags are listed in the order that they will occur in a typical cycle, first triggering the machine, then communicating that the machine is done, then resetting the machine to ready it for a new process trigger. ................. 58 Table 4-1: The operation times for each of the tasks of the robot while operating in low power mode. Both ports had to be taught their points separately, resulting in slightly varied cycle times between the ports. Operating in high power mode could reduce these speeds by a factor of 5 or m ore. ............................................................................................................................................. 64 Table 4-2: The travel times of the robot between the machines of the system. These times are largely consistent between ports that are far apart, but for ports close together the time to turn the effector head starts to dominate ................................................................................................. 65 Table 4-3: The part numbers and corresponding cycle times for parts with much lower cycle times than normally displayed by the system. These cycle times are between 1.5 and 2.5 seconds lower than expected from the rest of the data. These lower cycle times likely result from computer communications discrepancies. ............................................................................... 68 Table 6-1: Showing the different part runs done to attempt to achieve statistical control, along with the letter used to designate each of those runs. Unless specified otherwise, each run had a forming temperature of 115 C, a cooling temperature of 60 C, a forming force of 1000 N, a heating time of 60 seconds, a forming time of 30 seconds, and a cool time of 20 seconds. ........ 92 Table 7-1: The parameters to be altered during the designed experiment, as well as the values selected for those parameters. A full 33 factorial test was selected for this experiment, with each point having five repetitions....................................................................................................... 101 Table 7-2: The results of the hot embosser DOE. Five parts were made at each of three levels of the forming temperature, forming force, and forming time. The average channel width, standard deviation, and number of parts at each parameter are shown. Two parts were removed owing to being significant outliers............................................................................................................. 105 17 18 CHAPTER 1 INTRODUCTION Microfluidics devices, which have a large number of applications in the medical industry, can be manufactured in a variety of ways. Soft lithography, micromachining, hot embossing, and injection molding are just a few of the ways these devices can be created. However, as discussed by Perez [1], the hot embossing system has a number of advantages over other methods currently in use, including a much higher flexibility and a much lowers startup cost. The system in question uses PMMA blanks and a hot embossing machine, along with tape, to create a part which acts as a simple microfluidics mixing device. The part can then be tested for quality by both measuring the width of the mixing channels and by determining the location where the fluid is deemed "mixed." Once this data relayed to the hot embossing machine, the system can be kept in control, using the type of feedback selected by the operator. 1.1 Microfluidics Microfluidics is the science of dealing with small quantities of fluid, on the order of 10-9 to 10-18 liters, using devices with channels from tens of microns to hundreds of microns width. These microfluidics devices have a wide variety of applications in research, including the evaluation of protein crystallization, drug development screening, and bioanalysis. [2] In spite of the number of applications, commercial usage is currently limited, in part owing to costs of fabrication of the microfluidics devices. Until cheap, large-volume production of these devices is available, widescale healthcare applications will be limited. While many of the initial microfluidics devices were made using PDMS1, it is not an optimal material for biological testing. Owing to the tendency of PDMS to swell in the presence of organic solvents or to deform under high pressures, PMMA 2 is often selected as the material for microfluidic devices. [3] PMMA, like glass, has desirable optical properties, but can be 1Polydimethylsiloxane, a cast elastomer 2 Poly(methyl methacrylate), a thermoplastic 19 fabricated using hot embossing or micromilling, rather than glass etching. While micromilling can be used to create appropriate width channels, the resulting surface roughness and required post-processing to achieve the desired optical results often make hot embossing preferable. Injection molding is also an option, and while it allows for sufficiently high-volume and low-cost manufacturing for the desired market, the it has a much higher initial cost and lead time than hot embossing, making it undesirable for prototyping and testing, especially compared to the rapid tooling changes allowable by hot embossing. [1] 1.2 Hot Embossing The hot embossing process involves raising an amorphous plastic to slightly above its glass transition temperature and then applying a mold at high pressure to cause the plastic to deform to the desired shape. Plastic is cooled around the tool, then removed. To create microfluidic channels, an additional, optically clear layer is then bonded overtop the plastic. Because the overall flow is small, hot embossing tends to result in lower residual stresses than fabrication techniques such as injection molding. [4] The hot embossing process is shown in Figure 1-1. mold Heating Pressing tttttttt Cooling and separating Bonding Figure 1-1: The four steps of the hot embossing process for microfluidics devices. By applying pressure to a plastic at or near its glass transition temperature, the plastic will locally flow into the shape of the mold, after which it can be cooled and separated. A bonding layer over top seals the microfluidics channels. [31 20 The pressing step of the hot embossing process causes the heated thermoplastic to flow around the mold, creating the desired shape. In this step, the forming force used can cause variations in the final shape of the part. While high forming forces result in an ideal negative of the mold, lower forces may not cause sufficient flow. Figure 1-2 shows the resulting crosssections of a microfluidics channel after the application of various forces. At lower forces, the channel is shallow and wide compared to the mold, as seen replicated under higher forming forces. F- PF=10N N Z F=30N F=1I SN' Figure 1-2: The resulting cross-section of a microfluidics channel, based on the forming force applied. Higher forces cause more localized flowing of the plastic, resulting in sharper channels with steeper walls. This data corresponds to PMMA parts formed at 110 C. [51 There are a number of different bonding methods used in conjunction with hot embossing. Adhesive bonding places a layer of viscous liquid over the thermoplastic, or uses a lamination film. Lamination films in particular are both inexpensive and scale easily to higherrate processes. Thermal fusion bonding and solvent bonding both cause intermolecular bonding between the embossed part and the bond material, with thermal fusion using high temperatures and pressures and solvent bonding using a chemical to which both components are soluble. [6] Various problems arise from these methods. Using a layered adhesive can often block the microfluidic channels. Thermal fusion bonding is time-consuming, and solvent bonding may change the surface properties of the part. For these reasons, lamination films are often considered as a suitable mass-production bonding process. [7] 21 The hot embossing process is, compared to injection molding, high-flexibility, low-cost, and medium-rate. The comparatively longer cycle times arise from the need to heat and cool both the mold and part during each cycle, something not always necessary in injection molding. However, hot embossing allows for the creation of aspect ratios greater than two, which is difficult in micro-molding. [8] Because the tool used for the hot embossing process can be quickly changed, hot embossing provides both low start-up times and high flexibility. Additionally, the ability to easily switch out for a new tool coupled with the comparative cost of the tools makes the process cheaper than injection molding. [4] 1.3 Precision Manipulation Because of the small scale of the microfluidics channels, the hot embossing step must occur with high precision. This requires a precision placement of the parts into the hot embossing machine, which in turn necessitates a form of high-precision manipulation. When moving parts, location errors are introduce both during the pick-up and the placement, which must fall below a certain acceptable threshold based on the system in question. Adhesive forces between the part and the manipulator may add locational errors during the placement step, as do any methods of forceful removal of the part from the manipulator. [9] When dealing with small parts, suction can be a highly precise method of placing parts. A suction gripper uses vacuum pressure to lift a part. Suction grippers, in conjunction with optical measurement, have been shown to be able to reach 10-micron tolerances, and, using a physical boundary for the part such as grooved channels, suction grippers have also been able to reach 2 micron tolerances. [10] 1.4 Process Control For parts to be created in any volume, process control is needed to ensure the quality of those parts. There are a wide variety of potential alterations that a system can undergo, including changes to the material type, alterations to the system equipment, and even variations in the surrounding environment, all of which can alter the final part quality. To keep the parts produced of an acceptable quality, feedback is needed throughout the system. Generally, this feedback 22 control will take one of two forms; high bandwidth feedback within the system machines, and sampling of the final parts produced by the system. [11] To create appropriate system feedback, one or more quantifiable measures of part quality must be determined. These measurements can then be made on completed parts, and the results compared to the expected process value. If the measurements do not fall within an acceptable error, or if a series of measurements show a trend over time, the system has displayed evidence of no longer being in control. When this happens, troubleshooting must take place to determine what has changed or is in the process of changing for the system, so it can be corrected. This enables the system to continue to make appropriate-quality parts. Machine variables for a hot embossing system can include the temperature, pressure, and displacement at each point during the hot embossing process. These values inform on the overall deformation of the part, which indicates how well the microfluidic channels have been informed. The glass transition temperature can also be computed, which provides information about the material of the part in question. This information can then be used to detect shifts in material quality. [12] 1.5 Project Motivation This thesis will, using previously-created embossing, adhesive bonding, and functional testing machines, detail the creation of a small factory capable of producing parts at a rate pre-defined by the hot embossing cycle. The sources of part quality variation and data necessary for the creation of a cycle-to-cycle control scheme have also been detailed. Prior to this thesis, ongoing research has been done to create a controlled system for the production of hot embossed microfluidics devices. A hot embossing machine, measuring forming force, displacement, and temperature, which could produce parts with a cycle time of 110 seconds, was created. [12] A separate device for applying laminate tape to the embossed parts was built, as was a testing machine which could optically measure the resulting channel width of the embossed parts. [13] To move parts between these machines, a precision manipulation system was developed. [14] To create the controlled system, the system had to be fully utilized and an appropriate process control had to be identified. To fully utilize the system, parts had to be moved between machines rapidly enough that the 110 second cycle time on the hot embosser was the system bottleneck, and precisely enough that the optical measurement could be made. Rapid part movement required the creation of time23 efficient movement paths as well as an appropriate prioritization for the various actions which could be performed by the singular part movement machine. This precision required, in addition to the previously developed manipulation system, the identification and reduction of all the additional sources of part location variation within the system. To implement process control on the system, a number of factors were identified. The hot embossing machine needed to be verified to be in a state of statistical control. A design of experiment needed to be done to determine the exact effect of the various process parameters on the final part. The optical measurement had to be communicated to the hot embossing machine, and the hot embossing machine had to be taught the appropriate action to take based on the data received. Once these things were done, the system would be controlled based on a feedback loop from part quality. 24 CHAPTER 2 2.1 PREVIOUS WORK 1 The Part To demonstrate process control for a hot embossing system, a suitable part had to be designed. The part needed clear microfluidics channels, which could be easily measured to demonstrate proof of concept for the system. A simple mixing device was selected, with two input ports and one output port. The channel width on the embossing tool was selected to be 50 gm, and the depth was selected to be 40 Rm. Figure 2-1 shows the features on the tool used to make the part. Additional features, including a grid of squares 20 gm on a side, were included on the tool to increase the amount of data that could be gathered from a completed part. The tool used to create the part was made of bulk metallic glass by Henann [15]. Henann chose bulk metallic glass for the tool after it was shown to be both robust and accurate for use in the hot embossing process for microfluidics devices. Figure 2-1: The tool used to make the part. Two input ports combine via a mixing pattern using 50 pm to a single output port. Additional markers have been placed on the part in case additional measurements were needed. 1121 25 Parts are made from PMMA, using rectangular injection-molded blanks. Originally, PMMA was laser-cut from flat sheets into the desired shapes. However, owing to the high variation in the thickness of the PMMA and associated handling issues, blanks were injectionmolded by an independent contractor.3 Before embossing, blanks are 1.52 0.01 mm thick and approximately 35 mm x 25 mm in area, with three 2 mm-diameter holes where the fluid will flow into and out of the embossed part. A slight indentation in one corner provides an orienting mark. 2.2 Hot Embossing Machine 2.2.1 Previous Versions The first version of the hot embossing machine, created by Ganesan, [16] used an Instron Model 5869 to supply the forming force, with copper platens dispersing the heat supplied via heating cartridges. The cooling system would then run cold water through the platens to cause them to reduce the system cooling time. After poor results with a copper tool, a silicon tool was used. The cycle time took about 30 minutes, consisted of about 10 minutes of heating, 17 minutes of forming, and 3 minutes of cooling. Force and displacement data for each run was recorded. The heater temperature was also recorded, although the distance of the heaters from the part caused this data to not be a truly accurate representation of the system. Figure 2-2 shows the initial hardware. 3 http://www.quickparts.com/ 26 Figure 2-2: The first version of the hot embossing machine, showing the forming platens in the Instron. 1161 For the second version, Dirckx [17] built on Ganesan's work. Using the same Instron, forced heat transfer via heated and cooled fluid was able to reduce the cycle time to 6 minutes, consisting of two minutes of heating, two minutes of forming, and two minutes of cooling. This machine included features to demold the completed part from the tool. However, this method was required a much larger machine to sufficiently heat and cool the fluid, and the resulting cycle time was still higher than desired. In the third version of the hot embossing machine, Hale [18] further reduced the total cycle time to 2 minutes by minimizing the thermal mass between the heaters and the part. The part size was also standardized, to the creation of 1"x 3" parts, rather than the variable-sizing the prior machines were capable of producing. This enabled the tool to be switched to the current one, made from bulk metallic glass. The load application was switched from the instron to a smaller Mead Fluid Dynamics DM-600 x 1" stroke pneumatic cylinder with an integrated load cell. This also helped to significantly reduce the equipment cost. 27 2.2.2 Current Version The current version of the hot embossing machine, built by Bageant, [12] has a cycle time of 115 seconds. Of this time, 30 seconds are used for heating, 30 seconds are used for forming, 20 seconds are used for cooling, and 5 seconds are used for unclamping. The machine includes PIDcontrolled heaters and force provided by a pneumatic bellows, or air spring. A linear air bearing limits the motion to one dimension. The combination of the air spring and air bearing provide low friction, precision linear motion, and eliminate any potential motion outside of the desired dimension. Force and temperature are recorded from the actuators, and an LVDT measures and records the displacement of the system. Figure 2-3 shows the current hot embossing hardware. Key features, including the LVDT, the air bearing, and the air spring (pneumatic actuator) have been labeled. Planar adjustment flexure Thermal stack LVDT Air bearing Load cell Pneumatic actuator 0-frame structure Figure 2-3: The current hot embossing hardware, with key features labeled. [121 28 2.3 Taping Machine A separate machine was created to perform the bonding step of the hot embossing process, as seen in Figure 1-1. This bonding, using a laminate adhesive, or tape, over top of the part, required a method that was both rapid and robust. Our collaborator, at Nanyang Technology University in Singapore, built a machine which semi-automated the taping process by placing a part on a moving stage, which could then be sealed with individual pieces of tape. [19] [20] However, a fully-automated process was desired. A method of continuous taping, with the piece of tape cut into appropriately-sized pieces once it had adhered to the part, was selected and built by Reyda [13]. In the taping machine, tape is unspooled via a series of rollers, then laid overtop parts placed in the taping machine. Parts are moved linearly through the machine while the tape is applied using motor-actuated belts. Force is then applied via spring-loaded rollers to the top of the parts to ensure good bonding between the tape and the parts. Figure 2-4 shows a side view of the taping machine, indicating the path the tape takes as the parts move through the machine. 29 Take-up reel Tape reel Motor removes liner Exposed tape Roll applies pressure 4B @@@@ Motor drives belt 4% Figure 2-4: The taping machine, showing the path of the tape as the parts are moved linearly along the belt. Parts will be sealed with one piece of tape, which is then separated by the adjacent cutter. [13] Once the parts have been taped, the tape is cut to separate the parts from each other. This cutting is done by a separate device next to the taping machine, which parts are pushed into by the stiff tape. Once parts have reached the cutting device, an air cylinder forces two rotary blades over the edges of the last two parts in the machine, cutting them apart. The part that has been separated from the tape ribbon is then removed from the taping and cutting setup by the part manipulator discussed in Section 2.5. An additional effector pushes the cut portion of the tape out of the device. [13] The path of the blades over the taped parts is shown in Figure 2-5. Note that no portion of the remaining tape will hang over the edge of the parts. 30 Figure 2-5: Three parts that have been embossed, with the tape placed overtop of them. The dotted lines show where the tape will be cut to separate the parts, and the arrow shows the direction the parts move within the machine. [13] 2.4 Functional Testing A crucial part of the process control for the automated system is an automated way to measure the parts produced. To this end, a machine was designed and built by Reyda to determine the quality of the parts produced by the system. This machine has a cycle time of 85 seconds for a full functional test, or a shorter cycle time of 17 seconds for just the preliminary optical test. The functional tester takes a zoomed-in image of a part, then analyzes it to determine if it has been properly formed. This analysis first determines the minimum light intensity of the part and the overall standard deviation of the light. If the minimum light intensity is below a threshold value and the standard deviation is above a threshold value, the part is determined to be present. Key features of the part are matched to a pre-recorded pattern, which is also used to determine whether or not the part is present. If the part is present, the pre-recorded pattern is used to determine whether or not the part is sufficiently oriented. If the part is more than 4' rotated, the fluid ports will not properly line up, and the part is recorded as being improperly oriented. [13] If the part is present, the channel widths are measured using this zoomed-in image. Edge detection is used in the regions where the channels are expected to be, based on the pre-recorded pattern. This edge detection finds the outer channel widths at several locations and averages them to find the width of each of the four channels. These four widths are recorded, as is the average and standard deviation of the four widths. Figure 2-6 shows a raw image from the zoomed-in camera, as well as an image with the functional tester's data recorded on it. 31 Figure 2-6: A zoomed-in image of a part in the functional testing machine, and that image with the data from the functional tester recorded on it. The average width and standard deviation measures in the upper-left corner are based on the four measured channel widths. The information in the upper-right corner is used to determine the presence of the part. The TRUE label in the lower-right corner indicates that the part may have fluid flow through it. 32 If the part is both present and oriented, red dye and water are flowed through the two input ports, and a less-zoomed image taken of the resulting fluid mixing profile. Red dye was selected because of its strong visibility, given a green filter over the main light source and a grayscale image. By looking at the standard deviation of the light intensity across a channel, the extent of the mixing at that location could be determined. Figure 2-7 shows images of both the mixed and unmixed channels before and after the standard deviations were labeled. The unmixed channel has a much higher standard deviation than the mixed channel. 94 18 31 42 01 _99, 0 9 9 4WO4 -0 7 Figure 2-7: The standard deviation of the intensity across both an unmixed and a mixed channel. The mixed channel has a much lower standard deviation because of the more uniform intensity. [131 The mixing data from the functional tester encountered a few problems during testing. Because the fluid from the ports had a tendency to slightly bubble up from out of the o-rings where the ports interfaced with the functional tester, inserting the part tended to cause red dye to get into the source for the water. This caused the water to be slightly mixed when it entered the part, interfering with the mixing location measurement. Additionally, the mixing location was much sooner in the channels than was expected. More mixing occurred at the bends than was expected, which caused problems because of the lack of data gathered at the bends. However, the initial channel width measurements still provided the necessary data for the process control of the system. 33 2.5 Epson Robot For this system, an Epson G10 [21] materials handling robot was used. The choice of a robot was based on a combination of flexibility and precision4 over many cycles. Because of the nature of both the hot embossing process and the part testing procedure, parts were required to be accurately placed in a number of locations. However, owing to the ongoing development of the system, those locations were subject to change as machines were introduced or modified. Because of these potential changes, a conveyor belt or other fixed approach of part movement was ultimately deemed impractical. The selected robot requires only a simple reprogramming to accommodate a new machine, a machine redesign, or the movement of an existing machine within the system. Because the parts would remain horizontal for all processes, a 6-axis robot was not needed, so a 4-axis SCARA (Selective Compliant Assembly Robot Arm) could be used. This also eliminated the variability that would have arisen from the additional, unneeded dimensions. Of the available SCARA options, an Epson GlO was chosen because its range and precision were deemed the best for our system. [14] The Epson GlO contains four distinct joints, enabling the manipulator to move within three dimensions with angle of the end effector controlled by the fourth joint. Joint one rotates the links of the manipulator around its base parallel to the floor. Joint two rotates the remaining links about the end of the first link, again parallel to the floor. This enables the end of the manipulator to obtain any position within that plane. Hard stops can be added to each of joints one and two to limit the total rotation, as well as the position of the end effector. The third joint controls the height of the end effector, and the fourth joint rotates the end effector to allow it to be positioned at the desired angle. The four joints of the G10 Epson robot are shown in Figure 2-8. 4 The Epson GlO has a working radius of 850 mm. It has a precision of 10 pm in joints 1 and 2, 25 pm in joint 3, and 0.005 degrees in joint 4. 34 Joint#2 (mlbing) Jokt#3 and #4 Joint #1 Ami #1 ++ ((rots")g Ann ) MOM~ Figure 2-8: The four joints of a G10 Epson robot, which enable it to move in all three dimensions, with one axis of rotation. Hard stops may be applied to joints 1 and 2 to reduce the range of motion. [211 The Epson G 10 robot is responsible for the transportation of parts between the machines, as well as into and out of the system. Once blank parts have been loaded into the dispenser by an operator, the system can run autonomously, with the robotic manipulator keeping track of the location of all parts within the system as well as moving those parts when necessary. By keeping track of the part locations as the parts were moved, the robotic manipulator was able to determine the optimal action for the system at any given time, and then perform that action. Owing to the precise nature of both the embossing of the parts and the image acquisition during the functional testing, parts need to be loaded into machines with a precision of less than 0.5 mm. Because of the lack of feedback surrounding the system, part location needed to be well-controlled at all times. Additionally, because of the introduction of slight variations at various points into the system, a three-point alignment system is used at all critical steps to verify that part location is within the required margin of error. This three-point alignment consists of 35 three pins, which anchor two sides of the parts as well as preventing them from rotating. The part alignment is further discussed in Section 3.3. This robot enables the system to be fully automated, removing any variance that might arise because of differences in human manipulation. The full automation is also beneficial in that it allows the system to consistently operate at peak or close to peak capacity, without relying on an operator at all times. For the purposes of system rate, the hot embossing has been determined to be the bottleneck process, and thus the prioritization of the robotic manipulator is heavily weighted towards keeping the hot embossing machine running at all times. System prioritization is discussed in Section 3.4, and system efficiency is discussed in Chapter 4. 36 CHAPTER 3 ROBOTIC HANDLING SYSTEM Within the system, the robot was required to move parts to achieve the highest possible production rate. The robot would pick up parts from the part dispenser and step them through the system, to the hot embosser, the taping machine, and the functional tester. After removing parts from the tester, they would be place in the finished parts bin. The parts needed to be placed in both the hot embosser and the functional tester with less than 0.5mm error during each cycle. Figure 3-1 shows the system that the robot interacts with. The part dispenser, hot embossing machine, taping machine, cutting machine, functional tester, and finished parts bin are all labeled. Figure 3-1: The manufacturing cell layout. Parts go from the dispenser (1) to the hot embosser (2), then are transferred to the taping machine (3) and cutting machine (4). From there, they are placed in the functional tester (5) and finally the finished parts bin (6). 37 3.1 Safety In order for the Epson G10 to be safely used, operators and observers must remain at least 1 meter from the work envelope at all times. To enforce compliance with this safety standard, a Sunx Type 4, SF4B series laser curtain is used in conjunction with a SF-C13 Sunx Safety Control Unit. The system was placed in the corner of a room, with the emitter and receiver for the laser curtain placed at each of the two walls forming the corner. A mirror was erected between the emitter and receiver to create a sensor along the two free edges of the system. The control unit was then wired into the Epson G 10 emergency stop, causing the system to enter an emergency stop state whenever the laser curtain was interrupted at any point. By placing the laser curtain at least one meter from the work envelope of the robotic manipulator, safe usage of the robotic manipulator can be ensured. An additional concern is contact with existing machines, especially during a system startup. While the robot has a series of hard stops, which can drastically limit the work envelope, the system's machines are, by necessity, within the work envelop. During the system steady-state, all paths are known, and programmed to avoid cgllisions with the existing machines. However the position of the robotic manipulator at startup is unknown, and thus a specific path cannot be assumed. To avoid this issue, the location of the robot is determined at system start-up. The manipulator is then moved at the slowest possible speed, in low-power mode, to a predetermined location. This movement path takes into account the location of the manipulator, with specific paths being generated should the effector head be located within one of the machines in the system. This enables the manipulator, starting from anywhere in the system, to move to a given starting location safely. The starting location is used any time the system is run, including after a sudden disconnect or emergency stop. The programming which governs these movement paths is included in Appendix A. 38 3.2 End Effector Design The end effector design selected included both a talon for part alignment and vacuum holes to lift and hold the parts. The end effector is shown from the side and bottom in Figure 3-2, along with the location of the part relative to the vacuum holes. Hook Milled area Vacuum holes -- Figure 3-2: The robotic end effector, formed from a hollow vacuum channel with holes to create a seal against the part. The talon or hook on the end of end effector allows for part manipulation independent of the vacuum. The two ports on the end effector allow for the simultaneous transportation of two parts. [131 This end effector design was selected to allow multiple parts to be carried and to allow interface with all of the machines in the system. The long, narrow end of the effector head is able to fit into the functional tester and the hot embosser. 39 The double-ended nature provides an effective buffer, allowing the robot to remove a completed part and insert a new part at a given machine without traveling to a different machine. This is greatly beneficial at the system bottleneck, the hot embossing machine. With only one effector head, the robot would have to pick up a finished part, place it at the next station, pick up a new part, and place it in the hot embossing machine. With the addition of a second effector head, placing the embossed part and retrieving a new blank part are eliminated from the sequence of events. This shortens the time the hot embosser is not in use by eliminating several required actions. With one effector head, a part must be removed from the hot embosser, placed, a second part picked up, and that part then placed in the hot embosser. With two effector heads, if the robot is already holding a blank part, the number of necessary actions is reduced to simply removing a part from the hot embosser and placing the next part. Thus, the amount of time the robot would spend placing the first part and picking up the second part is eliminated from the maximum cycle time. The vacuum is transmitted from the vacuum ports on the G10 robot to the effector head of the robot through vacuum tubing. The effector heads are hollow, allowing them to retain the vacuum when parts are placed against the vacuum holes. The vacuum is sufficient to hold one or both parts simultaneously. Even if a part is dropped, the vacuum loss does not cause sufficient lack of pressure for the other part to fall. 3.3 Precision Part Manipulation In both the embossing machine and inspection station, the positioning of the workpiece in the machines is critical. This alignment effects everything from where the device channels are on the substrate to where the inlet and outlet ports are for the functional test. Precise placement also makes the measurement more repeatable. 3.3.1 Requirements for Precision The robot must be able to consistently pick up parts from each location. As the effector heads on the robot have only four vacuum holes, the parts must be in such location that those vacuum holes are able to come into contact with the parts. The precision for the robot is thus dependent on the range that the vacuum holes can cover while attempting to pick up a part from a given location. However, large amount of variance within the potential range of the vacuum 40 holes are still undesirable, as they then require excessive alignment times to make sure that the vacuum holes have achieved proper contact. With respect to part location variation, there are three degrees of freedom. Parts can be a varying distance along the effector head, considered to be variation in the x dimension. Perpendicular to that, parts can be to one side or the other of the effector head, which is variation in the y dimension. Parts can also rotate in one dimension, in-plane with the two position variations. Parts cannot be in varying positions in z, nor can they rotate in either of the other two dimensions, as any of these location variations will prevent the vacuum from connecting with the part, causing the part to be dropped immediately. Figure 3-3 shows the three degrees of freedom of the part on the effector head. (a) (b) (c) Figure 3-3: The three degrees of freedom of the part on the effector head. Parts may be shifted in either of the two planar dimensions (a) (b) with respect to the effector head, or rotated. (c) Parts cannot be shifted or rotated perpendicular to the planar effector head, as this would cause the vacuum holes to not adhere to the part, and the part to be dropped. Once the robot is able to pick up parts, it must be able to place parts within the hot embosser for the purpose of accurate embossing. The hot embosser has two main constraints on placement. If the part is poorly positioned in y, the robot will be unable to place the part within the hot embosser, as the part will contact one of the demolding fingers rather than slotting between them. The other constraint is relevant to the accuracy of the embossing process. If the part is placed imprecisely, the pattern will be embossed onto the wrong location of the part. This can lead to a part that the functional tester is unable to properly process, or, in extreme cases, a part that is defective and cannot allow fluid flow. The robot must also be able to place parts within the functional tester for the purpose of accurately analyzing the finished part. Like the hot embosser, a poorly positioned part can result 41 in the inability of the robot to place the part within the functional tester. The functional tester uses a camera with a very narrow field of view. Because of this, the image matching software is unable to match the patterns on the part images if the embossed pattern is misplaced by more than 500 microns. This 500 microns is cumulative between the positioning at the hot embosser and the functional tester. Additionally, poor alignment within the functional tester will cause the ports on the part to not line up with the ports in the functional tester, preventing fluid flow. The taping machine requires the least accuracy within the system. The machine is built with high robustness to part placement, of up to several millimeters in both x and y, as well as rotations of several degrees. As long as the part is placed within this range in the input area, it is oriented and funneled into the precise location required by the taping rollers. Once it is appropriately located, the precision is maintained until it reaches the cutting step, where a hard fixture ensures a consistent cutting location, as described by Reyda. [13] The final placement of the part is within a tray used to collect completed parts. As such, precision lower than that required by the robot to pick up the part on the vacuum holes is needed to place the part. 3.3.2 Sources of Variance in Part Placement Each time the part is moved, a small amount of position uncertainty is introduced. Variation also occurs from the operations of the different machines, as well as being introduced at the start of the system. At the start of the system, the blank parts are stacked in a dispenser. The dispenser, shown in Figure 3-4, has a stack of parts that are moved to the top via a spring. As each part is removed, another rises to the top to take its place. Because the dispenser needs to provide minimal friction to allow for the sliding of the parts, the exact location of the blank parts within the dispenser is uncertain. This uncertainty exists in the angle of the part relative to the dispenser, as well as where the part is located in both x and y within the dispenser. Figure 3-5 shows an example of a part in the dispenser with unknown x, y, and orientation. 42 Figure 3-4: The part dispenser, holding approximately 20 parts. The spring forces the parts to the top of the dispenser, from where they can be removed. Figure 3-5: An example part in the dispenser, showing the variation in x, y, and orientation which may result from the dispenser. Position variation is also introduced when the hot embosser raises the part against the demolding fingers as the platens open. This causes the part to fall a slight distance when it is removed from the tool. This can cause motion in both x and y, as well as to rotate. Although the functional tester does not have demolding fingers, the abrupt nature with which it opens also causes some movement of the part in a similar manner. The largest source of location variation within the system comes from the cutting that takes place after the part is processed by the taping machine. Because pressurized air is used to 43 move the cutting device, and because it must be able to quickly slice through the tape ribbon, a large amount of force is applied to the base of the cutting device during each operation. This causes vibration in the base, resulting in a large movement and rotation of the part in question. Once the part has completed the functional testing process and is no longer needed within the system, it is dropped into a tray from a height of approximately 10 centimeters, resulting in an extremely high position uncertainty. However, because the part no longer needs to be retrieved for further operations, this variation does not have a negative effect on the system. A system of final placement that leaves the parts in the correct production order would be best, but currently the retention of part order is accomplished by labeling the parts before they are put in the dispenser. 3.3.3 Reduction of Variation Reduction of variation takes place both when picking up and when placing a part. This reduction is focused on parts immediately prior to and during their placement in the hot embossing machine and the functional tester, as these are the machines which require high precision in placement. At the dispenser, the part is moved against both the end effector talon and the dispenser wall, fixing it in x, y, and orientation. First, the effector head is lowered over a part. The effector head then begins to withdraw the part from the dispenser with the vacuum off. This causes the part to rotate into alignment with the effector head, fixing its orientation and x. To fix the y dimension, the vacuum is turned on and the effector head is moved perpendicular to the first direction, causing the part to move against the dispenser wall. This gives it a known location in both x and y. The part can then be removed from the dispenser without loss of precision. Figure 3-6 shows this orientation process. 44 (a) (b) (c) Figure 3-6: The alignment of a part when being retrieved from the dispenser. The location of the talon is indicated with the dotted line. The part starts unoriented in the dispenser, with the effector head lowered over it. (a) The part is then pulled straight out of the dispenser, aligning it against the talon on the endeffector and orienting it. (b) The vacuum is then activated and the part is moved against the side of the dispenser, which causes its location to be fully known. (c) When placing parts in the hot embosser and functional tester, a three-pin system is used for alignment. Two pins in the back of the machine are used to ensure that the part is correctly oriented in x and rotation, and the third pin is used for the y alignment. This alignment system was originally used by Zarrouati. [14] A part would be placed sufficiently far away from the pins that, knowing the expected variance in the initial part location, it would never intersect the pins. The part was then pushed from first the x direction, then both the x and y directions. The pushing was done using a compliant pusher, and the distance travelled by the compliant pusher was far enough to overshoot the pins, based on the knowledge of the original variation in its initial placement. This scheme, depicted in Figure 3-7, would fix the part location against the three pins. a) C) b) o 0 0 0 0 0 Figure 3-7: The initial method of part alignment against the three pins. Parts are placed sufficiently far away from the pins such that, given the variance in their location, they will never overlap with the pins. (a) Parts are then pushed towards the back pins. (b) Finally, parts are pushed against all three pins. (c) 45 There were two drawbacks to this alignment method. The first was the number of movements required to position one part. To push the part, the robot would have to move back far enough to overshoot the edge of the part, then use its compliant edge to move the part forward. The second drawback involved the rubber used to make the compliant edge, which would periodically stick to the part and disturb its location. When the new effector head was designed, this issue was addressed by creating a surface the part could slide against on the effector head. This enabled the robot to place the part and then overshoot the pins while the vacuum was still on, causing the part to move until it reached the pins, then remain stationary while sliding against the effector heads. This alignment is shown in Figure 3-8, with the part contacting the two back pins to fix orientation and one dimension, then sliding into the third pin to fix the second dimension. (a) (b) (c) Figure 3-8: The orientation of a part using three-pin alignment. The part is first brought against the two farthest alignment pins, which involves some intentional overshooting on the part of the robot. The part is then moved diagonally with respect to the three pins, causing it to orient and rest against them, fully fixing its location. To implement this scheme, the part is placed such that the maximum possible position error would place the part away from the alignment pins, shown in Figure 3-8 (a). The robot then moves a fixed increment in x such that contact with the back pins is ensured. To do this the robot overshoots the point of contact, causing the part to slide on the end effector to accommodate the motion. Once in contact with the rear pins, the part is now aligned in rotation and x position. A simple translation in y, again overshooting the expected pin position, creates the y alignment. This overshoot is carefully selected to both allow for slight variation in the location of the part on the end effector and to prevent such large overshoot that the part would be removed from the vacuum holes of the effector head. If a part is pushed off of the vacuum holes, it will come off of the effector head, falling and causing a slight variation in location. However, by having the 46 part remain on the vacuum holes in spite of the overshoot, the robot is able to lower the part into place before turning off the vacuum, causing it to be successfully placed with suitably high precision. To test the precision of the part placement by the robot, one part was placed in the functional tester 50 times, and its location and orientation measured each time by the optical system, which has a resolution of 0.6 pim / pixel. Parts were manually positioned in the taping machine in between tests, causing them to have a slightly wider range of locations on the end effector prior to placement. To determine the errors in x and y, the pattern-finding software described in Section 2.4 first identified the location of the pattern on the part, then drew a box around the pattern. The change in coordinates and rotation of this box was used to measure the change in x and y of the part. As seen in Figure 3-9, the maximum linear error is about 30 pm in x, but is less than 20 gm in y. The maximum angular error is about 0.3 degrees. As the functional tester requires linear error of less than 500 jm, and angular error of less than 4 degrees, this precision is well within the acceptable error. The measurements have been shifted to have an average error of 0 gm. 47 X position of Placement Tests within Functional Tester 40 30 ----- I I I ----- ------ - ---- I I i I a=9.7242pRm ----- ------------------- ------ --- -10 M -20 0 -30 -4L 5 0 ------ I----- --- - ---- 1 15 20 2-3-5-045 10 15 20 30 25 Trial Number - - --- - E 20 5 45 40 35 50 Y position of Placement Tests within Functional Tester V 4l ------ ----------- ----- 30 ------------- ------- ----- -a= 5.8824slam 20 E 10 0 E -10 -20 - -- - - - - ---- --------|------4---- ---- - ------ ---- - - -- C U) -30 I An -I.', 5 10 | I 15 20 I| 30 25 Trial Number 35 40 45 50 Angle of Placement Tests within Functional Tester 0.6 --- 0.4 = 0.1034 gm ~ ~~ -- , -- --- --- ----- - ---, -- , ---- --- - - --r 0 -0.2 ----------- ------'I----- ------- ----- L- --- 0-0. C -0.4 0 5 10 15 20 30 25 Trial Number 35 40 45 50 Figure 3-9: The precision of the robot when placing parts in the functional tester over 50 trials. For these higher-resolution images, a two-pixel margin of error corresponds to slightly more than 1 pm, allowing the actual part variance to dominate. The maximum linear displacement can be seen to be approximately 30 pm in x and approximately 20 sm in y, and the maximum angular displacement about 0.3 degrees. As it is uncertain which position is correct, all errors have been shifted to have a mean of 0 pm. 3.4 Autonomous Programming Because the system needs to run at high speed for long periods of time, manual operation of the robot is highly undesirable. As such, the robot was programmed to be able to rapidly move parts 48 throughout the system, concentrating on the system bottleneck at the hot embosser. In order to accommodate varying machine processing times, as well as potential start states and failure modes, a task-oriented system was selected over a fixed series of actions. 3.4.1 Specific Tasks The robot can select an action from seven distinct tasks. Generally, any action that changes what the robot is holding is "a task." Retrieving a new blank from the dispenser is one task. Placing that blank in the hot embosser is another task. Retrieving an embossed part from the hot embosser is a task. Placing an embossed part in the taper and picking up a taped part are both tasks. Placing a part in the functional tester is a task. Picking up a tested part from the functional tester and placing it in the completed chips tray is one task, not two, as there were determined to be no benefits gained from holding a completed part and postponing placing it. One additional task, which does not impact what parts the robot is holding, consists of prepositioning. If the robot is idling, it will remain where it was when it ended its previous task. However, if the robot is only waiting for one machine, it will preposition itself to be close to that machine in anticipation of the next task it will perform. An example of the programming used to cause the robot perform a specific task has been included in Appendix A. The points referenced in the code are included in Appendix B. From this list of tasks the robot determines which tasks can be completed by looking at the current state of the system. The hot embossing machine and the functional tester send their state, finished or running, to the robot in a signal Boolean signal. The robot software keeps track of how many parts the robot is holding, and whether those parts are blank, embossed, taped, or tested. The software internal to the robot also keeps track of how many blank parts are left in the dispenser, and whether the hot embosser and functional tester contain parts, regardless of the current state of those machines. The taping machine does not provide feedback, and as such a timer is used to determine whether it has completed running. As the taping machine has a highly consistent runtime, the alteration of the timing of the taping machine was deemed less critical to system flexibility than that of the functional tester or hot embossing machine. Based on the state of the system, the internal software of the robot goes through the list of potential tasks and disqualifies those that cannot be performed at that time. For example, a task that requires the retrieval of a part is disqualified if the robot is holding two parts. Tasks that 49 require the placement of a part in a specific state are then disqualified if the robot is not holding any parts in that state. The state of the embossing and testing machines are then considered. Tasks that require part retrieval from or placement to a machine that is currently running are disqualified. Finally, tasks that require a placement of a part to a machine that is currently holding the maximum number of parts are disqualified. Two additional factors arethen considered. Several states will cause the system to jam such that no possible action can be taken. One example occurs when the hot embossing machine has completed a cycle and the robot is holding two blank parts. The robot is unable to remove the part from the hot embossing machine, because it is already holding two parts, but at the same time it cannot place either part it is holding, because the hot embossing machine is full. Tasks that cause the system to enter an unworkable state are thus removed from the task list. Finally, if no task can be performed, the robot will consider what task it could perform, independent of which machines are currently running. If this list has only one task on it, the robot will move to the machine corresponding to the task in question. The programming governing the selection of the next task is included in Appendix A. 3.4.2 Task Prioritization Once the robot has determined the tasks that can be performed, the highest-priority task is performed. The priority of tasks has been weighted to ensure that the hot embossing machine, the system bottleneck, is occupied at the highest possible rate. Thus, the retrieval of chips from and the insertion of new chips to the hot embosser occupy the highest priorities. In order to provide a rapid turn-around of parts to and from the hot embosser, ensuring that the robot is holding a blank part with one empty slot are important, and the order of the remaining tasks centers around making sure this happens as often as possible. Figure 3-10 shows an overview for the actions of the robot as they are prioritized. 50 START Iyes a chip in the hot embosser? I Can the robotput I no Is the robotcurrently holding a blank chip? I -f H'I Can the robot pick up a chip from the hot embosser? Can the robot put a chip in the testingmachine? yes I \ /no I IZ I "1*@ !F - Can the robot pick up a blank chip? I yes no Can the robot take a chip out ofthe testing machine and drop it? I yes 'Ino Can the robot put achi in the toping machine? | I no yes Can the robot take a chip from the hot embosser? I no yes Can the robot pick up a chip from the taping machine? zero I1no How many machines are currently running? mo one System complete ll w~I Go to &hemachin that is running Figure 3-10: The top-level priority system for the actions of the robot. Each time the robot completes an action, a new action is selected based on this priority system. 51 To ensure that the correct task is being performed, a more comprehensive flowchart is also necessary, documenting the exact state of the system and mapping the action of the robot accordingly. For simplicity, the system state has been split by whether or not the dispenser has additional blank parts remaining and the robot is holding one or fewer parts. Note that the case where the robot is holding two parts is identical regardless of whether or not the dispenser has parts remaining, and is included in the case where there are parts remaining. Figure 3-11 shows the robot action flowchart for the case where the dispenser has parts remaining, and Figure 3-12 shows the robot action flowchart for the case where there are no parts remaining and the robot is holding one or fewer parts. 52 0t o o CW E rA0 eD= m* - 0 -~ 0 C CL CL M C running Wait *F Wait by the hot embosser machine full? empty no Isthe taping machine full? state? no no sembossed F--machine running? ysmachine ye isthe taping no machine fl? ysn T_k a patfo h functional tester and -it away no Isthe hot embosser full? ta Take a part from the tapingmachine Sal o yes no u at=nh e esrrunnfrom tserungL__emboser~ Is the functional Is the taping machine running? no te ho mbse running? es no Take a part from the taping machine aeapr the hot empty/ running a part from the functiona tester and put it away done tal Take a part from the hot embosser taping machine State of the functional tester? ysWait wait by the taping machine (drop-off) Is the taping machine running? machine e ys Wait by the taping (drop-off) taping functional tester? part? Vmoser Istheraprtnth no Put a part in the functional tester ~~~What isthe tpd tp embossed j ve It What isthe other part? blank mbseI--is the taping ys the functional full? tster ullmachine ta Pu a part in the -Pick up a blank part~Take yes machine running? is the taping nebssr from the hrot IYes 71s the functional tse runig e teput done a part i the empty no the hot functional Take apart from tester the functional tester and put it awayis yes Is the taping Taeaprte Hot embosser state? done done Functional teserstaePut tester state? running Put apart in the tempty Hot embosser stte -' running embossed blank hot embossern Dikdu? prs t- be W-ait no part yes the robot is holding? Go to other ~ blank fiowchart flowchart Are there blanky 'no Is there a part in ysother Pick up a blank part tap no is the functional tester full? What is the othFpa yes s there a part in the i~- p~,- n -- he, etr fntoa Htped functional tester IIno no part START: What is the least-processed part eeD CL o CL W~ e9 .1 04 9+ o *- e'D 4 SYSTEM etr frmche Tak e ~ ~~ r emby/ Se e t embo-ser mp Wait o japr tn s a nie hot ex ~~ ~ machinefull? emtn th e it Semoe rputn hmdnazrchi machine fntinltester and par aes an nlnk p running oneser y taped part frm h o h o on Is ttpn~a~h e t apig achn emply~~n Takeo at dr ett eo eembsssr? dnWi (rn-ing) atb the taping 4e t machine r dopynta e ucioaesse dsoneepig roboh in g ul ? mahnefbosuctsaemcin e Iwybak htprs the boser n P emps wcatemt hotsr? rnn State of the e tester Stat oh the runinning ser hotndone eof oss e fromthg ebsser the Put hoembse 3i emb n Wait neo eerG e running? maie runnindg? W t yth d a p u n eyfe Tok fewrr noo Gothehre ch e sero rnig oote bthtan machin (pickup)n ak aprtro Wai Taskheapn ys Watb ah pat byo the tpn pikp Stat et boser ? one Innigys a aer;fomssie empty artunningu pr nth rmth o untoa tseTaeapr runicioa mucia teser Ho matys Istetp n y parts pty e r obotg hosd ? Wap it byuei TssTeT? robot isholdin ? U Pr mac e fllb running fucinl epy htebse done s.emosr s mt ucinltsee tate of the hot empHwtyypat i embosser? rnigysTk et ,,SaRTchie rbis of the holon Take a part from thetaping machine yes ah efum m State hot ~ ~ ~ ~ ~~ ~~ ~~morState ~ ~ of~the~ em ofe by sh taping Wai mosrIs the tap ing fr yt e s dachin o yes e s ake a st e ,tat och ne noAn m ho empty|~~emoser p neItet taigtta igch as them COMPLETE unn si An alternate control scheme has the robot do parts in a predetermined order. The robot would have a list of tasks, and as each task was completed, the robot would perform the next task on the list. Figure 3-13 shows a sample sequence of tasks that the robot could perform under such a system. This format is not desirable, however, as it is not flexible enough to quickly deal with a variations in system timing or any faults that may arise while the system is running. Pick up a new parm Take a part from the functional tester. a part from the STake embossing machine. K Put a part in the embossing machine.I functional tester. I Take a part from the taping machine and drop it. Put a part in the taping mach Put a part in the ; Figure 3-13: A sample task structure where the robot performs tasks sequentially, rather than based on the state of the system. 3.4.3 System Fault Recovery As the system has been created to perform robust manufacturing, the recovery of the system from various faults is an important consideration. The autonomous recovery faults internal to the robot software are those concerned with the loss of a part in between retrieval and placement. Because of the task-based nature of the system, however, the system state merely needs to be updated to account for a missing part, and the robot may then select the highest priority task as normal. This is especially important concerning the hot embossing machine, as it is the bottleneck. Given the high priority of doing so, a part missing from the hot embossing machine will cause the system to place a new part in the hot embossing machine as soon as possible, often immediately. 55 3.4.4 One Effector Head To increase system flexibility, the system has also been programmed to account for the possibility that one of the effector heads is broken or otherwise inoperable for some reason. In this state, only one of the two effector heads may be used, and the possible tasks are updated accordingly. This includes the tasks that may potentially render the system inoperable. The system priorities are not updated. This is because if system efficiency is a concern, it will generally be more advisable to repair the broken effector head and accommodate the associated downtime than to run the system with only one effector head. 3.5 System Communications Because of the wide variety of hardware and software in the system, a way for the various machines to communicate during the running of the system was crucial. LabView was selected owing to its ability to interface with both the hardware used and the RC+ software used by the Epson robot. Additionally, the Arduino controller used in the taping machine received hard electrical signals using the bank of switches included inside the RC- 180 controller for the Epson robot. The overall communication scheme used is shown in Figure 3-14. Whether communication and processing occur via hardware, LabView, or RC+ is indicated by color. The data transferred at each juncture is listed at the bottom. 56 System Computer Feedback Analysis/Process Brain System Information Hub Chip Quality to Process Alterations HEM Status, Testing Machine Image Analysis/Data Acquisition Status Images to Chip Quality Parameters, Testing Machine Status HEM Controls Process Parameters I Robot Brain Chip Locations, Chip Motion decision making 0 Hot Embossing Machine Hardware Labview Epson RC+ 4, 2Functional Tester Images Taping Robot Controller Machine HEM > Computer < Temperature data < > Temperature control Pressure data < > Functional Tester Computer C - Image 1 Image 2 > Cycle Status 1E > Force control ' - Computer Displacement data < Robot < Start -) Robot Control - Rr+ Pro rammin g > Taper c g > Motion Sequence Robot Status Figure 3-14: A top-level view of the system communications. The mechanism by which the communication occurs is indicated by color. Locations labels include the data stored at that location. The data communicated at each junction is listed at the bottom. The hot embosser and the functional tester both have their own LabView VIs, as does the robot, which are part of a project on the same computer. These VIs communicate via global variables. The hot embossing machine and functional tester use similar communication schemes, while the taping machine, because of its simplicity, has its own communication set-up. While most communications take place on a much smaller timescale than the rest of the system, the interface between RC+ and Labview is slightly slower, resulting in a delay of somewhere between 0.1 seconds and 0.5 seconds in between each of the actions of the robot. When the robot has placed a part in either the hot embosser or the functional tester, the RC+ turns on a start flag for the machine in question. This start flag is then propagated to the Labview VI for the robot, where it turns on the global variable corresponding to the appropriate machine start flag. Once the machine receives the start flag, it starts its cycle. The start flag is 57 turned off by the robot after a given duration of time. This duration was chosen to be 2 seconds to give sufficient time for the signal to propagate without risking giving a machine multiple start triggers. Upon the completion of the cycle, the machine activates. a 'completed' flag, which in turn propagates back to the robot. Once this has occurred, the robot removes the part from the machine and activates a 'reset' flag, again for 2 seconds. This reset signal causes the machine to deactivate the 'completed' flag as well as ready it for a new cycle. One additional flag internal to the robot makes sure that the 'completed' signal will not trigger a second part retrieval before the machine was reset. Table 3-1 shows these flags in the order that they occur during a cycle, as well as what activates and deactivates them. Turned Off By Effect Data Flag Turned On By Machine Start The robot, when a The robot, after a given Causes the machine to Cycle Completed duration of time The machine, when The machine, when it is Causes it has Reset Machine to The robot, removing the robot to finished reset to prepare it for the remove the part from the next cycle processing a part "Ready" start its processing cycle part is placed a machine when it can while The robot, after the part Changes the machine from part has been removed from the completed state to be from the machine the machine ready for a new part Table 3-1: The information communicated between the robot and the hot embossing machine and functional tester during the course of system operations. The hot embossing machine and functional tester have the same communication scheme. Data flags are listed in the order that they will occur in a typical cycle, first triggering the machine, then communicating that the machine is done, then resetting the machine to ready it for a new process trigger. With respect to the taping machine, the Epson RC-180 controller used in conjunction with the Epson G10 robot includes a bank of switches that can be triggered by the robot's internal software. One of these switches was used to send a voltage to the Arduino controlling the taping machine, which signaled the start of the taping process. This switch was activated for two seconds upon the placement of a part in the taping machine, then not activated again for at least the 25 seconds required for the taping machine to complete its cycle. There was no feedback from the Arduino to the rest of the system. 58 3.6 System Failure Modes During the process of integrating the system, several failure modes became apparent which were not present in the individual portions of the system. Not all failure modes occur or occurred during every cycle, and as faults have been discovered, the system has been modified to provide a very high overall success rate. 3.6.1 Hot Embossing Machine Lower Platen Height In the hot embossing machine's current design, the lower platen is raised to the upper platen, then force applied from the air spring. Because of this design, the start height of the lower platen is not critical to the hot embossing process. However, for accurate part placement and retrieval, a known height is needed. To account for this, a hard stop was added to the hot embosser's lower platen, which causes it to rest at a fixed height. However, the amount of time it takes for the platen to reach the rest state is also important for the system processing. After observing a slow unclamping, a new air spring was obtained to increase the rate at which the lower platen reached its hard stop. 3.6.2 Taping Machine Part Placement Several issues arose when parts were placed in the taping machine by the robot, which required small modifications. When parts were first placed on the taping belt, concerns arose that they might be too far forward or too far back. To deal with this, a brush was created to push parts against the small divisions on the taping belt that formed hard stops. The part was placed forward of the stops, then pushed back to the appropriate position, increasing the precision of its location to the level needed by the taping machine. The second issue arises after the system had been run for a few parts. After several parts have been made by the hot embossing machine, all subsequent parts picked up by the robot do not fall off the effector head onto the taping belt once the vacuum is turned off. The cause for this is currently unknown. However, hard stops above the part placement in the taping machine cause the part to be knocked off the effector head and onto the belt. The part is then positioned by the taping machine to account for the error arising from the drop height. 59 3.6.3 Functional Testing Machine Dye Contamination The functional tester determines the mixing location of parts by flowing red dye through one port and water through the other port. [13] The mixing of the two flows can then be determined optically. To flow these fluids through the part, fluid channels exposed to air via o-rings were embedded in the functional testing platform. When the part was placed on the platform and clamped in place, the application of pressure would then cause the appropriate fluid flow to occur. However, owing to the combination of pressure for the fluid flow and the exposure to air, fluid remained in the o-rings when the part was unclamped. This fluid would form a slight bubble, which would adhere to the part during the part retrieval process. Because of the direction the part was moved, this caused the red dye to contaminate the water supply, causing poor results for the mixing location. This process is depicted in Figure 3-15. (a) (b) (c) (d) Figure 3-15: Dye contamination occurs due to the back pressure in the functional tester causing bubbles of both water and dye to form (a). When the part is inserted into the functional tester, it makes contact with the red dye bubble (b), and, as it is inserted, drags that bubble into the bubble of water (c). When the part is placed, the water inlet has red dye in it (d). To fix this, a number of approaches were considered. Because of the height of the fluid bubble, increasing the height at which the part was removed from the machine was not an option. The height of the bubble could be periodically decreased using a siphon, although this method was slightly error-prone owing to the timing involved and the rate at which the bubble resumed its original height. The disabling of fluid flow and reliance on the first channel width image was 60 also considered, although this reduced the amount of data retrieved from the machine. Ultimately, the combination of high cycle time, the issues with the mixing location computation described in Section 2.4, and the issue of dye contamination resulted in the fluid flow being disabled for the initial process control studies. 61 62 CHAPTER MINIMUM SYSTEM CYCLE TIME To maximize throughput, the robot had to rapidly move chips throughout the system and avoid starving the bottleneck machine. The bottleneck of the system was identified as the hot embosser, with a cycle time of 115 seconds. The cycle times of the functional tester and the taping machine, 17 seconds and 15 seconds, respectively, were much lower. Thus, a good measure of the performance of the system was the percentage of time the hot embosser was running. 4.1 Simulation To determine whether or not the system was performing as expected, a simulation was created to time various aspects of the system. This simulation took into account the robot movement and operation times, the machine cycle times, the capacity of the robot, and the capacity of each of the machines. This simulation was then used to test the robot prioritization system, which was discussed in section 3.4.2. Simulations were done using 60 parts, to mirror the number of parts typically made in one session by the system.5 This number also provided a good compromise between long-term parts and computing time. The simulation is included in Appendix D. 4.1.1 Simulation Timing To increase the accuracy of the simulation, robot movements and actions were performed and timed using the clock internal to the Epson software. The times resulting from these tests were shown to be consistent to within 0.01 seconds. Between this precision and the operation times of the machines, a time step of 0.1 seconds was selected for the system. Timing was 5 Part sessions of 60 parts were selected owing to several constraints. The upper limit on the number of parts to be produced at one time is 110, the number of parts that fit in the dispenser. However, because of the high time investment, making 110 parts at once was undesirable. The 60 part quantity was ultimately selected to provide at least 50 good parts. 63 broken down into two categories, operation times and movement times. Because of the slight variations between the two effector heads on the robot, each effector head had a slightly different operation time at each station. The largest variation was less than 1 second, and typical betweenport variation was approximately 0.3 seconds. Table 4-1 shows the times determined for each task that the robot can perform. However, it should be noted that these are not the minimum times for each of the tasks. The system in its current state is generally operated in low power mode, which limits the robot's speed to 3% of the maximum. While speeds higher than 20% of the robot's maximum cause undesirable vibrations within the system, these times could easily be reduced by a factor of 5 should the need arise. Robot Task Time to Perform Time to Perform Task (Port 0) Task (Port 1) Retrieving a blank part 7.6s 7.7s Placing a part in the hot embosser 6.8 s 7.1 s Retrieving a part from the hot embosser 10.5 s 10.8 s Placing a part in the taping machine 16.4 s 16.8 s Retrieving a part from the taping machine 9.9 s 9.0 s Placing a part in the functional tester 8.9 s 9.0 s Retrieving a part from the functional tester and 15.7 s 15.5 s placing it Table 4-1: The operation times for each of the tasks of the robot while operating in low power mode. Both ports had to be taught their points separately, resulting in slightly varied cycle times between the ports. Operating in high power mode could reduce these speeds by a factor of 5 or more. Each operation the robot can perform on the system starts and ends at a specific point associated with the machine in question. Between each set of two points, the robot will follow a specific path to keep from colliding with any system machines. The movement times between each of these sets of points were then recorded for use in the simulation. Table 4-2 shows the movement times of the robot between each pair of machines within the system. 64 Dispenser Port Dispenser Port 0 Dispenser Port I HEM Port 0 HEM Port I Taping Start 0 Taping Start I Taping End 0 Taping End I Functional Tester Port 0 Functional Tester Port I 0 Dispenser Port I HEM Port 0 HEM Port I Taping Start 0 Taping Start I Taping End 0 Taping FT FT End I Port 0 Port I O.Os 2.9s 4.3 s 4.3s 4.2s 4.8s 16.Os 16.0 s 16.1 s 16.3 s 2.9s O.Os 4.3 s 4.3s 4.2s 4.2s 16.Os 16.Os 16.1 s 16.3s 4.3s 4.3s O.Os 2.9s 1.6s 4.1s 12.6s 12.6s 12.7s 12.9s 4.3s 4.3s 2.9s O.Os 1.7s 1.6s 12.6s 12.6s 12.7s 12.9s 4.2s 4.2s 1.6s 1.7s O.Os 2.9s 12.7s 12.7s 12.8s 13.Os 4.8s 4.2s 4.1 s 1.6s 2.9s O.Os 12.7s 12.7s 12.8s 13.Os 16.Os 16.Os 12.6s 12.6s 12.7s 12.7s O.Os 2.9s 3.2s 3.7s 16.Os 16.Os 12.6s 12.6s 12.7s 12.7s 2.9s O.Os 4.8s 3.7s 16.1 s 16.1 s 12.7s 12.7s 12.8s 12.8s 3.2s 4.2s O.Os 3.Os 16.3s 16.3s 12.9s 12.9s 13.Os 13.Os 3.7s 3.7s 3.Os O.Os Table 4-2: The travel times of the robot between the machines of the system. These times are largely consistent between ports that are far apart, but for ports close together the time to turn the effector head starts to dominate. Here there are much larger discrepancies between effector head 0 and effector head 1 when travel times are concerned. The largest of these discrepancies arises when the robot is remaining at one machine and switching between the effector heads. This rotation of the end effector takes 2.9 seconds. Similar time increases can appear when the robot is moving between two machines which are close together. Larger travel distances, generally those taking longer than 4 or 5 seconds, are nearly identical regardless of which effector head starts and ends facing each of the machines in question. One additional note of significance is the directionless nature of the robot motions from a timing perspective. Going from point A to point B and going from point B to point A have been repeatedly demonstrated to have a timing difference of less than 0.1 seconds. 4.1.2 Simulation Organization Using this data, a simulation of the robot's actions within the system could be run. This simulation was used to determine the expected takt time of the system, as well as the hot embosser utilization rate. The time step of the system was given as 0.1 seconds, with each 65 machine, including the robot, updated every time step. Machines that held a part longer than the number of time steps corresponding to their cycle time were considered to have completed their cycle. When moving, the robot's location was updated once sufficient time steps had passed for it to have moved between the two machines in question. A similar method was used to determine when it had completed an action. The simulation recorded the time steps at which each part was processed by each machine, as well as the time steps when each part entered and left the system. The method for task determination by the simulated robot was the same as used by the actual robot, discussed in section 3.4.2. Tasks were again removed from the potential task list by disqualifying tasks which were impossible because of the system state, then disqualifying those that would cause the system to jam. The prioritization method was still used to some extent. However, different cases did not take into account the state of the parts the robot was holding at the time. This was done to enable rapid testing of a wide variety of prioritization cases, to determine the best possible series of priorities. 4.2 Results 4.2.1 Current System Limitations Because of the dominance of the system bottleneck, a straightforward calculation can be done to determine the minimum system cycle time. Between the start of the hot embossing machine cycles, the hot embosser must run and the part inside must be replaced. The running of the hot embosser takes, as previously mentioned, 110 seconds. Replacing the part requires the extraction of the part from the hot embosser, a minimum of 10.5 seconds; rotating the effector head, 2.9 seconds; and the placement of the new part in the hot embosser, a minimum of 6.8 seconds. Thus, the absolute minimum cycle time of the system is 130.2 seconds. 4.2.2 Simulation Using the prioritization detailed in section 3.3, the simulation was run to determine the expected cycle time at steady state, as well as the hot embosser utilization rate. At steady state, the takt time for the system is 136.4 seconds. The slight discrepancy between the bottleneck rate and the simulation rate is caused by a slight delay in the communications between the computer and the robot. This delay, on the order of 1/10 of a second, adds up to slightly more than a second over the course of a cycle, and stems from the imperfect nature of the LabVIEW-RC+ interface. 66 Given the system, the hot embosser is able to finish its cycle before the robot has completed the rest of the required actions for a completed part, resulting in a slightly longer cycle time. 4.2.3 Physical System To compare to the simulation, data from the physical system was used on some of the occasions where the system was run for longer than 50 parts. As the functional tester provides a timestamp for each image taken, these timestamps could be used to provide the intervals at which the parts were placed in the functional tester. This data was then used to determine both the average cycle time and the consistency of the cycle times. A histogram of the cycle times is shown in Figure 4-1, which also shows that the cycle time is consistent to within several tenths of a second across two separate runs of 50 parts each. The average cycle time for those parts was 141.5 seconds. However, it is clear that the most common takt time is 141.6 seconds. This discrepancy was caused by the small number of much lower cycle times. Histogram of Part Takt Times 45 40 i 35 30 0 .0 2 25 20 15 10 5 0 <141.4 141.4 141.5 141.6 141.7 141.8 Time between cycles (second 141.9 142.0 142.1 Figure 4-1: Showing the consistency between cycles and average cycle time for the system, as determined by the functional tester. The variations in cycle times are approximately normally distributed, although four cycles were significantly shorter than expected. The normal distribution is expected, as the cycle 67 time is the sum of a number of shorter operations, each with its own variance, implying an overall normal distribution from the Central Limit Theorem. The faster cycle times did not appear in any noticeable pattern within the runs, and vary in length from 139.2 seconds to 140.1 seconds. The slight variation in part time is likely owing to small variations in computer operating times, as the operation times of the machines and movement times of the robot are all highly consistent. While the load on the computer is not great, the communications between the robot and the computer can be slow when a number of them happen at once, which occurs periodically within the system. Part Number Cycle Time (s) 110 140.1 128 140.1 130 139.7 148 140.3 J5 139.2 J25 139.8 Table 4-3: The part numbers and corresponding cycle times for parts with much lower cycle times than normally displayed by the system. These cycle times are between 1.5 and 2.5 seconds lower than expected from the rest of the data. These lower cycle times likely result from computer communications discrepancies. Once the initial cycle time data was taken, several alterations were made to decrease cycle times. The functional tester code had previously waited 5 seconds for the comparatively fast clamping operation. This time was shortened from 5 seconds to 2 seconds. The hot embossing code had previously afforded no time for unclamping, which required the robot code to account for this. This resulted in a 5 second dead time while the robot waited for the hot embosser to open, regardless of how long previously the hot embosser had finished its cycle. The code accounting for the unclamping time was thus transferred from the robot to the hot embosser, enabling the overall system to be faster. The time the robot spent waiting for the taping machine was also decreased, from 10 seconds to 0 seconds. This was done because the taping machine process was fast enough that, should the robot ever interact with the taping machine twice in a row, the taping machine would still already have finished its cycle. These changes reduced the system cycle time from 141.5 seconds to 134.7 seconds. Figure 4-2 68 illustrates the new histogram of part takt times for the 43 parts made in a run after the changes took place. Histogram of Takt Times after System Efficiency Modifications 50 45 430 - 35 - - 40 25 20 15 10 5 n <134.3 134.3 134.4 134.5 134.6 134.7 134.8 (s) Time between cycles 134.9 135 >135 Figure 4-2: The takt time of parts after slight modifications to the hot embossing and functional testing code to increase efficiency. The overall cycle time has decreased by almost 7 seconds, and there are fewer outliers. 4.2.4 Functional Testing Times Although the functional tester in the current system only takes about 12 seconds to perform its operation, longer functional testing times will be desirable in the future. The current time is achieved by disabling the fluid flow and subsequent picture acquisition and analysis, which will provide important fluid flow data in the future. In order to predict how this would affect the system, the simulation was run using multiple processing times for the functional tester. The results of this simulation are shown in Figure 4-3. The system cycle time increases linearly with the testing time while the robot is travelling from the functional tester to the hot embosser or removing a part from the functional tester when the hot embosser completes its cycle. The abrupt spike occurs when the robot is performing an action during the completion of the hot embossing cycle, as this prevents the robot from immediately travelling to the hot embosser. Once the functional tester takes long enough that the robot no longer is in the process of performing 69 another action during the completion of the hot embossing cycle, the system cycle time lowers to a new consistent rate until the functional testing time is at least 55 seconds long. Simulated Cycle Times as a Result of Increased Functional Testing Time I aI JJI -- Hot Embosser Cycle Time CD E a) 160 k--- 4-- 0 -- - - ---- L - -- 150 F * 0 E 140 a) C,) .-- C/) I. 0 - -- --- -- - - - - - ------ ---------- -- . ------- 170 F 130 120 H I 110' 10 I I I 20 I 40 30 Functional Testing Time 50 60 Figure 4-3: The simulated system cycle times as a function of the functional testing time. Cycle times increase linearly with the functional tester while the robot completes its task shortly before the hot embosser opens. The peak corresponds to the robot performing an action while the hot embosser is waiting for a part. As the system was programmed assuming the hot embossing machine was the bottleneck, an alternate set of priorities provide different system cycle times with respect to functional testing time. One alternate set of priorities, which are listed in the order a part would go through the system (i.e. being removed from the functional tester is the lowest priority, as it occurs last), has its data shown in Figure 4-4. Here, the initial linear trend and spike are the same, but the value that occurs during longer functional testing cycle times is much lower. 70 Simulated Cycle Times as a Result of Increased Functional Testing Time 180 ~~ I -Hot Embosser Cycle Time 170-L- a) E 160- ----- 4 --- 150- E 140- -0 0 ---- r a) - - - -- U) 00 00 00 ---------------- 1307--- 120110 ) 1 - C,) -------- --- -- ------ 1 I I I I I I 20 40 30 Functional Testing Time 50 60 Figure 4-4: The system cycle time as a function of the functional tester processing time, using a different priority set for the robot. While similar to Figure 4-3, the cycle times after the peak are lower. 71 72 CHAPTER 5 INITIAL EXPERIMENTS OF SYSTEM CHARACTERIZATION When characterizing a system for process control, it is important to identify all sources of variation in an attempt to minimize as many of them as possible. To this end, a series of experiments were performed to identify the various sources of variation. 5.1 Experimental Method To ensure consistency between experiments, a number of steps were taken. The workpiece blanks, which came in packets of ten, were numbered by hand and placed in the dispenser. The order of the parts was not shuffled prior to numbering for the initial system characterization experiments, but was shuffled prior to the designed experiment described in Section Error! Reference source not found.. This was done to respectively preserve and remove any variation that might be inherent to the packets of ten parts. Once the parts had been labeled and placed in the dispenser, all portions of the system were turned on. Between 2 and 5 sample parts were made by placing them in the hot embosser using the RC+ interface for the robot, with the hot embosser then being run through the manual start on its VI. These parts were placed in the taping machine by hand, which was started through the RC+ interface. Five blank parts previously designated as "taping machine pushers" were then used to move the sample parts through the taping machine. The sample parts were placed in the functional tester, whose VI was triggered through the manual override. The channel widths of the sample parts were examined to make sure that the system was behaving as it had been the previous time the system had been run. For more information on the machines used to make the parts, see Bageant [12] and Reyda [13]. After the system was functioning as expected, the parameters were set in the robot labview VI. For all experiments, the functional tester and hot embosser started with no parts, and 73 the taping machine started with 5 unembossed parts in it, which were removed manually and not accounted for by the system programming. The system was then started and observed to make sure that all of the machines were triggering correctly. Periodically, the taping machine would jam because of tape sticking to the belt. When this occurred, the part immediately prior to the jam was removed from the taping machine, along with all subsequent parts. This removal was ideally done prior to the cutting step of the taping process [see Reyda [13]], as this prevented any incorrectly located parts from being damaged by the cutter. The tape was then sliced using a razor blade to get a clean edge on the parts, and the parts were placed back in the cutting machine after the cutting step. These parts were placed one at a time in the proper order, with each subsequent part being placed after the previous part had been removed by the robot. The robot was run in low power mode for safety purposes, so the system was rarely stopped while running to perform maintenance. In addition to the removal of parts from the jammed taping machine, parts would periodically get flung by or jammed in the cutter, necessitating their relocation to enable the robot to pick them up. Parts that were not successfully picked up by the robot were also placed in the functional tester manually. Approximately 3% of the time, embossed parts would also inexplicably be dropped from the robot. These parts were placed in the taping machine manually. Once the system had embossed all of the blank parts in the dispenser, the robot would shut off. The data from the measured parts was then compared with the raw image data to determine which parts had not been measured. These parts were identified by their number and placed in the functional tester a second time to ensure complete measurement. Parts that had been visibly mis-measured were also placed in the functional tester a second time, and the new measurement used. 5.2 Blank Parts Initially, the blank parts for the system were cut from sheets of PMMA using a laser-cutter. However, because of poor quality control of the sheets, the parts cut, while nominally 1.45 mm thick, would range from 1.1 mm to 1.8 mm, which was a sufficient range to cause handling problems. This necessitated the switch from laser-cut PMMA to injection-molded PMMA parts from QuickParts, which have a thickness tolerance of 0.01 mm. Part orders are customized, but 74 thus far have been for lots of 1000 parts each. Blanks arrive in groups of ten, although it is unclear if these groups are manufactured in sequence. Groups of ten are loose within the order box, so overall manufacturing order is unclear. When switching from the first lot of 1000 parts to the second lot of 1000 parts, parts were made consecutively to see if the new parts would be noticeably different from the old parts. The relevant portion of the corresponding run chart is shown in Figure 5-1. During the creation of these parts, no other changes were made than the order number for the blank parts. At the point of switching between orders, denoted by the red dotted line, a small change in the overall channel width is noticed. After approximately 6-10 parts, however, this change has been reversed. 84 82 80 78 76 74 72 70 S* 12 14 16 +1 18 * Parts Made from Two Different Orders of Blanks 20 22 Part Number 24 26 28 30 Figure 5-1: A run chart showing parts made from two different orders of the PMMA blanks. The red dotted line indicates where the run switched from the first order to the second. A small but noticeable drop in the average channel width occurs at this point. To determine the statistical significance of the observed drop, an ANOVA test was done using JMP. The results of this test are shown in Figure 5-2. The ANOVA test concluded that there was at least a 98% chance of a mean shift between the two groups of parts. However, at the time of the part switch, the system was largely not in a state of statistical control, as can be seen in Figure 6-4. This makes the ANOVA test less reliable, as the standard error in each case is inaccurate. 75 AwOneway Analysis of Mean Column Width By Part Order 81.5 81- 805 -c0 :80r-E79.5- U379C: S78.578 77.5old part new part Part Order A4Analysis of Variance Smxwce Part Order Error C. Total DF 1 16 17 Squares Mem Sqpre 5.584127 5.58413 14.150335 0.88440 19.734463 F RaiD Prob > F 63141 0,0231* A Means for Oneway Anova Level Number new part 11 old part 7 Mean StdError Lwer95% Upper95% 79.0707 0.28355 78A70 79.672 80.2132 035545 79A60 80.967 Std Error uses a pooled estimate of error variance Figure 5-2: The box plots of and the results of an ANOVA test on the mean channel widths the parts immediately preceding and immediately following the switch in part orders. The probability of a mean shift occurring given the data is greater than 98%. In addition to the slight shift when switching from one order of parts to the next, variations have sometimes, but not always, been noticed between the packets of 10 that the parts are received in. One example of this shown in Figure 5-3, with the data drawn from a run of 60 parts. (Parts J61 to J120 were made on the same day and under the same forming conditions as parts J1 to J60, but at a different time of day.) This run chart shows the average channel width of the 60 parts in the order they were formed. During this run, parts J91 to J 100 show a clear increase in both average channel width, as well as variance. As parts from this run were grouped in the original packets of 10, this increase in both width and variance is believed to be because of 76 the particular packet of those parts. However, the other five packets that comprise the run are indistinguishable, suggesting that packets will not always be a source of variation. Parts J61 to J120 90 -70 6 5 S60 60 70 80 90 Part Number 100 110 120 Figure 5-3: The average channel width of parts J61 to J120, where parts J91 to J100 have both a higher average value and a significantly higher variation than the rest of the parts. Each ten parts came from its own packet, although only one of the six packets used appears to be distinct. An ANOVA test was then done to compare the extreme ten-part group to the rest of the parts, to determine if a true mean shift happened. The results of this ANOVA test are shown in Figure 5-4. Based on this data, a clear mean shift has been detected for the ten parts between J91 and J100. However, while those parts did correspond to a distinct packet, it is not certain as to whether the blanks used were the source of the increased mean, or another parameter was at work. 77 1iIOneway Analysis of Average Channel Width By Offset 0C U-, 0 80 C CU 75 70- n y offset 4Analysi of Variance Sowte Offset Error C. Total DF 1 58 59 Sum of Sqam Mean Square 26010744 260107 257A7718 4A39 51758462 F Rato h 58.5925 > IF <.0001* Means for OnewayAnova Level Number Mean Std Error Lowser95% Upper 95% n 50 73.7897 029797 74386 73.193 80.710 78.043 0.66628 10 793765 y Std Error uses a pooled estimate of error variance Figure 5-4: The boxplot and ANOVA test for the group of ten parts which appear to be outliers. Based on this run data, something almost certainly changed. However, whether this was due to the ten part group or some other factor is uncertain. 5.3 Hot Embossing Machine When the hot embosser runs, it has a set temperature and force for part forming. Both of these parameters are closed-loop controlled, and their values recorded. By reviewing the temperature and forming force over a series of runs, the variance of the hot embosser's process parameters can be determined. 78 Figure 5-5 shows the force applied by the hot embosser over the course of 60 cycles. The hot embosser is first brought to 100 N for the heating of the part, then the force is increased to 1000 N for the forming of the part. The system has a high overshoot before settling to the set force. This overshoot should not occur, and is indicative of an improperly tuned force actuator. This may cause over forming of the parts, and thus should be corrected before subsequent experiments are done. The noise is caused by electrical interference from the heaters in the system. However, in spite of these things, the force profile is highly consistent across the 60 parts. The temperature profiles are shown in Figure 5-6 and Figure 5-7. Figure 5-6 shows the temperature profiles of the lower heater, positioned below the part, and Figure 5-7 shows the temperature profiles of the upper heater. The upper heater has slightly more variance during the initial heating and late cooling processes, although both heaters have much higher variance during those portions. During the forming process, which occurs between 30 and 60 seconds, the temperatures are reasonably consistent. Looking over the 60 parts formed, no clear trend can be seen from the heater temperatures. 79 Actuator Force over 60 Parts 60 55 10W 50 45 800- 40 35 CD E 30 z . a) 600- 0 LL 25 400- 20 15 200 10 5 n 0 40 20 60 Time (s) 100 80 Actuator Force over 60 Parts 60 1 180- 0 UL 55 1 160- 50 1 140- 45 1120- 40 11001080- 35.o E 30 z 1060- 25a 1040- 20 15 1020- 10 1000 5 980 60 65 70 80 75 Time (s) 85 90 95 Figure 5-5: The force applied by the actuator on the part during forming, over many cycles. While slightly noisy, the applied force is highly consistent between cycles. 80 Upper Heater Temperature over 60 Parts 120 60 110 55 50 45 ? 100 40 35. 90- E E 30z 25 80 a) 20 70- 15 CL 10 60' 5 40 20 0 60 Time (s) 80 120 100 Upper Heater Temperature over 60 Parts 60 55 118, 50 116 45 40 S114a) 112 - ~35 CL - - 30 z 25 20 1 M 110 L 108 10 1061 5 40 50 70 60 Time (s) 80 90 Figure 5-6: The upper heater temperature of the hot embosser over 60 part cycles. There is increased variance during the heating and cooling steps. During the forming step, temperature is consistent to within about 1 degree Centigrade. No clear trends are shown. 81 Lower Heater Temperature over 60 Parts 60 55 110 50 45 2 100 40 E 35 90 - C- E 30Z Cu 8025 20 15 70- 10 60 -5 0 20 40 60 80 100 Time (s) Lower Heater Temperature over 60 Parts 60 55 116- 50 c 114 40 35 E c112 - -E 30 z 25 110 m 20 0108 15 10 106- 5 40 50 60 70 80 90 Time (s) Figure 5-7: The temperature of the lower heater during part forming over 60 part cycles. Because of its lower power, the lower heater had a lower overall temperature than the upper heater, as well as a longer rise time. 5.4 Functional Tester Because the measurement of the functional tester is the main indicator of quality for the entire system, a good characterization of this measurement is important. When parts are placed in the functional tester both the lighting and the position play a part in the measurement determined by the image-finding algorithm. Because parts are placed in the functional tester by the robot, the 82 repeatability of the functional tester was measured by placing the same part in the functional tester 50 times, using the robot. Figure 5-8 shows the average of the four channel measurements as a function of the measurement. The grand mean of the data was 65.3 pm, with a standard deviation of 0.31 pm. Functional Tester Repeatability Test 66.4 66.2 66 4 * 65.8 65.6 S65.4* 4 65.2 4 * ~65 64.8 64.6 0 10 20 30 Part Placement Repitition 40 50 Figure 5-8: The measurements taken by the functional tester when the same part was placed into it repeatedly. These measurements are the average of the four channel widths visible to the functional tester. The grand mean is 65.33 sIm, with a standard deviation of 0.31 pm. To better understand the data, a normal probability plot was created. This normal plot is shown in Figure 5-9. The data is not normally distributed, as channel widths substantially above the mean are more likely than would be expected in a normal distribution. This may be due to part placement periodically causing a large change in the measurement software's pattern recognition. 83 Normal Probability Plot for Functional Tester Variation - --- --- 4--4- - -- -- - -- T-- -- - ----- ------ - - - - - - --- - 0.99 0.98 0.95 0.90 *+ 0.75 +- (U -0 0.50 2.. IOL 0.25 -- -1- 64.8 - --L- - - - - - -L - -- -- - - - - - -- - - - -- - - ---- - - -L ---- --- - ---- - -- - - 65 - -r-- - - - - - - - - -- - - - - -- - - ---- - 65.6 65.8 65.2 65.4 Average Channel Width (gm) - -- - 0.10 0.05 0.02 0.01 - -- 66 Figure 5-9: A normal probability plot for the functional tester repeatability test. The data is not completely normally distributed, as higher values are more likely than would be expected. Since the functional tester measures four distinct channels and then averages them, some additional insight can be gained by looking at the individual channel measurements. Figure 5-10 shows the averages of each of the four channels, with the standard deviations of the measurements indicated. The average of the four channels has a smaller standard deviation than any of the individual channels, but even with the larger standard deviations, the variation between channels is more than can be attributed to measurement error. However, the averaging of the four channels helps create a more repeatable measurement. None of the four channels appear to have a significantly greater measurement variability. 84 Functional Tester Repeatability by Channel with One Standard Deviation Shown 67 66.5 E 66 65.5 65 64.5 AL 64 63.5 63 Channel 1 Channel 2 Channel 3 Channel 4 Average Figure 5-10: The averages of each of the four channels measured during the functional tester repeatability test. The error bars shown correspond to one standard deviation. The inter-channel variation is greater than the variation in the measurements for a given channel. In order to determine the effects of lighting on the functional tester measurements, two experiments were done, considering the primary lighting source and secondary lighting sources. The main lighting source for the functional tester is a light box with a dimmer, which can be adjusted. A number of parts were measured, then the primary lighting was slightly increased, and the parts were measured again. Figure 5-11 shows part El1 under both light settings for comparison. Figure 5-11: Part Eli with the light source on a lower setting (left) and a higher setting (right). The higher light setting has reduced the amount of shadow around the channel, which caused the edge detection software to measure the right picture as having a channel 4 ptm narrower. 85 Owing to the decreased shadow resulting from a higher intensity light source, the parts were measured to have narrower channels. Figure 5-12 shows the measurements for each part under both measurements. After the light was increased, parts were measured as having channels approximately 4 pm narrower. Because of how the edge detection software works, shadows on the parts register as the channel edges. This causes parts with more shadow to appear to have larger channels. However, as long as lighting is consistent, process control can be performed on the parts, as the parts will have the appropriate relative widths and an increase or decrease in channel width can be detected. Effect of Primary Light Source on Measured Width (E Series) 72 ?70 A6 64 0 10 20 30 Measurement Al6 A0 A* AANInitial A A AU A 50 40 Part Number A A Increased Lighting A 60 70 80 90 Figure 5-12: The channel widths recorded by the functional tester under two conditions with the primary lighting source. When the lighting was increased, the average part width decreased by about 4 pm, owing to a decrease in the number of shadows seen by the optical measurement. In order to determine the effect that secondary lighting had on the system, the same part was measured under a variety of different lighting conditions. The part was measured 10 times each at various times of day, on both cloudy and sunny days. The overhead lighting was on for all of these measurements. The part was also measured at night, with the overhead lighting off. Figure 5-13 shows the average measured width and standard deviation as a function of the time of day that the measurements were taken. The weather conditions have also been indicated. As 86 the variations present in these measurements are within those expected by repeated functional testing measurements, the secondary lighting conditions can be concluded to not be a significant source of system variance. Secondary Lighting Test with 1 Standard Deviation Shown 66.7 66.65 66.6 66.55 66.5 . 66.45 *Cloudy 66.4 0-A 0 Sunny * 66.35 U A Dark 66.3 X Lights Off 66.25 66.2 66.15 12:00 13:12 14:24 15:36 16:48 18:00 Time of Day 19:12 20:24 21:36 Figure 5-13: Measurements from the same part at varying times of day, as well as with the overhead lighting off. These tests show that the secondary lighting conditions do not significantly impact the part measurements. In order to make sure that the zoom levels of the camera had not been changing over time, an optical target was obtained, which was then measured using the functional tester. A portion of the resulting image, converted to binary, is shown in Figure 5-14. Each stripe is 50 gm wide, and the stripes are 50 gm apart. The stripes and the spacing between them were then measured at varying locations along the image. The average values for both the stripe and spacing width, as a function of image position, are show in Figure 5-15. The 50 gm stripes and spacing correspond to a distance of 80 pixels, showing that one pixel corresponds to 0.625 sm. This is consistent with the original calibration of the functional tester, so the zoom level is not a source of variance for the system. 87 Figure 5-14: A portion of the optical target, as seen from the functional tester. This image was used to confirm the calibration of the functional tester. The lines on the optical target are exactly 50 pm wide. 88 Widths Measure by the Functional Tester 100_ Line Between Lines '' 90- c 80- UJ70- 60 0 5 10 15 20 25 Position Figure 5-15: The measured spacing of the 50 pm lines and between those lines on the optical target image, at 25 distinct points along the image. The line width is 80 pixels, indicating that I pixel corresponds to .625 ptm. 5.5 Taping Machine To determine the variation caused by the taping machine, several parts were put through the taping machine, measured, then put through the taping machine again. Tape was removed between cycles. This cycle was repeated 10 times for each of 6 parts. Figure 5-16 shows each of the 60 measurements obtained from this experiment. The mean value and standard deviation for each part has been indicated. While the taping machine alone provided a standard deviation of about 0.3 pm, the combination of the two results in a measurement standard deviation of between 0.35 jim and 0.8 gm, meaning that the taping machine is an additional source of variation for the system. 89 Taping Machine Variation Tests 72 o =0.7 LIM ----------- u = 68.92gm I--, 68 p 3 pm p_=67*77m_ (Y =0.5 pm 1 a =0.44 m * p70O4pm 70 = 68.62pm * o =0.45 pm ___a p =67.48pm o=0.65 pm cc 66 - * p64.86pm ai =0.53 pm A 0 0 ----- ------------------------------------------------- Part 1 Part 2 Part 3 Part4 Part5 " Part 6 " Part 7 0a) 64 p = 62.98pm * " " " " Y =0.53 pm - -- 62 60 C 1 2 3 4 5 6 Trial Number 7 8 9 10 Figure 5-16: The test for taping machine variability. Six parts were put through the taping machine 10 times each, with the resulting measurements then recorded. The mean and standard deviation for each part are indicated. The taping machine is a non-negligible source of system variation. 90 CHAPTER 6 STATISTICAL PROCESS CONTROL RESULTS AND DISCUSSIONS In order to be able to run the system with appropriate feedback, the system first must be characterized. To obtain accurate characterization data, the system must be in a state of statistical control. As the system was initially not in control, sources of variation were removed until control was regained. Once this had been done, a designed experiment was run to characterize the effects of various process parameters on the system. 6.1 Statistical Control In order to successfully implement feedback on the system, experiments needed to be done while the system was in a state of statistical control. During initial runs, the system was not in a state of statistical control, prompting a number of these runs to be done. Table 6-1 indicates the different runs that were done, the date each was done on, the number of parts produced, and any significant factors about the setup for each run. Unless specified otherwise, the runs each used the same settings on the hot embosser. The forming temperature was set to 115 C, the cooling temperature was set to 120 C, the heating time was set to 60 seconds, the forming time was set to 30 seconds, the cooling time was set to 20 seconds, and the forming force was set to 1000 N. 91 Date Designation Additional Notes Number Letter of Parts E 1/16/14 60 First run with more than 5 parts made in sequence I 3/13/14 60 Second run attempting statistical control, 60 parts J 4/14/14 120 The first 60 parts used two different orders of blank parts, the second 60 parts used a forming temperature of 120 C K 4/16/14 60 The forming temperature was 120 C L 4/24/14 60 The forming temperature was 120 C, the heating time was 50 seconds, and the cool time was 30 seconds Table 6-1: Showing the different part runs done to attempt to achieve statistical control, along with the letter used to designate each of those runs. Unless specified otherwise, each run had a forming temperature of 115 C, a cooling temperature of 60 C, a forming force of 1000 N, a heating time of 60 seconds, a forming time of 30 seconds, and a cool time of 20 seconds. Figure 6-1 shows the first run chart created by the system. An upward trend begins after about the first 60 parts. The upward trend can be more clearly seen in Figure 6-2, the CuSum chart for this run. E Series (Initial Experiment) Run Chart 70 168 ~66 * . ~64 .. . . .. . .. 62 60 58 0 10 20 30 40 Part Number 50 60 70 80 Figure 6-1: The run chart for the first run of the system to make a statistically significant number of parts. While the system was in control for the first 60 parts, a mean shift occurred at the end. 92 Initial Process Run CuSum Chart 14 212 10 g8 6 2 0 ,+, 5 2 -4 e w+, * * . 4 0 15 20 25 30 Part Grouping (n =3) Figure 6-2: The CuSum chart for the initial process run, using groups of n =3. With this chart, the process mean shift can clearly be seen. Several sources were considered as the cause for this mean shift. The measurements taken by the functional tester were determined to be consistent across repeated measurements, as discussed in Section 5.4. Because of the passage of time, a second run was done to determine if the mean shift was still present. The run chart for this process can be seen in Figure 6-3, which again contains a mean shift. However, this mean shift starts at the beginning of the process, then levels off. This, combined with the channel width values from the previous long run, implies that the mean shift was a long-term occurrence that continued between runs. The tool for the system was also cleaned, by soaking in a bath of acetone for several days, then being wiped by a soft-brushed dermal. This process is used to reduce the amount of PMMA adhering to the tool, as the repeated manufacturing of parts can cause slight buildup, which would widen the tool channels and thus the part channels. 93 I Series Run Chart 74 ~70 * ~68 + * ***b ~66. 264 # 62 0 10 20 30 Part Number 40 50 60 Figure 6-3: A run chart for the second of the long runs, again showing a mean shift. In this process, the mean shift starts at the beginning and then levels off. In order to determine the potential causes of a long-term mean shift, various factors were considered. Owing to the random nature of the order in which the raw material was used, it was discounted as the cause for a long-term mean shift. The taping machine was also discounted, as closer studying of the images showed that actual quality of the embossing on the parts had changed, rather than the shift arising from a difference in the tape quality. The displacement of the hot embossing machine was examined to see if parts had been deforming the same amount under the applied force and displacement. However, closer examination showed that the LVDT used to measure force had been broken for the duration of both long runs. As it only recorded data and did not provide feedback to the system, this failure had not impacted the overall system, but did result in a lack of data pertaining to the deformation of the parts in each run. Two issues were noted with the hot embossing machine. One source of error was determined to be the heaters for the system, which were then recalibrated. The electronics were also modified to increase shielding, and components were replaced in an attempt to remove any defective parts of the circuit. A third run, the J Series, was then attempted. During this run, the last of the initial order of blank parts was used, prompting the use of the second order as well. This shift happened at part J19. The run chart for the J Series can be seen in Figure 6-4, which shows a largely in-control process, after a 12-part startup transient. This startup transient,* 94 however, was only observed in this run, and is not expected for the system. Because of how the hot embosser is heated, all thermal cycling is rapid and occurs while the part is being produced. This means that there should not be a startup transient of any source within the system. The cause of this startup is currently unknown. J Series, Parts 1-60 90 + 85 - 80 *- 75. 65 - 70 0 10 20 30 40 50 60 Figure 6-4: The run chart for the first 60 parts of the J Series, or third long run. The initial portion of the run shows what appears to be a startup transient, which then levels off, with the rest of the run being largely uniform. A slight discontinuity occurs between parts J19 and J20, where the blank parts were switched from the initial batch ordered to the second batch. However, this switch does not coincide with the end of the startup transient. These parts was made on the same day, slightly over an hour after the previous run had been made, and none of the equipment was turned off between the two runs. The same run letter was thus used for these parts as well as the parts previously formed. Figure 6-5 shows the run chart for parts J61 to J120. This process is in control for the majority of the run, but there is an upwards mean shift between parts J90 and J 100. This mean shift is thought to be because of the blanks, which come in randomly sorted packs of 10. The cause of the large mean shift between parts J60 and J61 is unknown. 95 J Series Run Chart, Parts 61-120 85 83 i81 79 10 * 71 . ~. PC 73 75 **** * 79 477 69 67 65 60 70 80 90 Part Number 100 110 120 Figure 6-5: A run chart after the system appeared to be in control. While the process is almost in control, there is a mean shift for approximately ten parts between J90 and J100. There is also a significant mean shift between parts J60 and parts J61, although the only change was that the system was left on for a little over an hour between the parts. Although the process appeared to be in control, at least for sets of 60 parts, the channel width was larger than desired. To remedy this, more parts were made, using a forming temperature of 120 C instead of the 115 C used previously. This resulted in a well-controlled process, the run chart for which can be seen in Figure 6-6. The average channel width dropped from about 75 pm to about 65 gm, which is much closer to the desired result. During the beginning of the K series run, two parts appeared to be outliers. The first part created had the lowest average channel width, which was much smaller than expected given the variance of the system. Similarly, and the fourth part created had an the highest average channel width which was also larger than expected given the variance of the system. The cause for the narrow outlier is unknown, but the fourth part, with its high value, is thought to be due to the tape not properly adhering to the part, preventing a good measurement of the part walls. The image corresponding to part K4 can be seen in Figure 6-7, with the large number of bubbles on the surface of the part being caused by improper taping. 96 K Series Run Chart 68 67 65 I 64 63 Q 62 61 * 66 60 59 0 10 20 I 50 40 30 60 70 Part Number Figure 6-6: The run chart for the K series, with the forming temperature set to 120 C instead of 115 C. This caused the parts to have a much lower channel width, which was the desired effect. The process continues to be in control. 57.94 urr 6.32 ur 56.14 m 6.88 Um Figure 6-7: The high outlier from the K series, part K4. The tape has not properly adhered to the part, causing large amounts of bubbling, which may have prevented the part from being properly measured. At this point, several slight adjustments were made to the system. The heaters were observed to be lagging slightly, so the PID controllers on the heaters were tuned to better match the desired temperature profile. This enabled the heating time for the system to be decreased 97 from 60 to 50 seconds. However, the cooling time was increased from 20 to 30 seconds after the temperature profiles were observed not to decrease as fast as previously anticipated. The linear air spring was replaced, as it had stiffened slightly, causing a dramatic increase in unclamping time for the hot embosser. To make sure that the process was still in control, parts were again made with the forming temperature of 120 C. The data from this run is shown in Figure 6-8. L Series Run Chart 67 =66 * 0 ~65 - 63 62 61 S60 59 58 0 0 10 20 30 Part Number 40 50 60 Figure 6-8: The process run again with the high temperature at 120 C after a number of minor hardware tweaks. The L series pictured provides the same data from the K series run before the minor hardware tweaks, indicating that the process is still in control. In the L series, there are three parts which are lower than would be suggested by the variance, parts L32, L36, and L37. The reason for this lower variance is also unknown. An ANOVA test in JMP, show in Figure 6-9, indicated that the mean channel width between this run and the K series was not demonstrably different. The normal probability plot for the combined K and L series is shown in Figure 6-10, and indicates that the process is not normal, largely due to the number of outliers with low channel widths. The process was ultimately determined to be in control. 98 A Analysis of Variance Source Series Effr C.Total SamOf Sqwes Mean Sqmwe 0.4133 0.4133 1.8180 183A8867 18393001 DF 1 116 117 F Ratio ?Prob > F 05984 02790 A Means for Onmay Anova evd Nu*er Mem SWdEror Lower95% Upper95% 64A67 016514 63.813 K 58 641401 L 60 642624 016237 63941 64.584 Std Error uses a pooled estimate of error variance Figure 6-9: The ANOVA test done between the K series and the L series, which shows no significant mean shift. Normal Probability Plot for K and L Series 0.997 0.99 0.98 0.95 0.90 + "T I + I ---- ----- - I----- - 0.75 -U -0 - - -I I- 0.50 - -- - --- 0.25 I - - ....I ~I - - 62 - 61 - - -- 4 I - - - - - T--------I - ---- - -- I - 0.10 0.05 0.02 0.01 0.003 - 59 60 63 64 65 Average Channel Width (pm) 66 Figure 6-10: The normal probability plot for the combined K and L series. The process is not normal, largely due to the number of outliers with narrower channels. The cause for these outliers is not currently known. 99 100 CHAPTER 7 PROCESS CHARACTERIZATION USING DESIGNED EXPERIMENTS To appropriately characterize the embossing process, a designed experiment was run to determine the effects of specific process parameters on the final channel width. A full 33 factorial test was selected, with 5 parts being created at each point. The forming temperature, forming time, and forming force were the three parameters selected as inputs, with each being given a low, medium, and high value. Table 7-1 shows the parameters altered in the experiment, along with each of the three values of the parameters during the experiment. The full data resulting from the DOE can be seen in Appendix C. Parameter Low Value Medium Value High Value Forming Temperature 115 C 120 C 125 C Forming Time 20 seconds 30 seconds 40 seconds Forming Force 1000 N 1100N 1200 N Table 7-1: The parameters to be altered during the designed experiment, as well as the values selected for those parameters. A full 33 factorial test was selected for this experiment, with each point having five repetitions. 7.1 Measurement Errors Over the course of the DOE, several issues arose with the measurement tool, which was not designed to measure as wide a range of parts as was produced by this experiment. Parts with extremely wide channels incurred the problem shown in Figure 7-1. Part DOE 2, one of most poorly-formed parts, had three channels which registered as extremely wide and one channel which registered as significantly more narrow. Looking at the image more closely, it can be seen that the edge detection software registered the inner edge of one of the channel walls, rather than the outer edge. Parts DOE 1-10, excluding part DOE 4, all suffered from this error. These parts 101 correspond to a forming temperature of 115 C, a forming time of 20 seconds, and forming forces of 1000 N and 1100 N. Figure 7-1: One measurement error incurred during the DOE. The left image shows the measurements of the four channels from part DOE 2. The left-most channel clearly has a much narrower measurement than the other three, and upon closer examination, as seen in the image on the right, the software has measured the distance from the outside of one channel to the inside of the other, rather than the distance between the outside of both channels. A second measurement error occurred when making very well-formed channels. When the measurement tool was developed, the average channel width on parts was approximately 70 gm, and the software was calibrated accordingly. Because of this, some parts with narrow channels had measurements with lower accuracy. Figure 7-2 shows both the pattern used to by the measurement software to match parts, with channels approximately 70 pm wide, and a part with channels much narrower than expected by the software. Figure 7-2: The pattern used by the image matching software to determine that a part is present (left) and a part which the measurement software had trouble detecting, owing to how narrow its channels were (right). 102 The most common measurement error in well-formed parts is shown in Figure 7-3. The part in question can be seen to have two narrow channels, and two channels which are much wider. A close-up of the base of the wider channels reveals that the outline of the channels has been drawn several pixels away from the actual channel wall. Because the edge finding is calibrated for the much darker walls of the less-formed parts, the lighter parts are not always correctly measured. Channels with poor measurements were discounted in the DOE data. Figure 7-3: A part where two of the channels have been measured, and a close-up of the two channels that were improperly measured. The edge-finding has recorded the channels as being wider than they actually are. 7.2 DOE Results The channel width per set of parameters is shown in Table 7-2. This number was determined by taking the average channel width of the four channels for each part, then averaging the result per group of five parts with the same parameter values. The standard deviation and number of samples is also indicated. Two parts, DOE 51 and DOE 117, were removed from the data list owing to being significantly different from the other four parts in their groups, as they were thus determined to be outliers. Parts DOE 92, DOE 98, and DOE 102 were slightly off from the rest 103 of their groups, causing the standard deviations of greater than 2 gm in the initial groups with a forming temperature of 125 C. 104 Forming Forming Forming Average Channel Channel Width Number of Temperature (C) Force (N) Time (s) Width (pm) St. Dev. (pm) Samples 115 1000 20 93.93 3.07 5 115 1100 20 91.45 3.69 5 115 1200 20 84.98 1.75 5 115 1000 30 80.07 1.33 5 115 1100 30 75.09 0.58 5 115 1200 30 72.96 1.22 5 115 1000 40 72.60 1.72 5 115 1100 40 70.64 1.12 5 115 1200 40 68.16 1.33 5 120 1000 20 68.46 1.82 5 120 1100 20 65.83 1.29 4 120 1200 20 65.03 0.82 5 120 1000 30 64.78 0.38 5 120 1100 30 62.29 1.41 5 120 1200 30 61.65 1.34 5 120 1000 40 63.78 1.19 5 120 1100 40 62.36 1.10 5 120 1200 40 61.54 0.92 5 125 1000 20 63.58 2.31 5 125 1100 20 63.39 2.47 5 125 1200 20 61.15 2.31 5 125 1000 30 60.83 1.12 5 125 1100 30 59.39 1.78 5 125 1200 30 57.51 0.37 4 125 1000 40 58.83 0.75 5 125 1100 40 57.47 0.56 5 125 1200 40 57.82 0.81 5 Table 7-2: The results of the hot embosser DOE. Five parts were made at each of three levels of the forming temperature, forming force, and forming time. The average channel width, standard deviation, and number of parts at each parameter are shown. Two parts were removed owing to being significant outliers. 105 The data is also shown as a series of three 3D mesh plots. Figure 7-6 shows the parts which have been formed at 115 C. In this plot, most of the parts have channels much wider than the tool width of 50 gm. Parts formed at this temperature have channels ranging from 68 to 94 pm, with parts formed at higher form times and forming forces having narrower channels. Because this forming temperature is so close to the glass transition temperature of the PMMA used, 114 C, the plastic does not easily flow, resulting in parts with poorly formed features. DOE, Thot = 115 C ,-95 E 90 85 u70 20 < 65 1200 11501100 1050 1050 10004 1000 40 30 I-,.' Force (N) Figure 7-4: The average channel widths of parts formed at 115 C, as a function of forming force and forming time. Parts formed at 115 C in this range have a much higher width than the forming parts, as the PMMA only begins to flow at 114 C. Increased form time and force both result in smaller channels. The average values for the parts formed at 120 C are shown in Figure 7-5. At this temperature, like at 115 C, increased form time and forming force cause decreased average channel width. Parts have significantly lower channel widths than those formed at 115 C, however, with part widths ranging from 61 jm to 70 jim. At the highest forming force, increasing the forming time from 30 seconds to 40 seconds does not decrease the channel width, suggesting at a limit at this temperature and force. 106 DOE, Thot = 120 C 66 cu 64 CU C2 > 60 1200 20 25 1150 30 1103 1050 1000 40 Form time (s) Force (N) Figure 7-5: The average channel width for parts formed at 120 C. Parts at this temperature, given higher form times and forming forces, get closer to ideal channel width of less than 60 gm, but do not reach it at these parameters. Increased forming force and form time both decrease channel width, except at the highest forming force when increasing the form time from 30 seconds to 40 seconds. At the highest temperature examined, 125 C, the parts form-ed once again had narrower channel widths. This data is shown in Figure 7-6. Here, a theoretical limit is again visible. Increasing the force while the form time is 40 seconds and increasing the forming time from 30 seconds to 40 seconds at a forming force of 1200 N both do not provide significant decreases to the part width. Because the measurement software measures the outside of the channel walls, the minimum channel width expected is approximately 55pm. The parts with the smallest channels formed at 125 C begin to approach that limit, indicating why the plot begins to plateau. 107 DOE, Thot =125C 64 E 63 CU S58 20 57 12001150 1150 1100 1050 1000 40 3 Form time (s) Force (N) Figure 7-6: The average channel widths of parts formed at 125 C. Here, many of the parts are below 60 pm in channel width, and the graph starts to level off at high form times and forming forces. In order to get a better sense for how the data altered across all parameters, an additional plot was created to compare the average channel width, the forming temperature, and the approximate forming strain, computed by multiplying the forming force and forming temperature. This graph, shown in Figure 7-7, indicates that, in the region explored, forming strain makes a minimal difference at temperatures more than 5 degrees higher than the glass transition temperature of the parts, while at lower temperatures, forming strain has a large impact. 108 Hot Embosser Designed Experiment 80' 0 115E2 50 115 12032 125 104 4X 5 Force Temperature (C) * t (N*s) Figure 7-7: The average channel width as a function of forming temperature and forming strain. Forming strain is given by the forming force times the forming time. In this region, forming strain has a much larger impact on the part at temperatures close to the glass transition temperature of the part. Using a least squares fit in JMP to analyze the data, all the primary factors were found to be statistically significant, as were all of the cross terms. The square term for force was not statistically significant, but the square terms for forming time and forming temperature where. The impact of each parameter is shown in Figure 7-8, along with the probability that the term in question is significant. To determine the fit of the model, Figure 7-9 shows the expected values plotted against the predicted values, and has a correlation of R-squared = .96, indicated that the fit is good. 109 Parameter Estimates Term Estimate Std Error t Ratio Prob>jtj Intercept T.hot 359.09739 7.388907 48.60 -2.185614 0.055425 -39.43 Force -0.019084 0.002308 t-form (Thot-119.018)*(TLhot-119.018) (Thot-119.018)*(Force-109554) (Force-1095.54)*(Force-1095.54) (T_hot-119.018)*(tiform-28.8393) (Force-1095.54)*(tform-28.8393) (tform-28.8393)*(tform-28.8393) -0.494235 0.3163492 0.0041442 1.8417e-5 0.1334081 0.0008571 0.035343 0.025935 0.017666 0.000645 3.962e-5 0.008085 0.000293 0.004118 -8.27 -19.06 17.91 6.43 0.46 16.50 2.92 8.58 <.0001' <.0001* <.0001* <.0001* <.0001* <.0001* 0.6431 <.0001* 0.0043* <.0001* Figure 7-8: The impact of each term and cross-term, along with the probability that the given parameter is statistically significant. All parameters except for the force curvature term are highly significant. 1 - -- ---- ---- --- --- 95 90 85 4.) 0 80 U) U) 75 70 . ........... ... 65 55 60 65 70 75 80 85 90 Average Predicted P<.0001 RSq=0.96 RMSE=1.965 95 100 Figure 7-9: The residuals for the least-squares fit model of the DOE data. The predicted fit is highly correlated with the data. 110 CHAPTER 8 CONCLUSIONS Microfluidics devices are important for the medical industry, and research is currently ongoing about their manufacturing. Injection molding, while common in industry and higher-rate than many other methods, has an undesirable start-up cost and initial time investment. To investigate a method with both cheaper and more flexible tooling, a factory was created which used the method of hot embossing parts to create the microfluidics features. Due to the eventual desire to mass-produce embossed microfluidics devices, the consistency of the manufacturing process was crucial. Using previously built machines, this small factory was constructed which could create microfluidics parts with a takt time of 135 seconds. Parts were then made in batches of 60 and the sources of variation within the system examined and reduced until the system was in a state of statistical control. Once this was done, a designed experiment was run on the hot embosser using the full system. A least squares regression analysis on the data gathered by this experiment determined that the forming time, forming temperature, forming force, all cross-terms, the square term for forming temperature and the square term for forming time were all statistically significant. More than 1000 parts were made using this system, which had a minimized cycle time in order to quickly produce parts. To create this factory, an Epson GlO robot was programmed to move parts throughout the system and interact with the existing machines. The motions of the robot through the system were set to enable parts to be placed in each of the machines with low positional variation. The robot was programmed to determine which tasks could be performed at a given time, and then to select a task to perform based on a pre-determined list of priorities. The robot software was then coordinated with the LabView software for the other machines to create a fully automated 111 system. A simulation of this system was created to verify that the system was operating as expected, using the expected and actual cycle times as a metric. Sources of variation within the system were identified. The hot embosser, given consistent settings, was shown not to be a significant source of cycle-to-cycle variation. The taping machine was shown to not introduce a significant source of variance to the system, as was the placement in the functional tester. Secondary lighting of the functional tester was shown to not be a source of variance for the system. Primary lighting was shown to be a source of variance, which is why the primary lighting was held constant through the manufacture and testing of all parts. When considering the takt time of the system, several parameters are relevant. The hot embosser, which is the system bottleneck, may be able to have a lower cycle time if the forming time is decreased, and the other parameters raised to compensate for this. Increasing the processing time on the functional tester also impacts the takt time of the system, depending on the series of actions the robot will perform. In one experiment, when the functional tester was unable to provide a 'done' signal, the robot switched to a different order of actions. When the functional tester issue was remedied, the order of actions once again changed over a period of several parts, before finally settling at its usual steady-state order of operations. While the designed experiment indicated that more well-formed parts could be created by increasing forming temperature, forming force, and forming time, several issues were noted that were not captured in the channel width data. The difficulty of the functional tester to recognize well-formed parts would make cycle-to-cycle control on parts of that quality difficult, as feedback would not provide the necessary information. The well-formed parts also cause more problems with the taper either having tape stuck to the belt, the cutting machine failing to cut, or the robot failing to pick up the part. This may be due to the bulk deformation of the most wellformed parts, which corresponded to an approximately 3.5% increase in area. While this is not a large increase in area, the corresponding slight change in shape of the part may have interfered with the part registration against hard edges, such as those in the taping machine and the talon on the robot. 112 8.1 Next Steps Now that the system has been confirmed to be in control, and the designed experiment has found the impacts of the hot embossing parameters, a closed-loop cycle-to-cycle control of the system can be implemented. An appropriate control scheme will have to be selected, as the current taping machine causes a buffer of 5 to 6 parts between the hot embossing machine operation and the measurement operation. The creation of closed-loop cycle-to-cycle control will also require the alteration of the measurement code to directly output the measured data into LabVIEW, rather than recording it in a separate spreadsheet file. Once this has been done, the hot embossing software can be modified to reference global variables in the functional tester software, and use those to compute the appropriate process parameters. To test this, a number of experiments can be done. A step change in part quality can be induced by switching from parts with the glass transition temperature of 114 C to parts with a higher or lower glass transition temperature. A similar step change can also be implemented by simply changing the reference value for the desired channel widths of the parts. To improve the system, a few additional changes may be done. By altering the taping machine, the buffer between the hot embossing machine and the functional tester can be decreased by several parts. The functional tester software should also be modified to improve the reliability when observing parts with thin walls. Additionally, some sort of filtering on the functional tester results, to either discard or modify results where one channel has been incorrectly measured, would greatly improve the overall accuracy of the automated software. Once these things have been done, the system can be modified with a new bulk metallic glass hot embossing tool and a new pattern for the measurement software. This would enable the system to begin producing parts that can then be used in other labs for a variety of microfluidics tests. The system can also be modified to dramatically increase its scale, which would enable the production of microfluidics devices for commercial applications, using the cycle to cycle control to produce a minimum of faulty parts. 113 114 APPENDIX ROBOT SAMPLE CODE To aid future programmers of the robot, the following functions have been included to help give a sense of the current type of programming done for the system. The function Chip2HE is one task the robot may perform, which consists of placing the part in the hot embosser, then triggering the hot embosser to begin running: Function Chip2HE GoToZoneO 'ifport 0 is holding a blank chip If (Memln(Port0Chip) = 1) Then FastSpeed 'approch the HE, then go through the placement sequence Go HEAppO 'place chip MidSpeed Go HEInOa Go HEInOb Move HEInOc 'push to make sure chip is against the pins Go HEPush0a Go HEPushOb Go HEPlaceO Off Vacuum0 Wait 1 'leave HE without disturbing chip Go HEPlaceUpO Go HEOut0 Go HEAppO 'change the status of port 0 from'holding a blank chip' to 'not holding a chip' MemOut (PortOChip), 0 ElseIf(Memln(PortlChip) = 1) Then MidSpeed Go HEAppl Go HEInla Go HEInIb 115 Go HEInIc Go HEPushla Go HEPushlb Off Vacuuml Wait 1 Go HEPlaceUpI Go HEOutI Go HEAppI MemOut (PortIChip), 0 Else 'If the robot isn't holding any blank chips, throw an error Error 8003 EndIf FastSpeed 'turn on the variable corresponding to a chip in the hot embosser MemOn (HEChip) 'turn off the variable which resets the hot embosser MemOff (HEReset) 'run the code for sending the start flag to the hot embosser Xqt HEStartFlag 'run the code for checking if the hot embosser detected a missing 'chip Xqt HEChipCheck Fend The function PickTask details the selection process of a new task, and how it is accomplished. Function PickTask 'function that will be called by labview 'this function enables the robot to select the next task to 'be performed, then calls that task 'booleans for the eight basic tasks that can be performed Boolean Blank2Arm, Arm2HE, HE2Arm, Arm2Tape, Tape2Arm Boolean Arm2Test, Test2Arm 'booleans detailing which chips are on the arm Boolean ArmEmpty, ArmBlank, ArmHE, ArmTape Boolean NoArmChips, OutOfCom 'set NoArmChips to false 'if it is true it will become true later NoArmChips = False; 'determine which chips the arm has If ((Memln(Port0Chip)= 0) Or (Memln(PortlChip) = 0)) Then 'if at least one port on the arm isn't holding a chip 'set ArmEmpty to true ArmEmpty = True; If ((Memln(Port0Chip)= 0) And (MemIn(PortlChip)= 0)) Then 'if BOTH ports on the arm aren't holding chips 'set NoArmChips to true 116 '(otherwise it must be false) NoArmChips = True; EndIf Else 'otherwise, if both ports on the arm ARE holding chips, 'will be false, so set ArmEmpty to true ArmEmpty = 0; EndIf 'set whether or not a blank chip is on the arm If ((Memln(Port0Chip) = 1) Or (MemIn(PortlChip) = 1)) Then ArmBlank = 1; Else ArmBlank = 0; EndIf 'set whether or not there is an embossed chip on the arm If ((Memln(PortOChip)= 2) Or (Memln(PortlChip)= 2)) Then ArmHE = 1; Else ArmHE = 0; EndIf 'set whether or not there is a taped chip on the arm If ((MemIn(PortOChip) = 3) Or (Memln(PortlChip)= 3)) Then ArmTape = 1; Else ArmTape = 0; EndIf 'determine which actions the arm can perform 'if there is a spot on the arm and there are still blank chips 'left, then the robot can pick up a new blank chip If (ArmEmpty And (Not (-MemSw(NoBlanks)))) Then Blank2Arm= 1; Else Blank2Arm = 0; EndIf 'if there isn't a chip in the heat exchanger and the arm is 'holding a blank chip, then a chip can be added to the 'heat exchanger If ((Not (-MemSw(HEChip))) And ArmBlank) Then Arm2HE = 1; Else Arm2HE = 0; EndIf 'if there is a spot on the arm and the heat exchanger is done 'then the chip can be taken from the heat exchanger If (ArmEmpty And MemSw(HEDone)) Then HE2Arm= 1; Else HE2Arm= 0; EndIf 'if the taper isn't running and the arm is holding 'an embossed chip, and there is room in the taper, then a chip can be 'added to the taper If ((Not (-MemSw(TaperRunning))) And ArmHE And (Not (-MemSw(TaperFull)))) Then 117 Arm2Tape = 1; Else Arm2Tape = 0; EndIf 'if there is an open port on the arm and the taper has the maximum number 'of chips and the taper is not running then the robot can pick up a chip 'from the taper If (Not (-MemSw(TaperRunning)) And ArmEmpty And (MemSw(TaperFull))) Then Tape2Arm= 1; Else Tape2Arm= 0; EndIf 'if there is a taped chip on the arm and no chip in the tester 'then the robot can put a chip in the tester If ((Not (-MemSw(FTChip))) And ArmTape) Then Arm2Test = 1; Else Arm2Test = 0; EndIf 'if the robot has an open port and the taper is finished 'then the chip can be removed from the taper If (MemSw(FTDone) And ArmEmpty) Then Test2Arm= 1; Else Test2Arm= 0; EndIf 'remove things that will jam the robot 'if the robot is holding a blank chip and there is a chip in 'the hot embosser, don't pick up another blank chip If (ArmBlank And MemSw(HEChip)) Then Blank2Arm= 0; EndIf 'if the robot is holding a chip and the hot embosser and tester 'have chips in them, don't pick up another blank chip or 'another chip from the taper If ((Not (NoArmChips)) And MemSw(HEChip) And MemSw(FTChip)) Then 'as long as the chip on the arm isn't an embossed chip, don't pick up a 'chip from the taping machine If (Not (ArmHE)) Then Tape2Arm= 0; Endlf 'if the chip on the arm isn't an embossed chip, OR the taping machine is 'full, don't pick up a chip from the taping machine If (Not (ArmHE) Or MemSw(TaperFull)) Then Blank2Arm 0; EndIf EndIf 'if the robot is holding at least one chip and the hot 'embosser and taper are full, don't pick up another blank chip If ((Not (NoArmChips)) And MemSw(HEChip) And (MemSw(TaperFull))) Then Blank2Arm= 0; 118 EndIf 'if the robot is holding a non-embossed chip and there's a chip in the 'tester, don't pick up a chip from the taper If ((Not (NoArmChips)) And MemSw(FTChip) And Not (ArmHE)) Then Tape2Arm= 0; EndIf 'if the hot embosser hasn't been successfully reset from the last time you took a chip out, 'don't try to take another chip out If (Not (-MemSw(HEResetSuccess))) Then HE2Arm= 0; EndIf 'if the functional tester hasn't been successfully reset from the last time you took a chip out, 'don't try to take another chip out If (Not (-MemSw(FTResetSuccess))) Then Test2Arm= 0; EndIf 'debug code 'if either of the ports is out of comission (state 5) set 'OutofCom to true If ((MemIln(PortOChip)= 5) Or (Memln(PortlChip)= 5)) Then OutOfCom= 1; Else OutOfCom= 0; EndIf 'if both ports are out of comission why would you be running 'anything 'if one of the ports is out of comission (state 5) then If (OutOfCom) Then 'don't let the robot pick up a chip if there is a chip in the hot 'embosser If (MemSw(HEChip)) Then Blank2Arm= 0; EndIf 'if the taper is full, don't pick up a chip from the hot embosser If (MemSw(TaperFull)) Then HE2Arm= 0; EndIf 'if the tester is full, don't pick up a chip from the taper If (MemSw(FTChip)) Then Tape2Arm= 0; EndIf EndIf 'end debug code 'task priority If (Arm2HE) Then 'put chip in HE Print "Chip to HE." 119 MemOn (Chip2HEFlag) Chip2HE ElseIf ((ArmBlank) And HE2Arm) Then 'ElseIf ((ArmBlank Or MemSw(NoBlanks)) And HE2Arm) Then 'take chip from HE if robot is holding a blank chip Print "Chip from HE." MemOn (ChipFromHEFlag) ChipFromHE ElseIf (Arm2Test) Then 'put a chip in the functional tester Print "Chip to tester." MemOn (Chip2FTFlag) Chip2Test ElseIf (Blank2Arm) Then 'get a new chip Print "Get new chip." MemOn (NewChipFlag) NewChip ElseIf (Test2Arm) Then 'take a chip from the functional tester and drop it Print "Get tested chip." MemOn (ChipFromFTFlag) ChipFromTest ElseIf (Arm2Tape) Then 'put a chip in the taping machine Print "Chip to taper." MemOn (Chip2TapeFlag) Chip2Tape ElseIf (Tape2Arm) Then 'take a chip from the taping machine Print "Get taped chip." MemOn (ChipFromTapeFlag) ChipFromTape ElseIf (HE2Arm) Then 'take a chip from the HE even though the robot isn't holding 'a blank chip MemOn (ChipFromHEFlag) Print "Getting chip from HE without returning one." ChipFromHE ElseIf (MemIn(WaitCount)= 0) Then 'if this is the first time the robot is waiting for something, check 'to see if it can do something useful while it is waiting Print "Checking for next task." MemOn (WaitFlag) WaitTask Else Print "Waiting for task." MemOn (WaitFlag) NoTask EndIf 'if the system had to wait this time, increase the number of times 'in a row the system had to wait by one If (MemSw(WaitFlag)) Then MemOut (WaitCount), Memln(WaitCount) + 1 'otherwise, set that variable to zero 120 Else MemOut (WaitCount), 0 EndIf 'turn off the memory bits to signal that the task selected above has been completed MemOff (NewChipFlag) MemOff (Chip2HEFlag) MemOff(ChipFromHEFlag) MemOff (Chip2TapeFlag) MemOff (ChipFromTapeFlag) MemOff(Chip2FTFlag) MemOff (ChipFromFTFlag) MemOff(FinishedChipFlag) MemOff (WaitFlag) ChipsDoneCheck MemOff (0) Fend The function DisconnectRecovery is performed by the robot after an shutdown, to make sure that it begins operating from a safe position without colliding with a machine. Function DisconnectRecovery 'function for returning the robot to a neutral position without hitting 'anything after it has abruptly disconnected 'should NOT be used if someone was moving the robot around while it 'was powered down 'the motor must be on to run this function 'make sure the robot is moving as slowly as possible Power Low Speed 1 Accel 100, 100 'get the robot's current coordinates Double xpos, ypos, zpos, upos PO = CurPos; xpos = CX(PO); ypos = CY(PO); zpos = CZ(PO); upos = CU(PO); 'display the robot's current coordinates Print xpos, ypos, zpos, upos 'if the robot is in the hot embosser, move out of it If ((xpos > -500) And (xpos < -450) And (zpos > -409)) Then 121 If ((ypos > -60) And (ypos < 0)) Then If (upos < 150) Then Go HEOutO Go HEAppO Else 'coordinates for leaving the hot embosser from port 1 Go HEOutI Go HEAppI EndIf EndIf EndIf 'if the robot is in the dispenser, move out of it If ((xpos > -60) And (xpos < -40) And (zpos > -409)) Then If ((ypos > 35) And (ypos < 45)) Then If (upos < 150) Then Go DispAppO Else Go DispAppI EndIf EndIf EndIf If (zpos < -409) Then 'if the robot is in the taper entrance, move out of it If ((xpos > -570) And (xpos < -470) And (ypos > 140) And (ypos < 170)) Then If (upos > 40) Then Go Tapeln0a Go TapeDownO Go TapeAppO Else Go TapeInla Go TapeDownl Go TapeAppI EndIf 'if the robot is in the taper pickup area, move out of it ElseIf ((xpos > -550) And (xpos < -450) And (ypos > 520) And (ypos < 590)) Then If (upos < 70) Then Go GetTapeIn0a Go GetTapeDownO Go GetTapeAppO Else Go GetTapeInla Go GetTapeDowni Go GetTapeAppI EndIf 'if the robot is in the testing area, move out of it ElseIf ((xpos > -366) And (xpos < -214) And (ypos > 668) And (ypos < 720)) Then If (upos < 30) Then Go TestIn0a Go TestDown0 Go TestAppO Go GetTapeAppO Else Go TestInla Go TestDownl 122 Go TestAppI Go GetTapeAppI EndIf 'if the robot is in Zone 1, move out of it ElseIf (ypos > 500) Then Go TestDown0 Go TestAppO Go GetTApeAppO 'otherwise, if the robot is too low to move back to neutral safety, 'move straight up from its current location Else CZ(PO)= -313 Go PO EndIf EndIf 'if the robot is in the testing area, move out of it If ((xpos > -366) And (xpos < -214) And (ypos > 600) And (ypos < 694)) Then If (upos < 30) Then Go GetTapeAppO Else Go GetTapeAppI EndIf EndIf Go Neutral MemOn (Zone0) MemOff (Zone 1) Fend 123 124 APPENDIX B ROBOT POINTS The following points are used by the robot to move parts throughout the system. Explanations for each point have been included. Each effector head has its own set of points, so each pair of points corresponds to the same explanation, but for effector heads. Neutral: Starting position from which any full system code can be safely run. DispAppO/DispAppl: Position approaching the dispenser for the purposes of picking up a part. This position can be moved to from the Neutral position. AboveDispO/AboveDispl: Position directly above DispEnterO/DispEnterl for the purposes of picking up a part. DispEnterO/DispEnterl: Position where the effector head has been lowered into the dispenser, with the talon not yet touching the parts. This position is directly below AboveDispO/AboveDispl. DispAlignO/DispAlignl: Position where the talon has slid the part slightly out of the dispenser for the purpose of alignment. DispDownO/DispDownl: Position directly below DispAlign/O/DispAlign1, to enable the effector head to be in good contact with the part. The vacuum is then turned on in preparation for DispSideO/DispSidel. DispSideO/DispSidel: Position where the effector head has dragged the part against one side of the dispenser for the purpose of alignment. This alignment is perpendicular to that done by DispAlignO/DispAlignl. DispPullO/DispPull 1: Position where the effector head has pulled the part most of the way out of the dispenser from DispSideO/DispSidel. The part is still in contact with other parts in the dispenser. DispPickupO/DispPickupl: Position directly above DispPullO/DispPulll, where the effector head has lifted the part away from the spring-loaded parts still in the dispenser, to prevent an impulse from moving the part. 125 HEAppO/HEApp1: Position for approaching the hot embosser for the purposes of picking up or placing a part. This position can be moved to from the Neutral position. HEInOa/HEInla: First of three positions for placing a part in the hot embosser. This position places the part sufficiently above the lower platen to avoid hitting it. When withdrawing a part, this is the third of three positions to pull it out. HEInOb/HEInIb: Second of three positions for placing a part in the hot embosser. This position lowers the part directly onto the platen from HEInOa. When withdrawing a part, this is the second of three positions to pull it out. HEInOc/HEInIc: Third of three positions for placing a part in the hot embosser. This position slides the part along the platen and under the hot embosser fingers from HEInOb/HEInib. When withdrawing a part, this is this first of three positions to pull it out; this position lowers the effector head over the part from HEGetO/HEGetI. HEPushOa/HEPushla: First of two positions to push the part against the three alignment pins. This position pushes the part against the two back alignment pins slightly, but not far enough to knock the part off of the vacuum ports on the effector head. HEPushOb/HEPushlb: Second of two positions to push the part against the three alignment pins. This position pushes the part against the side alignment pin, as well as keeping it pressed against the back alignment pins. HEPlaceO/HEPlacel: Position directly below HEPush0b, this allows the part to be placed in the hot embosser, rather than dropping it and incurring a positioning error. HEPlaceUpOa/HEPlaceUpla: Position for moving the effector head out of the hot embosser after a part has been placed. This position is directly above HEPlaceO/HEPlacel to prevent moving the part while the robot is withdrawing. HEOutO/HEOutl: This position moves the robot effector head out of the hot embosser when a part has been placed. It is distinguished from HEAppO/HEAppi and HEInOa/HEInla in that the height is appropriate to provide clearance between the talon on the effector head and a part that has been placed in the hot embosser. It is also used when picking up a part, before moving to HEGetO/HEGeti. HEGetO/HEGeti: This position moves the effector head to directly above a part in the hot embosser, so that the effector head can be lowered onto the part without disturbing its placement. This position is directly above HEDownO/HEDownl. HEDownO/HEDownl: This position lowers the effector head directly over a part for the purpose of moving it out of the hot embosser. TapeAppO/TapeApp1: First of two positions for approaching the taping machine for the purpose of placing a part. This position can be moved to from the neutral position. 126 TapeDownO/TapeDownl: Second of two positions for approaching the taping machine for the purpose of placing a part. This position lowers the effector head to slightly above the taping machine belt and is directly below TapeAppO/TapeApp 1. Tapeln0a/Tapelnla: First of two positions for placing a part in the taping machine. This position moves the effector head to directly above the taping belt. TapeInOb/TapeInlb: Second of two positions for placing a part in the taping machine. This position moves the part to between the belt and the IR sensor. TapeUpO/TapeUp 1: Position for moving the effector head directly above the IR sensor. This position enables the part to be removed from the effector head if turning off the vacuum does not. TapeOutO/TapeOutl: Position for movement away from the taper after the effector head has moved to above the IR sensor. GetTapeAppO/GetTapeAppl: First of two positions for approaching the pickup side of the taping machine for the purpose of picking up a taped part. This position can be moved to from Neutral position. GetTapeDownO/GetTapeDownl: Second of two positions for approaching the pickup side of the taping machine for the purpose of picking up a taped part. This position lowers the effector head to slightly above the taping machine surface and is directly below GetTapeAppO/GetTapeApp 1. GetTapelnOa/GetTapelnla: First of three positions for approaching the taped part for pickup. This position is in the taping machine at the appropriate height. GetTapelnOb/GetTapelnIb: Second of three positions for approaching the taped part for pickup. This position is directly above the taped part. GetTapelnOc/GetTapelnl c: Third of three positions for approaching the taped part for pickup. This position has the robot almost in contact with the part, and is directly below GetTapeInOb/GetTapeInlc. GetTapeAlignO/GetTapeAlignl: This position pulls the part slightly out of the taping machine using the talon on the effector head. This causes the part to be aligned with the effector head. GetTapeSideO/GetTapeSidel: This position moves the part against the side of the taping machine, using the vacuum, to make sure it is appropriately located on the effector head. GetTapePullO/GetTapePulll: Position which moves the part the rest of the way out of the taping machine. GetTapePickupO/GetTapePickupI: This position lifts the part out of the taping machine. It is directly above GetTapePul1O/GetTapePull 1. 127 TestAppO/TestApp1: First of two positions for approaching the functional tester. This position can be moved to from the neutral position. TestDownO/TestDownl: Second of two positions for approaching the functional tester. This position moves the effector head down to approximately the level of the functional tester. TestInOa/TestInl a: First of three positions for placing a part in the functional tester. This position moves the part to directly outside of the opening of the functional tester, aligned with the opening. TestInOb/TestInib: Second of three positions for placing a part in the functional tester. This position moves the inside the functional tester without overshooting the alignment pins. TestPushO/TestPushl: This position moves the part against the three alignment pins in the functional tester with minimal overshoot against the back alignment pins to prevent the part from being knocked off the vacuum holes on the effector head. TestPlaceO/TestPlacel: This position lowers the part to the base of the functional tester. This position is directly below TestPushO/TestPushl to keep the part against the three alignment pins. TestPlaceUpOa/TestPlaceUpla: First of two positions for removing the effector head from the functional tester after placing a part without disturbing the placed part. This position is directly above TestPlaceO/TestPlaceI. This is also the second of two positions for moving the effector head above placed parts in the functional tester for the purpose of removing them. TestPlaceUpOb/TestPlaceUplb: Second of two positions for removing the effector head from the functional tester after placing a part. This position moves the effector head out of the functional tester without causing a collision with the sides of the part clamping device. This is also the first of two positions for moving the effector head above placed parts in the functional tester for the purpose of removing them. TestGetO/TestGetl: This position is used when removing a part from the functional tester. It is used to align the part to the effector head. This position slightly pulls the part straight out of the testing machine from TestPlaceO/TestPlacel. TestPickupO/TestPickupl: This position picks up the part from within the functional tester to remove it without causing collisions with the sides of the part clamp. This position is directly above TestGetO/TestGetl. DropChipUpO/DropChipUpl: Position directly above TestAppO/TestAppI which is used to prepare for dropping a part in the finished parts bin, without colliding with parts already in the bin. DropChipBoxO/DropChipBoxI: Position above the finished parts been, from which parts can be dropped to fall into that bin. 128 APPENDIX DOE DATA 33 Factorial DOE All parts formed with theat = 50s, tcoo = 30s, and Tc 01 = 60 C Part Thot Force tfom, Channel 1 Channel 2 Channel 3 Channel 4 Average Number (C) (N) (s) (gm) (prm) (pm) (jm) (pm) DOE 1 115 1000 20 N/A 89.50 92.78 92.75 91.68 DOE 2 115 1000 20 N/A 95.49 95.43 95.76 95.56 DOE 3 115 1000 20 N/A 89.41 98.87 98.99 95.76 DOE 4 115 1000 20 94.52 92.83 102.15 98.18 96.92 DOE 5 115 1000 20 N/A 88.64 89.52 91.04 89.73 DOE 6 115 1100 20 N/A 88.44 88.27 89.94 88.88 DOE 7 115 1100 20 N/A 83.61 89.82 90.28 87.90 DOE 8 115 1100 20 N/A 92.75 95.75 96.62 95.04 DOE 9 115 1100 20 N/A 94.24 96.89 96.29 95.81 DOE 10 115 1100 20 N/A 87.04 89.85 92.00 89.63 DOE 11 115 1200 20 83.73 82.01 83.88 83.54 83.29 DOE 12 115 1200 20 86.42 84.45 89.87 84.77 86.38 DOE 13 115 1200 20 85.22 84.32 89.52 89.94 87.25 129 DOE 14 115 1200 20 82.68 83.43 88.71 82.61 84.36 DOE 15 115 1200 20 84.40 80.33 86.52 83.22 83.62 DOE 16 115 1000 30 79.21 78.98 82.18 83.26 80.91 DOE 17 115 1000 30 78.21 77.87 80.98 77.57 78.66 DOE 18 115 1000 30 81.17 79.99 82.23 82.71 81.53 DOE 19 115 1000 30 76.73 79.79 79.82 78.32 78.67 DOE 20 115 1000 30 80.13 78.95 80.93 82.28 80.57 DOE 21 115 1100 30 74.08 74.37 75.77 75.37 74.90 DOE 22 115 1100 30 74.63 74.32 76.10 77.02 75.52 DOE 23 115 1100 30 75.18 74.40 75.58 76.40 75.39 DOE 24 115 1100 30 72.68 76.19 74.45 73.33 74.16 DOE 25 115 1100 30 74.55 73.48 78.83 75.08 75.49 DOE 26 115 1200 30 72.12 71.14 76.39 75.41 73.77 DOE 27 115 1200 30 73.63 72.14 76.23 76.78 74.70 DOE 28 115 1200 30 72.87 71.85 72.90 71.78 72.35 DOE 29 115 1200 30 71.22 71.15 72.23 73.95 72.14 DOE 30 115 1200 30 70.73 71.53 74.45 70.74 71.86 DOE 31 115 1000 40 71.01 70.03 72.52 71.32 71.22 DOE 32 115 1000 40 70.35 71.22 70.70 69.46 70.43 DOE 33 115 1000 40 72.82 72.93 73.57 72.55 72.97 DOE 34 115 1000 40 72.61 75.97 75.37 73.72 74.42 DOE 35 115 1000 40 72.26 73.31 74.40 75.88 73.96 130 DOE 36 115 1100 40 69.63 72.48 74.10 73.01 72.31 DOE 37 115 1100 40 69.59 73.57 70.68 69.12 70.74 DOE 38 115 1100 40 70.44 69.72 71.14 70.47 70.44 DOE 39 115 1100 40 67.24 68.19 72.47 68.79 69.17 DOE 40 115 1100 40 70.05 71.35 69.83 70.90 70.53 DOE 41 115 1200 40 66.71 67.36 69.47 66.67 67.55 DOE 42 115 1200 40 66.03 65.35 69.99 67.22 67.15 DOE 43 115 1200 40 68.76 70.09 69.14 69.61 69.40 DOE 44 115 1200 40 65.05 66.47 68.43 67.70 66.91 DOE 45 115 1200 40 67.14 70.62 70.77 70.52 69.76 DOE 46 120 1000 20 67.71 70.38 73.46 71.01 70.64 DOE 47 120 1000 20 66.24 68.96 67.76 67.36 67.58 DOE 48 120 1000 20 68.75 69.68 71.46 70.09 70.00 DOE 49 120 1000 20 66.77 66.89 70.49 67.29 67.86 DOE 50 120 1000 20 65.04 66.21 67.70 65.88 66.21 DOE 51 120 1100 20 59.08 N/A N/A 59.15 59.12 DOE 52 120 1100 20 65.07 68.03 67.69 64.96 66.44 DOE 53 120 1100 20 64.22 65.21 67.04 65.67 65.54 DOE 54 120 1100 20 65.43 69.45 68.48 65.27 67.16 DOE 55 120 1100 20 63.82 63.43 64.87 64.58 64.18 DOE 56 120 1200 20 62.82 65.65 65.49 63.83 64.45 DOE 57 120 1200 20 64.12 64.80 68.14 64.95 65.50 131 DOE 58 120 1200 20 64.50 65.25 67.55 67.73 66.26 DOE 59 120 1200 20 63.48 64.43 65.18 64.49 64.40 DOE 60 120 1200 20 63.14 65.16 65.02 64.84 64.54 DOE 61 120 1000 30 65.63 62.37 66.38 62.33 64.18 DOE 62 120 1000 30 63.87 63.26 65.62 66.29 64.76 DOE 63 120 1000 30 64.02 65.08 65.93 65.14 65.04 DOE 64 120 1000 30 63.45 65.09 66.84 65.28 65.17 DOE 65 120 1000 30 64.56 64.06 65.49 64.83 64.74 DOE 66 120 1100 30 61.55 61.19 64.91 63.62 62.82 DOE 67 120 1100 30 64.60 62.42 66.86 63.49 64.34 DOE 68 120 1100 30 62.98 62.70 62.69 59.92 62.07 DOE 69 120 1100 30 61.73 61.72 63.04 60.09 61.65 DOE 70 120 1100 30 59.78 59.96 63.57 58.91 60.56 DOE 71 120 1200 30 61.23 62.05 59.99 60.84 61.03 DOE 72 120 1200 30 62.79 66.24 63.45 61.73 63.55 DOE 73 120 1200 30 59.79 59.36 62.81 57.64 59.90 DOE 74 120 1200 30 62.17 60.87 62.67 62.05 61.94 DOE 75 120 1200 30 62.00 62.85 62.63 59.75 61.81 DOE 76 120 1000 40 61.81 61.65 64.05 60.62 62.03 DOE 77 120 1000 40 64.71 63.16 64.71 63.12 63.93 DOE 78 120 1000 40 63.88 62.66 64.73 63.47 63.69 DOE 79 120 1000 40 65.16 64.09 67.02 65.28 65.39 132 DOE 80 120 1000 40 63.69 64.30 64.48 63.08 63.89 DOE 81 120 1100 40 62.13 62.92 64.30 62.68 63.01 DOE 82 120 1100 40 60.15 59.96 65.52 57.90 60.88 DOE 83 120 1100 40 60.86 63.06 61.11 61.10 61.53 DOE 84 120 1100 40 61.83 66.29 63.44 60.03 62.90 DOE 85 120 1100 40 62.43 61.90 64.75 64.86 63.49 DOE 86 120 1200 40 62.70 60.70 65.89 61.70 62.75 DOE 87 120 1200 40 59.94 60.30 60.69 60.42 60.34 DOE 88 120 1200 40 60.63 65.04 62.68 58.53 61.72 DOE 89 120 1200 40 61.19 63.48 61.98 61.04 61.92 DOE 90 120 1200 40 62.85 59.33 61.49 60.18 60.96 DOE 91 125 1000 20 63.87 64.93 66.07 63.86 64.68 DOE 92 125 1000 20 59.13 60.34 60.51 58.66 59.66 DOE 93 125 1000 20 63.10 63.45 65.69 64.82 64.27 DOE 94 125 1000 20 63.95 65.63 66.67 66.38 65.66 DOE 95 125 1000 20 62.24 63.74 64.93 63.66 63.64 DOE 96 125 1100 20 61.83 62.43 62.28 60.14 61.67 DOE 97 125 1100 20 59.79 61.97 63.21 64.14 62.28 DOE 98 125 1100 20 64.38 67.26 70.72 68.45 67.70 DOE 99 125 1100 20 61.80 61.02 66.65 63.35 63.21 DOE 100 125 1100 20 59.43 64.75 63.74 60.49 62.10 DOE 101 125 1200 20 63.56 61.62 64.54 64.07 63.45 133 DOE 102 125 1200 20 57.41 56.23 58.75 57.65 57.51 DOE 103 125 1200 20 61.55 57.21 62.48 61.16 60.60 DOE 104 125 1200 20 61.17 62.41 60.85 61.50 61.48 DOE 105 125 1200 20 61.04 61.33 64.71 63.70 62.70 DOE 106 125 1000 30 61.12 61.75 61.88 62.13 61.72 DOE 107 125 1000 30 59.60 58.61 62.49 58.79 59.87 DOE 108 125 1000 30 59.95 58.95 62.20 58.00 59.78 DOE 109 125 1000 30 60.05 58.75 63.01 60.21 60.51 DOE 110 125 1000 30 60.00 63.62 62.96 62.47 62.26 DOE 111 125 1100 30 61.18 59.68 59.81 57.15 59.46 DOE 112 125 1100 30 62.38 61.49 65.50 60.46 62.46 DOE 113 125 1100 30 59.13 57.65 58.97 58.38 58.53 DOE 114 125 1100 30 57.68 59.39 59.35 56.95 58.34 DOE 115 125 1100 30 59.03 56.63 N/A 58.86 58.17 DOE 116 125 1200 30 58.14 56.17 57.93 56.26 57.13 DOE 117 125 1200 30 62.18 64.94 67.08 64.36 64.64 DOE 118 125 1200 30 N/A 55.95 57.92 60.18 58.02 DOE 119 125 1200 30 59.38 57.28 58.67 54.67 57.50 DOE 120 125 1200 30 56.97 55.75 58.89 58.06 57.42 DOE 121 125 1000 40 58.24 59.01 57.54 57.76 58.14 DOE 122 125 1000 40 N/A 56.75 60.59 56.85 58.06 DOE 123 125 1000 40 58.86 59.93 N/A 60.70 59.83 134 DOE 124 125 1000 40 N/A 60.53 59.12 57.12 58.92 DOE 125 125 1000 40 60.25 59.18 60.29 57.13 59.21 DOE 126 125 1100 40 57.06 57.97 59.45 54.78 57.32 DOE 127 125 1100 40 59.32 56.30 56.61 56.52 57.19 DOE 128 125 1100 40 N/A 56.96 59.74 56.45 57.72 DOE 129 125 1100 40 58.58 57.31 60.76 56.56 58.30 DOE 130 125 1100 40 59.02 58.50 55.38 54.43 56.83 DOE 131 125 1200 40 54.34 59.96 58.75 56.40 57.36 DOE 132 125 1200 40 58.63 56.15 58.76 55.82 57.34 DOE 133 125 1200 40 N/A 56.57 60.85 57.00 58.14 DOE 134 125 1200 40 56.74 56.70 59.00 56.22 57.17 DOE 135 125 1200 40 59.08 N/A N/A 59.15 59.12 135 136 APPENDIX D MATLAB SIMULATION The program housing the simulation: close h = figure; set(h,'Position',[150 100 1050 550]) DisplayChips = false; Monitor = false; RunCharts = false; global TaperCapacity TaperCapacity = 6; %total chips in the system TotalChips = 60; FinishedChips = 0; BlankChips = TotalChips - FinishedChips; TimeStep = .1; TotalTime = 0; global PriorityList %PriorityList = [2 3 6 17 4 5 8]; PriorityList = [2 13 4 5 6 7 8]; %locations of all the chips, state of chips %column 1 gives location %0 = in blank stack %1 = in HEM %2 = in taper %3=in FT %4=complete %5 = on port 0 %6 = on port 1 %-1 = error %column 2 gives state %I = blank %2 = embossed 137 %3 =taped O4 = finished %-1 = dropped ChipData = zeros(TotalChips,4); ChipData(:,2) = 1; TempChipData = zeros(TotalChips+1,2); TempChipData(1,:) = -1; HEUtCount = 0; %total chips the robot arm can hold ArmChipMax = 2; %ArmChips gives the chips the arm is holding currently %0 = no chip %I = blank chip %2 = embossed chip %3 = taped chip O4 = tested chip ArmChips = zeros(ArmChipMax,l); %Arm starts in position 1 %position 1 = blank parts port 0 %position 2= blank parts port 1 %position 3= HEM port 0 %position 4= HEM port 1 %position 5= tape place port 0 %position 6= tape place port 1 %position 7= tape pickup port 0 %position 8= tape pickup port 1 %position 9= FT port 0 %position 10 = FT port 1 ArmPos = 1; %Available Tasks: a zero at the given index means the task cannot currently %be performed, a 1 at the given index means the task can currently be %performed %1, take chip from blank parts stack %2, put chip in hot embosser %3, remove chip from hot embosser 0 A, put chip in taper %5, remove chip from taper %6, put chip in tester %7, remove chip from tester %8, wait for a task to become available %9, move to the hot embosser while waiting for a task %10, move to the taper drop-off while waiting for a task %11, move to the taper pick-up while waiting for a task %12, move to the tester while waiting for a task 138 Tasks = zeros(12,1); CurTask = 0; %task the robot is currently performing %randomness factors MoveFactor = 0; HEFactor = 0; TaperFactor = 0; TestFactor = 0; HEDropChance = 0.00; %HEState: 0 = no chip, n = chip has been in for n timesteps, HEState = 0; HEDonePrime = 115; %timesteps until chip is done HEDone = HEDonePrime + HEFactor*randn; %TapeState: same as HEState, with one index per chip TaperState = zeros(TaperCapacity, 1); %TaperProcessing = 15; %amount of time between taper inputs TaperDonePrime = 2; %timesteps until chip is done TaperDone = TaperDonePrime + TaperFactor*randn; %TestState: same as HEState TestState = 0; TestDonePrime = 11.8; TestDone = TestDonePrime + TestFactor*randn; %timesteps until chip is done %keep running the loop until all the chips are in the finished parts buffer while(FinishedChips<(TotalChips-5)) %update task list %MACHINE TASKS AVAILABLE %the 'put a finished chip in the bin' task can be performed until the %buffer is depleted if(BlankChips > 0) Tasks(1) = 1; else Tasks(1) = 0; end %HE states if(HEState == 0) %ifthere is no chip in the hot embosser, the hot embosser can %accept a chip Tasks(2) = 1; Tasks(3) = 0; Tasks(9) = 0; elseif(HEState>HEDone) %ifthere is a chip in the hot embosser and it has been in for the %appropriate length of, a chip can be removed from %the hot embosser but the hot embosser cannot accept a chip Tasks(2)= 0; 139 Tasks(3) = 1; Tasks(9)= 0; else %otherwise, the hot embosser can neither accept nor can a chip be %removed from the hot embosser, but waiting by the hot embosser is %a valid task Tasks(2) =0; Tasks(3) =0; Tasks(9) = 1; end %taper state if(min(TaperState)==0) if(-any(TaperState)) %ifthere is free space and there are no chips in the taper, the %taper can accept a chip Tasks(4) = 1; Tasks(10)= 0; elseif(min(TaperState(TaperState-=0))>TaperDone) %ifthere is free space and the previous chip (if there was one) %has been accepted into the taper, the taper can accept a chip Tasks(4)= 1; Tasks(10)= 0; elseif(min(TaperState(TaperState-=0))<TaperDone) %ifthere is free space in the taper and the taper is running, %waiting by the taper is a valid action Tasks(4)= 0; Tasks(10) = 1; end else %otherwise, the taper cannot accept a chip Tasks(4)= 0; Tasks(10) = 0; end if(min(TaperState)>TaperDone) %ifevery chip has been in the taper for an appropriate length of time, %and the taper is full, a chip can be removed Tasks(5)= 1; Tasks(11) = 0; elseif((min(TaperState)>0) &&(min(TaperState)<TaperDone)) %if the taper is full but running, waiting by the taper is a valid %action Tasks(5) = 0; Tasks(11)= 1; else %if the taper is not full, chips cannot be picked up from the taper Tasks(5) = 0; Tasks(1 1) = 0; end %testing states if(TestState == 0) 140 %ifthere is no chip in the tester, the tester can accept a chip Tasks(6) = 1; Tasks(7)= 0; Tasks(12) = 0; elseif(TestState > TestDone) %otherwise, if the chip has been in the tester for the appropriate %length of time, it can be removed, but a chip cannot be added Tasks(6)= 0; Tasks(7) = 1; Tasks(12) = 0; else %if neither of the above states are true, the tester can neither %accept nor provide a chip, but waiting by the functional tester %is a valid action Tasks(6)= 0; Tasks(7)= 0; Tasks(12)= 1; end %AVAILABLE PARTS TASKS UPDATE %update by which parts the robot arm is holding if(min(ArmChips)> 0) %ifthe robot is holding the maximum number of chips, then none of %the 'take chip from X' tasks can be performed Tasks(1) = 0; Tasks(3) = 0; Tasks(5) = 0; Tasks(7)= 0; Tasks(9)= 0; Tasks(1 1) = 0; Tasks(12)= 0; end if(sum(ArmChips==1)==0) %ifthe robot isn't holding any blank chips, a chip cannot be added %to the HE Tasks(2)= 0; end if(sum(ArmChips==2)=0) %ifthe robot isn't holding any embossed chip, no chip can be added %to the taper Tasks(4)= 0; Tasks(10)= 0; end if(sum(ArmChips==3)==0) %if the robot isn't holding any taped chips, no chip can be added %to the tester Tasks(6)= 0; end %if the robot is not currently performing a task, assign it one based %on the priority function 141 if(CurTask == 0) if(sum(Tasks)==0) CurTask= 8; else %parameters needed to determine what the next task should be ChipInHE = (HEState>0); ChipInTester = (TestState>0); ChipsInTaper = sum(TaperState>0); [CurTask,TaskPort] = GetTask(Tasks,ArmChips,ChipInHE,ChipsInTaper,ChipInTester); end if(CurTask == 8) %if no tasks are available, check every second until a task %becomes available TotTaskTime = 1; else %determine the time needed to complete the given task TotTaskTime = DetTaskTime(CurTaskArmPos,TaskPort); end %the amount of time that has been spent on this task is 0 seconds TaskTime = 0; end %Things Happen %machine time progresses if(HEState>O) HEState = HEState + TimeStep; %if the hot embosser is done if(HEState>HEDone) %determine if there is a chip in the hot embosser that doesn't %think it's been embossed ChipIndex = find((ChipData(:, I)=1)&(ChipData(:,2)==1),1); if(-isempty(Chiplndex)) %then set its status to embossed ChipData(ChipIndex,2)= 2; end end end if(sum(TaperState)>0) TaperState = TaperState + (TaperState>0)*TimeStep; %determine number of chips in the taper that should be taped NumTaped = sum(TaperState>TaperDone); %determine number of chips in the taper that have been taped TapeChip = find((ChipData(:, l)==2)&(ChipData(:,2)==3)); %ifthere are fewer taped chips than there should be while(size(TapeChip,l)<NumTaped) %for each chip that isn't taped that should be ChipIndex = find(((ChipData(:, l)==2)&(ChipData(:,2)==2)),1); %set its status to taped ChipData(Chiplndex,2)= 3; 142 TapeChip = find((ChipData(:,1)=-2)&(ChipData(:,2)==3)); end end if(TestState>O) TestState = TestState + TimeStep; %if the tester is done if(TestState>TestDone) %determine if there is a chip in the tester that doesn't think %it's been tested ChipIndex = find((ChipData(:, 1)==3)&(ChipData(:,2)==3), 1); if(~isempty(ChipIndex)) %then set its status to tested ChipData(ChipIndex,2)= 4; end end end %all chips in the process have an increased timestep temp = ((ChipData(:,1)-0)&(ChipData(:,1)-=4)); ChipData(:,3) = ChipData(:,3)+temp*TimeStep; if(TaskTime >= TotTaskTime) switch CurTask case 1 %task 1: remove a chip from the blank chips buffer, add a %blank chip to the arm at the appropriate location ArmChips(TaskPort+1) = 1; BlankChips = BlankChips - 1; %update chip data ChipIndex = find((ChipData(:, 1)==O)&(ChipData(:,2)= 1), 1); ChipData(Chiplndex,1) = 5+TaskPort; %update arm state ArmPos = TaskPort + 1; case 2 %task 2: move a blank chip from the arm to the HE ArmChips(TaskPort+1)= 0; HEState = 1; %update chip data ChipIndex = find((ChipData(:, 1)==(TaskPort+5)), 1); ChipData(ChipIndex,1) = 1; %update arm state ArmPost = TaskPort + 3; TempChipIndex = find(TempChipData(:, 1), 1,'last')+1; TempChipData(TempChipIndex, 1) = TotalTime; %small chance the part is missing temp = rand; if(temp < HEDropChance) ChipData(Chiplndex,1)= -1; 143 ChipData(ChipIndex,2) = -1; %the HEM isn't running HEState = 0; %there is one fewer chip in the system TotalChips = TotalChips - 1; end case 3 %task 3: move an embossed chip from the HE to the arm ArmChips(TaskPort+1)= 2; HEState =0; HEDone = HEDonePrime + HEFactor*randn; %update chip data ChipIndex = find((ChipData(:,1)==1)&(ChipData(:,2)==2),1); ChipData(Chiplndex,1) = 5+TaskPort; %update arm state ArmPost = TaskPort + 3; TempChipIndex = find(TempChipData(:,2),1,'last')+1; TempChipData(TempChipIndex,2) = TotalTime; case 4 %task 4: move an embossed chip from the arm to the taper ArmChips(TaskPort+1)= 0; %make sure the chip storage data goes in the right location TaperIndex = find(TaperState==0,1); TaperState(TaperIndex)= 1; %update chip data ChipIndex = find((ChipData(:, 1)==(5+TaskPort)),1); ChipData(ChipIndex,1)= 2; %update arm state ArmPost = TaskPort + 5; case 5 %task 5: move a taped chip from the taper to the arm ArmChips(TaskPort+1)= 3; %pick up the chip that's been in the taper the longest [-,TaperIndex] = max(TaperState); TaperState(TaperIndex)= 0; TaperDone = TaperDonePrime + TaperFactor*randn; %update chip data ChipIndex = find((ChipData(:, 1)==2)&(ChipData(:,2)==3), 1); ChipData(ChipIndex,1) = TaskPort+5; %update arm state ArmPost = TaskPort + 7; case 6 %task 6: move a taped chip from the arm to the tester ArmChips(TaskPort+1)= 0; TestState = 1; %update chip data ChipIndex = find((ChipData(:, 1)==(TaskPort+5)), 1); ChipData(ChipIndex,1)= 3; 144 %update arm state ArmPost = TaskPort + 9; case 7 %task 7: move a tested chip from the taper to the finished %parts bin %move a tested chip from the taper to the arm, then to the %finished parts area TestState = 0; TestDone = TestDonePrime + TestFactor*randn; %update chip data ChipIndex = find((ChipData(:, 1)=3)&(ChipData(:,2)==4), 1); ChipData(ChipIndex,1)= 4; ChipData(Chiplndex,4) = TotalTime; FinishedChips = FinishedChips + 1; %update arm state ArmPost = TaskPort + 9; case 9 %task 9: move to the hot embosser ArmPos = 3+TaskPort; case 10 %move the arm to the taper drop-off ArmPos = 5+TaskPort; case 11 %move the arm to the taper pickup ArmPos = 7+TaskPort; case 12 %move the arm to the functional tester ArmPos = 9+TaskPort; end CurTask = 0; end %CHIP DISPLAY if(DisplayChips) %set to 'true' if you want to see the chips moving %display things if(mod(TotalTime,100)==O) ChipLocations = zeros(3,4); %data for the chips the arm is holding for i = 1:4 ChipLocations(1,i) = sum(ArmChips==i); end %data for the HE ChipLocations(2,1) = sum(HEState>O)-sum(HEState>HEDone); ChipLocations(2,2) = sum(HEState>HEDone); %data for the taper ChipLocations(3,2) = sum(TaperState>0)-sum(TaperState>TaperDone); ChipLocations(3,3) = sum(TaperState>TaperDone); %data for the tester ChipLocations(4,3) = sum(TestState>0)-sum(TestState>TestDone); 145 ChipLocations(4,4) = sum(TestState>TestDone); Locations = ('Arm', 'HE', 'Taper', 'Test'}; subplot(2,1,1) bar([ 1,2,3,4],ChipLocations,'stacked') set(gca,'xticklabel',Locations) set(gca,'YLim',[O TaperCapacity]) title(['Timestamp ='num2str(TimeStep)]); legend('Blank', 'Embossed', 'Taped', 'Tested') %determine which chips are currently part of the process ActiveChips = find((ChipData(:,1)-=O)&(ChipData(:,1)-=4)); %go through each chip being processed and label it on the graph for i = 1:size(ActiveChips) Loc = ChipData(ActiveChips(i),1); switch Loc case 1 xCord = 1; %if there's only one chip on the arm, this must be %that if(sum(ChipData(:,1)==1)==1) yCord= .5; else %otherwise, if the other chip on the arm is %more advanced than this chip, this chip is on %the botton TempArmChips = find((ChipData(:,1))== 1); ThisChip = ActiveChips(i); OtherChip = TempArmChips(TempArmChips ThisChip); if(ChipData(ThisChip,2)< ChipData(OtherChip,2)) yCord = .5; elseif(ChipData(ThisChip,2)> ChipData(OtherChip,2)) yCord = 1.5; %if both chips are in the same state, the one %that has the earlier indexing is on the bottom elseif(ThisChip<OtherChip) yCord= .5; else yCord= 1.5; end end case 2 xCord=2; yCord = .5; case 4 xCord = 3; %determine how many chips there are in the taper TempTapeChips = find(ChipData(:, 1)==4); %set the y coordinate based on the index of this %chip yCord = size(TempTapeChips,1)+.5 - find(TempTapeChips 146 = ActiveChips(i)); case 7 xCord = 4; yCord = .5; end temp = text(xCord,yCord,num2str(ActiveChips(i))); set(temp,'fontsize',20) end subplot(2,5,7) bar(1,BlankChips,'stack') set(gca,'xticklabel','Blank Chips') set(gca,'YLim',[O TotalChips]) subplot(2,5,9) bar(1,FinishedChips,'stack') set(gca,'xticklabel','Finished Chips') set(gca,'YLim',[O TotalChips]) pause(. 1) end elseif(Monitor) if(mod(TimeStep,1000)==O) %display the blank and finished chips only subplot(1,2,1) bar(1,BlankChips,'stack') set(gca,'xticklabel','Blank Chips') set(gca,'YLim',[O TotalChips]) subplot(1,2,2) bar(1,FinishedChips,'stack') set(gca,'xticklabel','Finished Chips') set(gca,'YLim',[O TotalChips]) pause(. 1) end end %task time progresses TaskTime = TaskTime + TimeStep; %total time progresses TotalTime = TotalTime + TimeStep; if((HEState>O)&&(HEState<HEDone)) HEUtCount = HEUtCount + TimeStep; end if((HEState>1000)1I(max(TaperState)>10000)1I(TestState> 1000)) disp('Something has gone horribly wrong.') disp(Tasks) disp(ArmChips) 147 disp(HEState) disp(TaperState) disp(TestState) return; end end disp(['Total time taken: ' num2str(TotalTime) 'seconds']) disp(['Time per chip: 'num2str(TotalTime/TotalChips)' seconds']) disp(['Hot embosser utilization: 'num2str(HEUtCount*l00/TotalTime) '%']) disp(['Time for system to reach steady state: 'num2str(ChipData(1,4))' seconds']) close global global global global HEUt TaktStd SteadyTime Time2Finish HEUt = HEUtCount/TotalTime; temp = ChipData(:,4); temp = temp(temp>O); SteadyTime = min(temp); Time2Finish = TotalTime; temp = sort(temp); temp2 = temp(2:end)-temp(1:end-1); TaktStd = std(temp2); if(RunCharts) h = figure; set(h,'Position',[200 100 850 550]) subplot(2,1,1) CompletedChips = ChipData((ChipData(:,4)>0),:); plot(CompletedChips(:,3)); xlabel('Chip Number') ylabel('Time in System (s)') title(['Average Takt Time: 'num2str(TotalTime/(TotalChips-5))' seconds']) % subplot(3,1,2) % plot(ChipData(:,4)); % xlabel('Chip Number') % ylabel('Timestep Completed') subplot(2,1,2) plot(CompletedChips(2:end,4)-CompletedChips(1:end-1,4)); xlabel('Chip Number') ylabel('Time Between Completion (s)') end 148 Programs called by the Simulation: function time = ArmOpTimes(Action,Port) %function gives the time to perform the operation at the given position %row one is for port 0 %row two is for port 1 %actions the arm can perform %action 1 = get blank part %action 2 = hot embosser placement %action 3 = hot embosser pickup %action 4 = taper placement %action 5 = taper pickup %action 6 = test station placement %action 7 = test station pickup OpMat = [7.6 6.8 10.5 16.4 9.9 8.9 15.7 7.7 7.0 10.8 16.8 9.1 9.0 15.5]; time = OpMat(Port+1,Action); function time = DetTaskTime(CurTask,CurPos,TaskPort) %determine the location the robot will move to based on the current task switch CurTask case 1 %getting a blank part = move to dispenser NewPos = 1; case 2 %putting a part in HEM = move to HEM NewPos = 3; case 3 %getting a part from HEM = move to HEM NewPos = 3; case 4 %putting a part in taper = move to taper drop-off NewPos = 5; case 5 %getting a part from taper = move to taper pick-up NewPos = 7; case 6 %putting a part in FT = move to FT NewPos = 9; case 7 %getting a part from FT = move to FT NewPos = 9; case 8 149 %waiting = don't move NewPos = CurPos; case 9 %waiting by HEM = move to HEM NewPos = 3; case 10 %waiting by taper drop-off= move to taper drop-off NewPos = 5; case 11 %waiting by taper pick-up = move to taper pick-up NewPos =7; case 12 %waiting by FT = move to FT NewPos = 9; end %include the port that will be used in the movement location NewPos = NewPos + TaskPort; %determine the movement time MoveTime = MovementTimes(CurPosNewPos); %determine the operation time based on the task if(CurTask < 8) OpTime = ArmOpTimes(CurTask,TaskPort); else OpTime = 0; end %find the total time time = MoveTime + OpTime; function [Task,Port] = GetTask(Tasks,ArmChips,ChipInHE,ChipsInTaper,ChipInTester) %GetTask accepts the matrix of available tasks, then returns the task the %robot should next perform global TaperCapacity global PriorityList %default task is Task 0: get new task Task = 0; UseRules = true; %Available Tasks: a zero at the given index means the task cannot currently %be performed, a 1 at the given index means the task can currently be %performed % 1, take chip from blank parts stack 150 %2, put chip in hot embosser %3, remove chip from hot embosser %4, put chip in taper %5, remove chip from taper %6, put chip in tester %7, remove chip from tester %8, wait for a task to become available %9, move to the hot embosser while waiting for a task %10, move to the taper drop-off while waiting for a task %11, move to the taper pick-up while waiting for a task %12, move to the tester while waiting for a task ChipsOnArm = sum(ArmChips>O); %STUFF THAT NEEDS TO BE DONE OR THE SYSTEM WILL GET JAMMED %if the arm is holding a blank chip and there is a chip in the HE, %don't pick up another blank chip if((sum(ArmChips==1)>)&&ChipInHE) Tasks(1) = 0; end %if there is a chip in the HE and a chip in the tester, don't pick %up a second blank chip AND don't pick up a second chip from the taper if(ChipInTester&&ChipInHE&&(ChipsOnArm == 1)) Tasks(1) = 0; Tasks(5) = 0; end %if the taper is full AND the embosser is full AND the robot is holding a %chip, don't pick up another blank chip if((ChipsInTaper>=TaperCapacity)&&(ChipInHE)&&(ChipsOnArm==1)) Tasks(1) = 0; end % %ifthe tester is full AND the robot is holding a chip, don't pick up % %any chips from the taper % if(ChipInTester&&(ChipsOnArm==1)) % Tasks(5) = 0; % end %if the taper is full and the robot is holding an embossed chip, don't pick %up a second embossed chip if((ChipsInTaper>=TaperCapacity) && (sum(ArmChips==2)>0)) Tasks(3)= 0; end %get the index of all the available tasks Avail = find(Tasks); if(~UseRules) if(isempty(Avail)&&(Task==0)) %if no tasks are avaiable, do task 8: wait for a task Task = 8; Port = 0; 151 elseif(Task==O) %otherwise, pick a random task and do it Selection = ceil(rand*size(Avail, 1)); Task = Avail(Selection); switch Task case 2 %the port with a blank chip will place that chip in the HEM if(ArmChips(l) == 1) Port = 0; else Port = 1; end case {4,10} %the port with an embossed chip will place it in the taper if(ArmChips(1)== 2) Port =0; else Port = 1; end case 6 %the port with the taped chip will put it in the tester if(ArmChips(1) == 3) Port = 0; else Port = 1; end otherwise %the port not holding a chip will be used if(ArmChips(1)== 0) Port = 0; else Port = 1; end end end end %list of priorities for the tasks of the system % if(sum(ArmChips == 1)>0) % PriorityList = % %PriorityList %else % PriorityList = % %PriorityList %end [2 3 6 17 4 5 8]; = [12 3 4 5 6 7 8]; [2 6 17 4 5 3 8]; = [12 3 4 5 6 7 8]; check= 1; while(Task== 0) %starting with the highest priority, check to see if that task is %available if(Tasks(PriorityList(check))) 152 %if it is, set that as the task to be done Task = PriorityList(check); end %if we get to task 8, assign it as the task to be done if(check == 8) Task= 8; end %otherwise, go to the next highest priority and try again check = check + 1; end if(UseRules) switch Task case 1 %if the robot can pick up a blank chip, do so %use the empty port if(ArmChips(1) == 0) Port =0; else Port= 1; end case 2 %if a chip can be added to the HE, do that %if port 0 is a blank chip, use that, otherwise use port 1 if(ArmChips(1)=- 1) Port =-0; else Port= 1; end case 3 %if a chip can be removed from the HE AND the robot is holding a %blank chip, take the chip out of the HE %if port 0 is empty, use that, otherwise use port 1 if(ArmChips(1) == 0) Port = 0; else Port= 1; end case 4 %put a chip in the taper %use the port with the embossed chip if(ArmChips(1)== 2) Port = 0; else Port= 1; end case 5 %remove a chip from the taping machine %use the empty port if(ArmChips(1)== 0) Port = 0; 153 else Port= 1; end case 6 %put a chip in the testing machine %use the port holding the taped chip if(ArmChips(1) == 3) Port = 0; else Port= 1; end case 7 %remove chip from tester %use the empty port if(ArmChips(l) == 0) Port =0; else Port= 1; end case 8 %if only one of the 'go to a machine and wait' tasks apply, do that %one if(sum(Tasks(9:12)==1)) for i= 9:12 if(Tasks(i)) %do the only 'go to a machine' task available Task= i; if i== 10 %use the port holding an embossed chip if(ArmChips(l)== 2) Port =0; else Port = 1; end else %use the empty port if(ArmChips(1) 0) Port =0; else Port= 1; end end end end end end end if(Task == 8) Port = 0; end 154 function time = MovementTimes(ArmPos,NewPos) %function provides the time for the robot arm to move from one position to %the next %position %position %position %position %position %position %position %position %position %position 1 = blank parts port 0 2= blank parts port 1 3 = HEM port 0 4= HEM port 1 5 = tape place port 0 6 = tape place port 1 7= tape pickup port 0 8 - tape pickup port 1 9 = FT port 0 10 = FT port 1 timeMat = [ 2.9 4.3 4.3 4.2 4.8 16.0 16.0 16.1 16.3 0.0 2.9 Z.3 4.3 4.2 4.8 16.0 1 6.0 16.1 1 6.3 0.0 4.3 4.3 4.2 4.2 16.0 16.0 16.1 16.3 4.3 0.0 2.9 1.6 4.1 12.6 12.6 12.7 12.9 4.3 2.9 0.0 1.7 1.6 12.6 12.6 12.7 12.9 4.2 1.6 1.7 0.0 2.9 12.7 12.7 12.8 13.0 4.2 4.1 1.6 2.9 0.0 12.7 12.7 12.8 13.0 16.0 12.6 12.6 12 .7 12.7 0.0 2.9 3.2 3.7 16.0 12.6 12.6 12 .7 12.7 2.9 0.0 4.2 3.7 16.1 12.7 12.7 12 .8 12.8 3.2 4.2 0.0 3.0 16.3 12.9 12.9 13 .0 13.0 3.7 3.7 3.0 0.0]; time = timeMat(ArmPos,NewPos); 155 156 CHAPTER 9 REFERENCES [1] A. A. Perez, C. Olle and S. Tandon, «Hot Embossing of Microfluidics Devices, Massachusetts Institute of Technology, Cambridge, 2013. [2] G. M. Whitesides, «The origins and the future of microfluidics, Nature, T. 442, NX 27, pp. 368-373, 2006. [3] G. T. Valadisavljevi5, N. Khalid, M. A. Neves, T. Kuroiwa, M. Nakajima, U. Kunihiko, S. Ichikawa and I. Kobayashi, «Industrial lab-on-a-chip: Design, applications and scale-up for drug discovery and delivery, Advanced Drug Delivery Reviews, T. 65, pp. 1626-1663, 2013. [4] M. Heckele and W. K. Schomburg, «Review on micro molding of thermoplastic polymers, JournalofMicromechanics and Microengineering,T. 14, pp. RI -Ri 4, 2004. [5] Q. Wang, «Process Window and Variation Characterization of the Micro Embossing Process, Tsinghua University, Bejing, China, 2000. [6] C.-W. Tsao and D. L. DeVoe, «Bonding of thermoplastic polymer microfluidics, MicrofluidNanofluid, T. 6, pp. 1-16, 2009. [7] F.-C. Huang, Y.-F. Chen and G.-B. Lee, «CE chips fabricated by injection molding and polyethylene/thermoplastic elastomer film packaging methods, Electrophoresis, T. 28, pp. 1130-1137, 2007. [8] S. H. Park, W. I. Lee, S. N. Moon, Y.-E. Yoo and Y. H. Cho, «Injection molding micro patterns wit high aspect ratio using a polymeric flexible stamper, eXPRESS Polymer Letters, T. 5, N2 11, pp. 950-958, 2011. [9] M. Tichem, F. Schmitz, S. Kunz, H. P. Gruber and G. Popovic, «A classification scheme for quantitative analysis of micro-grip principles, Assembly Automation, T. 24, 2004. [10] Y. Ansel, F. Schmitz, S. Kunz, H. P. Gruber and G. Popovic, «Development of tools for 157 handling and assembling microcomponents, Journal of Micromechanics and Microengineering,T. 12, pp. 430-437, 2002. [11] D. Hardt and T. Siu, «Cycle to cycle manufacturing process control, B Innovation in ManufacturingSystems and Technology, Singapore-MIT Alliance, 2002. [12] M. R. Bageant, «Development of a Precision Hot Embossing Machine with In-Process Sensing, MIT, 2011. [13] C. J. Reyda, «Development of Adhesive Bonding and Functional Testing Systems for InProcess Inspection of Hot Embossed Microfluidic Devices, MIT, 2011. [14] N. Zarrouati, «A Precision Manipulation System for Polymer Microdevice Production, MIT, 2008. [15] D. L. Henann, V. Srivastava, H. K. Taylor, M. R. Hale, D. E. Hardt and L. Anand, «Metallic glasses: viable tool materials for the production of surface microstructures in amorphous polymers by micro-hot-embossing, Journalof Micromechanics and Microengineering, Nk 19, 2009. [16] B. Ganesan, <Process Control for Micro Embossing: Initial Variability Study, MIT, 2004. [17] M. E. Dirckx, «Demolding of Hot Embossed Polymer Microstructures, MIT, 2010. [18] M. Hale, «Development of a Low-Cost, Rapid-Cycle Hot Embossing System for Microscale Parts, MIT, 2007. [19] C. Lim, «Bonding apparatus for microfluidic devices, MTU School of Mechanical and Aerospace Engineering, 3023. [20] W. Sim, «Semi-automated tape bonding apparatus for microfluidic devices, NTU School of Mechanical and Aerospace Engineering, 2013. [21] Epson, SCARA G I0/G20 Manipulator Manual, 2011. [22] V. Mengeaud, J. Josserand and H. H. Girault, «Mixing processes in a zigzag microchannel: finite element simulations and optical study, Analytical Chemistry, T. 74, N2 16, pp. 42794286, 2002. 158