senior project regarding PLC

dle

Member
Join Date
Jan 2012
Location
Tennessee
Posts
11
Hi, my name is Dan and I am currently in my final semester of college. My proposal for my senior project was to create a program that would sort and stack the blocks onto the specified pallets using PLC & the robotic arm.

The material I am using would include:

  • Allen Bradley PLC (MicroLogix 1100 I think)
  • RSLogix 5
  • 3 Proximity Sensors
  • Conveyor
  • Fanuc Robotic LR Mate 200ic
The goal of this project is to create a program in the PLC that will control the data from the 3 sensors. The sensor A,B,&C are used to detect the height of the blocks. This is due to 3 types of blocks are being used for this project.

Once discerned by the PLC, the PLC will send data to the robotic arm to pick up the specific block and stack it into the specified pallet A,B, or C.
Random blocks will be placed onto the conveyor, and because of that, the robot have to place the right the block in the right place.

I have very basic knowledge about PLC and the robotic arm programming in general. My main problem would be incorporating the idea of multiple blocks and the I/O of data. Would the program for this project be way too difficult and complex? Especially for a beginner. If it is indeed very troubling to program 3 type of blocks, how much different would 1 type of block be.
Thanks and please help!
 
Would the program for this project be way too difficult and complex? Especially for a beginner.
No, it should be fairly easy for a college senior final project.

It will require complete knowledge of the robot, how the robot communicates with the PLC, what form of information can the robot read from the MicroLogix 1100 (you think). I would make a complete list of the brand, model, and catalog numbers for each piece of equipment, expecially the proximity sensors, the robot, the PLC, and the PLC Input and Output modules. You will need all that and a lot more to complete this project.
 
Would the program for this project be way too difficult and complex? Especially for a beginner. If it is indeed very troubling to program 3 type of blocks, how much different would 1 type of block be.
Thanks and please help!

I don't think PLCS can answer if you are capable of doing this.

But two questions to ask yourself.
  • Can you program, a palletizing Robot?
  • What decisions will the robot need to make, in order to palletize three different blocks.
 
I don't think PLCS can answer if you are capable of doing this.

But two questions to ask yourself.
  • Can you program, a palletizing Robot?
  • What decisions will the robot need to make, in order to palletize three different blocks.
Yes, I can program the robot. I will have to make individuals programmed movement point for the robot. But because I am planning to use three different blocks, the robot have to be able to discern it, and pick it up accordingly.

The robot have to be able to recognize the block based solely on the height from the sensors, and random blocks will be coming along the conveyor. Because of that, it gets tricky for me.

Thanks for the reply.
 
Hi Dan,
welcome to the site.
This may appear 'Tricky' for you, but, that is why projects like this exist.
we never get a task like 'start a conveyor and stop it'
the task is specifically designed to make you look and think outside of the square.
start with the logic sequence you desire - post as you go
there are many on this site who will help guide you with your efforts.
Remember you will be gaining qualifications that says you can do this.
So don't expect it to be done for you.
 
Yes, I can program the robot. I will have to make individuals programmed movement point for the robot. But because I am planning to use three different blocks, the robot have to be able to discern it, and pick it up accordingly.

The robot have to be able to recognize the block based solely on the height from the sensors, and random blocks will be coming along the conveyor. Because of that, it gets tricky for me.

Thanks for the reply.

I suspect the robot will NOT be recognizing the blocks, that is the job of the PLC.

The PLC will then direct the robot to perform the required action, based upon what the block is, where it has to go, and the capabilities of the robot.

For palletizing, a simple robot will need to be told exactly where to put the block, and that means computing absolute or relative locations.

A palletizing robot will do that for you, once it is programmed. Actually a pelletizing robot could probably do the whole job without a PLC.

Now, it depends whether your college course is in robotics, or in PLC control systems, where you should put emphasis to your final project.

I would suggest that your allocated robot is fairly simple, and not capable of making decisions, just following instructions, so your PLC needs to do several things.

1. detect a block
2. decide what block it is
3. instruct the robot to pick it from a location
4. instruct the robot to place it to a location

4 is the hard one if palletising, you need to have a model, or sequence, or derive the position mathematically.

3 could be difficult if the block is moving on a continuous conveyor, you may need to physically stop the block at a location so the robot can pick it up. If you can't stop it moving, then the robot needs to be able to pick up a moving object, which makes it more complex....

I think you can see we play swings and roundabouts - you need to decide, for each application, what is actually happening, and choose the equipment accordingly.

Your equipment is chosen, make the best use of it
 
Last edited:
Will you be at only the height or will the sensors be looking at all three axis of said blocks? This sounds like some thing I would love to try, my school didn't focus on logical type problems.
 
Here's a start.
Break things down to simple tasks:
Sensor height 1 --> delay to settle --> run robot routine 1
Sensor height 2 --> delay to settle --> run robot routine 2
Sensor height 3 --> delay to settle --> run robot routine 3

Edit:
From post 1 you listed RSLogix 5 software. I think it is for programming the PLC5 series, not the Micrologix 1100. You will need the RSLogix 500 or RS Micro series of software packages for the MicroLogix 1100. Someone correct me if this is wrong.
 
Last edited:
The robot have to be able to recognize the block based solely on the height from the sensors, and random blocks will be coming along the conveyor.
That is probably the most straight-forward, easy-to-implement part of the problem:

For each block detected:
If Short Prox Triggered, Then Part Goes To = Short Pallet,
If Medium Prox Triggered, Then Part Goes To = Medium Pallet,
If Tall Prox Triggered, Then Part Goes To = Tall Pallet.

Now that your PLC knows on which pallet to place each part, the next, more difficult routine is to direct the robot what coordinates to move so that each part gets stacked neatly on the pallets.
 
Last edited:
Now, it depends whether your college course is in robotics, or in PLC control systems, where you should put emphasis to your final project.

I agree, that a final year project, should focus mostly on the studies. But you reminded me of a robot for a furnace loader, that I worked on this summer. This PLC had more I/O than some small plants, and every move, was sent over BCD discrete inputs from the PLC, confirmed and sent back by the robot. A simple move to pick up the part and place it would take about 7-8 words interchanged between the robot and PLC. I asked; and an engineer from a plant they shut down originally did the program. I think most of his programming before that was with computers.
 
From post 1 you listed RSLogix 5 software. I think it is for programming the PLC5 series, not the Micrologix 1100. You will need the RSLogix 500 or RS Micro series of software packages for the MicroLogix 1100. Someone correct me if this is wrong.
You are correct, a MicroLogix 1100 will need the RSLogix500 software.
 
Thanks a bunch guys. My biggest concern at the moment is programming the robot so that it can palletize the blocks in the correct pallet continuously. If I run into any specific trouble, I now know where to ask. I still have 3 months to complete my project. Thanks a lot everyone.
 
ASSUMING
1. This senior project will result in a fully working model
2. This working model will actually stack blocks
3. The model can handle random size blocks

This in my opinion is way too complicated and expensive for a school project. You need to scale it back. First thing I would throw out is random size blocks. Make em standard size - you have enough challenges

My experience with PLCs is do not worry too much about the programming - that is really the "simple" part. The complicated part is the sensors and actuators and
selecting the correct ones
AND getting them all properly lined up and running right.

Take a lesson from Peter Nachtway
"you cannot rely on programming to overcome poor machine design"

Consider a school project where the goal is to build a flying plane.
Probaly not too bad a project for school and feasible
Trying to build a Boeing 747 just may be over your head

Dan Bentler
 
Last edited:
As far as difficulty, I would hope if you got your money's worth for your education you should be able to build such a device.

Now with that said, I would start with writing a set of specifications for the device. This seems to not be covered well in a lot of people's education (mine included).

The specification should be about what the machine is supposed to do, not how to do it.

Problem: Assembly line has three different products coming down conveyor belt. Each product needs to be sorted and palletized on different pallets.

Questions you need to answer are what are the size, shape, and weight of the products. How many per minute. Are they continuous, evenly spaced, arrive in batches, or random. Are they always align in a certain orientation or could they be in any orientation.

Here's why size, shape, weight, will all determine how big of a robot you will need. They will also be key to sorting the product.

The speed of the production line is also key to determining how long you have for the robot to complete your task. I understand this is a project, but in the real world you will be told we have 1000 blocks an hour coming down this chute, deal with it. You won't have the luxury of telling the boss, my machine can handle 600 blocks an hour so don't over do it. Of course in this case you can pick some reasonable number.

How are the block arriving will influence your design choices a lot. You're assuming that you can measure the block's height to sort them. Remember I asked for specifications of size and shape of the block. Are they all cubes of varying height or some other polyhedron? If they are cube then you can use height as a parameter. If not, can you be sure that the 'height' is always measuring the same dimension. For example a 2cm x 3cm x 4cm block, could have a 'height' of 2cm, 3cm, or 4cm depending on how it is placed on the conveyor.

You will also want to define the interfaces to other devices, in this case whatever is feeding the product and whatever deals with removing loaded pallets and feeding empty pallets.

If the machine stops it needs to interface with the upstream machine to tell that machine to stop, hold, pause or whatever. Have you ever seen Lucy in the Chocolate Factory? Can your machine control the rate of product entering it.

The machine needs to know when a pallet is full and has been replaced with an empty pallet.

We haven't even talked about safety yet. Hazard analysis of workers around the machine. What is the product, kid's toys or munitions. Dropping a kid's toy is very low risk; dropping a bomb might require a safer system.

A lot of defining the problem, will dictate how you build the machine. What if the customer said I want this machine to sort and palletize block of the same size but different color. You would have to resort to a machine vision system. (I just saw a TV show on the automation of LEGO, this is the kind of problem they had).

Get a good solid grasp of "the problem" before you start designing the machine. In the real world you won't be told build a machine and tell me what it does, you will be told build me a machine that can do this Chances are you will only be told part of the problem, so it's good to learn what kind of questions to ask. Learning to write a good solid specification will definitely help your future career.
 
3. The model can handle random-sized blocks.
No, really he said it only has 3 sizes detecteed by 3 prox switches. That is not exactly random. What it means is that the Palletizing Routine will need to be duplicated 3 times, once for each pallet size. That would probably be the easiest way: develop a palletizing program for the Short blocks, then copy and modify it twice for the Medium and Tall blocks. The reason one routine would not work for all 3 is that each type of full pallet will contain a different number of Layers (due to the block heights), so some parameters in each routine will be different. Of course, those differences could be handled (with Indirect Addressing or setting up some arrays for each pallet layer) so that one routine would work for all 3, but this is a student program and it is best to K.I.S.S. and divide into 3 Palletizing Routines.

I have an old program (RSLogix500 and RSLogix5 versions) for a Palletizer routine, if it would help. However, it does not use a robot, so would have to be severely modified. I think basically to use a robot, each block pallet position must be calculated on an X-Y Pallet coordinate system, based on the Length and Width of the block, the Length and Width of the pallet, and the Pallet coordinates of the Last-placed block of this size (if not the first).

So the PLC will need the following info stored in its memory:

(1) Lentgh, Width, and Height of each block size.
(2) Lentgh, Width, and Fill Height of each Pallet.
(3) Calculated values for each different-sized block of how many blocks will fill a Pallet Row, and how many Rows will fit in one Layer, and how many Layers high will fit on a full pallet.
(4) The last-placed block pallet coordinates for each block size: The Layer Number, the Row Number, and the Row Position.

Then your PLC Palletizing routine becomes:
A. Look at prox switches, go to the Palletizing Routine for the height of the detected block.
B. Look at the memory location for the Last-Placed Block on this pallet (if pallet not empty).
C. Add "1" position to the Last Row Position (if not End-of-Row). If End-of-Row, advance to next Row Number (if not End-of-Layer). If End-of-Layer, advance to next Layer Number (if not Full Pallet). If Full Pallet, turn on alarm signal and stop conveyor until Pallet is swapped.
D. Move the robot arm to the new calculated advanced-by-1 position.
E. Place block, and store new Last-Placed Block Position
F. Return robot arm to home or waiting-for-next-block position.

The project could be limited to allow only 1 layer on each pallet. Then 1 Palletizing Routine would work for all 3 block heights, cutting the program size by about 67%.
 
Last edited:

Similar Topics

Hi guys, Name's Jesse. I'm writing to express my ideas for my senior project coming up. I currently work as a system integrator - doing...
Replies
6
Views
4,103
Hey everyone, I am a senior in an Electrical Engineering program. We are looking for a good project to do using PLC's. I have worked with both...
Replies
1
Views
2,537
Hello, My name is Khoa and I, like another whom posted a similar thread, am a senior in college working on my final design project (though...
Replies
9
Views
8,894
hello everyone, Im a engineering student at FIU and im working on my senior project this year. I have a very complicated task that have to be...
Replies
7
Views
1,899
Senior year has finally arrived and it is time to get cracking on coming up with a "Senior Design Project". The situation is as follows, a group...
Replies
10
Views
11,404
Back
Top Bottom