cj — This article is being expanded and re-written on a daily basis. I simply do not have the time required to complete this in a single editing session. Keep in mind that this article represents one of a broad range of topics in which I have some level of knowledge.
I recently had the opportunity to interact with individuals employed by several automobile manufacturers with operations based globally. My own automotive roots are deeply seated in Europe and it is therefore a pleasure to be able to see what is occurring in Asia and the U.S. in regards to manufacturing systems. I learned from my conversations that Asian and U.S. manufacturers such as Nissan, Ford, GM, Hyundai/Kia, and others have taken new interest in a software application area called Manufacturing Execution Systems or MES as the acronym. Auto manufacturers have not typically taken to the label “Manufacturing Execution System” because they see their production or assembly lines exclusively as sequenced operations of which they assume traditional MES systems do not apply. For the individual who has however developed MES systems from a code perspective, as I did some decade and one-half ago, in a C++ application that still runs to this day in some of the world’s most recognized facilities, then the auto manufacturers perspective it times appears to be closed shell with little knowledge of the overall manufacturing world around them.
Naturally being in possession of the source and development environment of the old system, with new interest perked, I decided to unroll the old code onto a Windows development box and look at refactoring the “old” into the “new” using modern tools and techniques. My purpose here is to chronicle my review as I attempt to move closer to an MES system for automobile manufacturing. I specifically say “manufacturing” because the lay person tends to view automobile production as a production line or assembly line effort and that alone. I’ll explain as I modify this doc and update it from day to day.
A Few General Terms and Explanations
A Manufacturing Execution System is a software component or series of components residing on networked computing equipment within a manufacturing facility. In general, an MES system is designed to remove paper from the manufacturing environment, though in automotive manufacturing that I have seen, paper is often an output of the MES at the assembly line level. (Think Toyota where the idea to enforce simplicity may not include removal of paper. Toyota is not the only manufacturer generating reams of paper by the way and Toyota may not be as guilty of devouring paper as one would think.) For those of you familiar with MES systems don’t scream at me too quickly. The MES system carries other roles, one of those being supplying data to the shop floor plus recording data produced on the ship floor, as well as implementing what I refer to as “execution control.” The world being what it is, some organizations implement MES systems with hardly any control functionality at all. This is particularly true in automobile assembly, though not in the manufacture of electronic components used in the automobile. (Think of the old Ford Visteon for electronics.)
From a logical point of view an MES system sits between machine control elements such as SCADA systems, PLCs, and today even I would consider a work cell, such as an automated welding station in the “Body shop” of an auto manufacturing plant — itself a highly controlled area if significant square footage in the plant — and systems such as SAP’s ECC 8.0 or whatever enterprise level system being used by the company. In other words it sits between what may or may not be a numerically controlled machine layer (the body shop is numerically controlled) and enterprise level systems such as SAP.
Let me give you an example of an MES system in action where it exerts a degree of control. Let’s say that today you are an operator working in a plant that makes board level electronic products and you are operating a test cell. At that test cell a fixture is in place upon which you can position a board and depress that board against the spring loaded fixture in order to make contact with points in the circuits of the board. When you placed the board on the test fixture its bar code was read logging with the MES system that board ‘whatever number’ was being tested. At this point the MES system has recorded the history of the board. It recorded who supplied each individual part, what time the board passed through the chip shooter, who was operating the chip shooter, as well as any previous machine errors that may have occurred. For today, the MES has loaded instructions to the test cell that require the board to pass three out of four test cycles (a cycle being each time the board is pressed onto the test pins) in order to be released to the next operation in the process. If say, the board fails two of the four test cycles and you as the operator do not pass it into a reject routing as the instructions on the machine setup required you to do for failed boards, the MES would prevent the board that failed from being passed into the next operation possibly by locking the operators station in the next process if the board is passed along rather than moved to a reroute area.
My explanation is likely not the best, but the intent was to demonstrate how the MES can change product flow in an electronics plant and enforce quality or functional aspects of the product. The above example demonstrates control and data management further used in the SPC process.
A Few of the Pieces You May See in an MES
I have seen a Microsoft Visual Foxpro application running on a PC sitting on a manufacturing shop floor that was considered to be a manufacturing Execution System. The supervisor of the production area would pass paper documents to a materials handler who would go locate required items for a production run and assemble them at the head of the line or along the line where they would be picked up and added to the product. The operator would manually enter set points into a PLC interface attached to the line by reading them off of a sheet of paper that was in the set of documents passed from scheduling to the line supervisor. I can recall an operator being carried off in an ambulance one day because a set point was entered as 123 degrees centigrade rather than 123 degrees farenheit. In this case another task required of the operator was to set the PLC to accept english rather than metric units. This disaster of an operation operates to this day under ownership of one of the world’s largest enterprises. I would say upper level management is somewhat brain dead. The markets will eventually solve this problem if a government does not step in and place the organization on life support. (I am not referring to General Motors or Chrysler by the way.)
Let’s step off into one architecture of an MES. It could run on either a Windows Server with PCs as displays or on a Unix box with X-terminals or PCs as displays. Odds are in 2013 the database may sit in the backend as Oracle on a Unix platform and with the user interface as a web page on a PC, hopefully and industrial PC. You may see the local PC tied to SCADA or a machine level PLC or other controller. The PC may also be part of the system that reads RFID tags if manufacturing is a series of numerically controlled machine manufacturing capacitors for instance. The C++ based MES that I have pulled from the archives was constructed as follows:
- The core of the system was built as several Unix daemons. One of these was constructed so as to act as a load balancer and spawn other daemons via the wonderful Unix fork(). Some daemons communicated with other daemons, the upstream ERP system — most often SAP, scheduling and optimizations systems, test machines, PLCs or SCADA, OPC Servers, and of course the X-terminal or PC client that in the case of the PC was comprised of a 430k executable whose enterface was composed at the daemon level.
- Sitting behind the daemons was either Oracle, DB2, Sybase, Rdb, or Informix. An internally developed TP Monitor — also C++ — was loaded by company DBAs to the clients database server or servers. This allowed management of significant load for the resources utilized and was used as part of thread-level failover.
- The MES being as close to COTS level software as one will see in an MES system was constructed, modified, and managed with an in-house developed 4GL. The 4GL expressed the knowledge domain of the MES where one sees the MES as an active component of control in discrete or process manufacturing. (In an auto plant it would ensure sequencing or as some auto makers are calling it “just in sequence” was complied with. (Don’t kid yourself if you think auto manufacturing plants do not place the wrong radio in the wrong car.)
It is possible depending on the type of manufacturing operation that significant software development might be required prior to deployment most often depending on the method used to interface to the machine layer as well as enterprise level systems above the MES. Another thing to consider for many products, including automobiles, is that electronics may be configured on the assembly line in order to target a specific market. As an example, a Camry being built in Japan but headed for the U.S. would likely be configured for english “on the assembly line” by a PLC. The information directing this would be part of a configuration for the car or in old school terms what is actually a BOM, irregardless of the fact that some auto plants would cringe if you said that.
The photo above shows series of cars or more precisely a series of body-in-white or BIW structures as they pass through an auto plant’s body shop. The BIW is the major structural unit of a unit body automobile and here is being “built up” from a series of pressed steel panels or steel stampings. The photo above is of an area within a massive numerically controlled work cell — literally a robotic machine where human hand does not touch the BIW. Each structure is being spot welded by a robotic welder on either side of the structure and is progressing through the work cell much as it will as it passes down the assembly line between human hands that perform a task or tasks. There are eight robotic welders that can be seen in this photo. The BIW is not seam welded. Many new automobiles however are now using structural adhesives that in many ways act as a seam weld. The other popular architecture for automobiles is called body-on-frame.
Body-on-frame construction can be seen in Ford and Chevy pickup trucks, the Toyota Tundra, and the Nissan Titan truck. It was not until the 1980’s that American car makers began to move autos off the body-on-frame construction to unit body construction. The major difference between the unit body and the body-on-frame auto within the assembly plant is that the engine is mounted on the frame or chassis of the body-on-frame prior to the BIW, which still exists in this architecture, from being mated to the frame. In unit body construction the engine and transmission in front wheel drive models is mated from the bottom. The BIW is typically elevated approaching the mating point and descends to near floor level as the engine/transmission is mated.
Every time I see in interior of a BMW production facility I view the building as a simple cover for a technical process. In classic auto assembly style, notice the paper taped to what is the inner fender framing on the BIW on the BMW 1 Series assembly line in Leipzig, German. Also notice the car behind the lead vehicle and note the paper taped or held by mastic under the hood of the car.
Paper has remained a part of the shop floor in automobile assembly than in any other form of manufacturing. The primary reason for this is that the assembly worker does not have to look up and away from the passing auto, which is a rather large cumbersome object for the worker to maneuver around and through. The critical thing to realize here is that the paper printout was produced by the plants MES system is is specific to the automobile to which it is attached. The workers shown are each performing different tasks. Even though the routing within an automobile assembly plant is dramatically less flexible than say is an electronics plant, the MES should record the identification of the worker who performed each particular assembly task within the build process. The MES system must also be flexible enough to be tailored to the various constraints placed upon the operation by various labor contracts, if they exist. (Oh yes, they come into play even with the MES.)