![]() | |
| Home Page | Mark Forums Read | Today's Posts | My Replies | Classifieds | Reviews | Photo Gallery | Web Links | Share Files | Advertise With Us | Ad List |
| |||||||
| LinuxCNC (formerly EMC2) Discuss LinuxCNC (formerly EMC2) Controlers here! |
| This forum is sponsored by: |
![]() |
| | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
| |||
| |||
Hi All My name is marcel. I am new to this forum but not to EMC I already build two machines that run of EMC I am now building a pick and place machine for placing SM electronic components. I don’t know much about how the G codes work, as I rely on a Cad-Cam program and EMC to do it all. The problem with a P/P machine is you need to pick a component like a tool change location except you have many such locations. All the picking locations will have a different Z-axis setting and when at the bottom it must switch the vacuum on to pick the component up. Could these locations and its functions be kept inside the EMC program or will you have to program it as part of your G code every time? Could one create a new G code like a drilling cycle with extra functions or is there any other easy way of doing this? |
|
#2
| |||
| |||
| Hello Marcel, An interesting proposition. I had been looking at flying probe requirements and have come to a conclusion that in a multi axis setting there would need to be too many anti collision checks to kee g-code as a viable coding medium. On the question of pick and place I am convinced it is a viable client for EMC and g-code. n general PCB cam software outputs SMD component centroid information. You would need to write a parser of centroid data to convert it to suitable G-code. Dont forget You have at least three commands in standard G-code You could use in lieu of vacuum on vacuum off for the pickup nozzle. namely you could coopt FLOOD ON, MIST ON and LUBRICATION OFF as a control line for vacuum. Given the centroid information and feeder number it is quite feasible to write a script ( stand alone program ) which will bring the location of pick up point and placement points into G-code instruction. SAY centroid data ( x,y) feeder number k => which automatically gives feeder pickup point (Xk,Yk, Zk) PCB thickness t Component thickness Ct so now the pickup routine would be G00 Xk Yk Zk+offset ( offset to clear component thickness) G01 Zk+Ct ( nozzle resting on the back of component ) M8 ( time to swithch vacuum on say using FLOOD ON) G01 Fabc Zk+offset ( pickup component above feeder at a slower rate so as not to break vacuum nozzle hold) G01 Xx Yy ( deliver component to the centroid coordinates) G01 Zt (Bring the component to the top surface of PCB ) M9 ( turn vaccum off using ALL LUBRICATION OFF and perhaps even activate pushh down pin inside pickup nozzle) G00 Zk+offset ( move to new pickup height and now ready to pickup next component) All of the above can be programed within a script to output Gcode and make the machine perform rudimentary pick and place job. Keep in mind that vaccum pickup is not alway 100% sure thing so you may have to eventually write a script which would do rework pick and place instructions. I hope this gives You some ideas and do not rely on everything i have said. M codes may prove to be a bad choice i do not know.. You may even have to do some PLC programing within EMC2 to stick your machine together. In any case ... GOOD LUCK G01 Fabc Xx Yy |
|
#3
| |||
| |||
| Hi Zig Thanks for the advice but I was hoping for something easier. I have a PCB program that generates the Gerber file. I was hoping to use its drilling function as the center for picking and placing the component. The Gerber file can be converted in to DFX and in my Cad cam program to G codes. Could one create a new G code or macro file that will switch the vacuum on when z is at the bottom and move the XY to the specified location for picking? A drilling G code file would work nice if one could find a way for it to perform those extra functions automatically. Regards Marcel |
|
#5
| |||
| |||
| Have you seen this video? After the component is picked up, it takes it to a location where it can center it on the pickup probe to ensure proper alignment when it is placed. |
| Sponsored Links |
|
#6
| |||
| |||
| You can not use the Excellon drill file. It is just that DRILL file not component CENTROID. Do a bit more research into PCB CAM packages and pick and place centroid information they produce. Look at GRAPHICODE, CAM350 and similar packages. I do not think PCB CAD packages can help You ; they do not have suitable manufacturing outputs. And no it does not get any easier; unless You decide to write Your own motion control software and not go with G-codein which case You are on Your own. |
|
#7
| |||
| |||
Instead, I have a VERY sophisticated machine (Philips CSM84) that works pretty well for the type of boards I build. It is clearly not as accurate as it was when new, but still works OK. But, I also have a high-end electronic CAD/CAM package (Protel 99SE) which does produce P&P files. I then wrote a little C program that converts this file to what the Philips needs. It also takes in a file that assigns component names to feeder positions, and the orientation of the parts on the tapes. The Philips machine finds fiducial locations on the board (I usually just use the mounting holes instead of dedicated fiducial spots) and uses these to correct for offset and twist as the board is held on the conveyor rails. It can handle from 0402 (I never use anything smaller than 0805) up to 35 mm square QFP chips, with 3 heads with different nozzles. it can even pick up a part on each head and put all three down on the board in the same move. I pretty much figured out how you would do P&P with EMC, but it wouldn't be real pretty. The Philips has all SORTS of nice features in its software (runs on a 80286, that tells you the vintage). It retries if it failed to pick up a part, counts how many times it failed and then stops after that many, which can be set differently for each part. It allows you to change the settings for a particular feeder/component even in the MIDDLE of placing a board, and all sorts of other stuff that would be hard to do with a G-code based system. It has 3 levels of vacuum sensing on each head, and each component can be set for which level of vacuum indicates the part was picked correctly. My machine also has a vibratory feeder for SO-type chips in tubes, and a "mechanical aligner" where the head lowers the part and pairs of jaws center it on the nozzle. The small-part nozzles have jaws that align the parts when the nozzle picks them up. I think an EMC - G-code based P&P might be OK for small boards with 20 parts max, I've already done a board with over 800 parts on it. I can't imagine how I'd deal with jammed feeders or component tapes that went empty if I had to do the "run from line" stuff in EMC every time that happened. As I have gotten the machine tuned up and found out what parts just didn't work well on this machine, it gets more reliable, but in the beginning, I had a LOT of trouble with dropped and mis-picked parts, but the Philips made it pretty easy to recover from most of those. Jon |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| SMD pick and place | ciccio | Printing, Scanners, Vinyl cutting and Plotters | 194 | 01-19-2010 12:34 AM |
| pick & place software | gombault | Digitizing and Laser Digitizing | 0 | 09-06-2009 05:53 AM |
| Newbie- who has smd pick place software??? | C++ | Printing, Scanners, Vinyl cutting and Plotters | 2 | 03-04-2009 01:43 PM |
| Best place to pick up tooling | rossrods | Benchtop Machines | 9 | 03-13-2008 09:30 PM |
| Pick-and-place using a CNC mill | mickelsen | CNC Tooling | 2 | 12-23-2007 07:02 PM |