Automating a Process

I work as a CNC programmer. We have five 5-axis routers with 2 work tables each at my workplace. We use them for plastic trimming and drilling. The machines aren’t the best in the market but they surely work for our purposes.

To cut the parts we place a thermoformed plastic on a holding fixture in the router. There are several parts that are similar to each with little difference like a cutout or the positions of some holes, so we may use a holding fixture for many different parts/programs.

This generates a lot of problems because sometimes the operators place the wrong fixture on the machine, or the correct fixture but the wrong program. This may cause a crash of the machine with the fixture and it can take up to 10 hours to fix it, depending on the severity of the accident and the skills of the maintenance technician who fixes it. This causes a production halt on the machine and it escalates the problem to other areas where they may need the parts that were about to be produced in order to keep working.

My company is based on United States, where they too have similar problems with their machines. They been working on fixing this problem but they been two years working on it with no progress so my boss from Mexico informed me on the situation and he gave me the opportunity to propose a solution. After discussing some ideas we came with the following guidelines:

  • A barcode scanner should be used to avoid errors in inputs.
  • The user must be verified against a database with the authorized employees.
  • To compare the scanned fixture to a database to see if it is compatible with the program.
  • The table should be scanned to check if corresponds to the one in the program.
  • The solution should be cheap.

My development software of choice was Visual Studio C# because I have good experience with it and it’s very easy to use, but it was against the last point. A VS license comes at great price, especially if you don’t plan to use it every day. I had used Python before but not very extensively, just a couple of programs to communicate with an Arduino but I decided to use it because it is very easy to learn and it’s free to use, with a large community at hand if you have any question.

I had the first prototype after a couple of days. It did everything required but it was implemented in ran on a terminal. Also, I couldn’t find how to communicate with the machine so the operators would have to input the program number on the machine manually. I kept on going and found that me machines had a FTP server running; implementing the code to send the programs with python was very easy.

I was never comfortable running the program in the terminal so I started to investigate how to create a graphical user interface with python. I think this was the hardest part of the project but after getting a hold on how to manipulate objects and interact with the objects and so on it was actually very easy to use and understand.

After ten days I had the final program. The graphical interface allowed blocking the options until the previews steps were done, and it was able to display the info about which fixture and table were required. I also had the time to add an option to change the table. Now the program is adjusted to run on the scanned table, rather than be limited by the code.

I also created a log that stores the information: who, which program, which fixture, which table, which router, what time; just in case something is wrong.

Unfortunately, my program was never implemented due to some company policies and because they were close to finishing the solution.

Overall I’m very happy for the opportunity of creating an application that could have been used to avoid a lot of problems that plague our plant, but unfortunately  jealousy and corporation politics didn’t allow it to be implemented.

I also had the oportunity to learn python and believe me, it won’t be the last time I use it.

Tags: ,

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: