28dec2012
BlenderHalEDM
some notes on using Blender as a gui to layout hal network diagrams
A non-traditional thermal machining discipline.
Electrical spark discharges melt tiny bits of conductive material in a controlled environment of a liquid bath.
Other languages refer to the process as Eroding and Erosion.
Deutsche = funkerodieren Italian = elletroerosione Swedish ? = gnisting Mandarin = dian wah (but you'd need the chinese characters for 'electric flower') Czech = Elektroerozijska obdelava Polish = obróbka elektroerozyjna Français = électro-érosion
Developed in the late 1940's by a Russian husband and wife team, the Lazarenkovs. The use of spark discharge was known previously, but the Lazarenkovs invented the 'EDM Servo'. The term servo in EDM is like the R/C servo concept. But in EDM the process developes the control voltage and the servo motor moves the tool to a position that is very close to the workpiece (perhaps .00025" to .040" depending on the discharge energy and the resistive nature of the bath).
2006
late in 2005 successful wire edm was accomplished by 'mdynac' photo at http://timeguy.com/cradek-files/emc/edm/MVC-028S.JPG This used the idea from RayH to slow down the veloicty based on feedback of gap voltage. It used Hal components wired into the feedrate override.
The edm functions could be built into the existing emc2 interpreter if it were made to save blocks of gcode rather than simply reading, making canonical commands, and discarding.
The following pins and parameters are just suggested. Please edit these as you see fit.
Dave Engvall has a way to send streams of positions to usrmot. He use a component from John Kasunich 'hal-streamer'. While emc2.0.3 is running, he opens a terminal and runs usrmot, there, he can manually or programmaticly ask for positions as triplets (thinking inside the xyz box for now ) ie: 25.4, 12.7, 50.8 and can change the request at will. you can try this yourself! now if we can get a program to determine where the electrode ought to be right now, we'd have a big part of the edm control done! This is not gcode, just a stream of positions from an external program.
Peter Gruendeman is working on a machine tool and generator.
Tomp will try some tests with STG hardware.
2006 03 02 John Kasunich wrote about thoughts he's had on realtime dynamic feedrate. "The second issue would be REALTIME control of scale. That would not use NML feedrate override messages (too slow), instead it would be a HAL pin connected directly to the realtime motion controller that would modify the feedrate on a servo-cycle by servo-cycle basis." thanks John
2006 03 03 Alex Joni has agreed to create a new hal pin to help in EDM reported by MAC > I contacted Alex Joni and he is going to set up a hal pin to control > feedrate override. So i should be able to apply a varying voltage to > the Motenc adc input and get an output to be used by emc2. " we can test with a pot and a battery asap :-) no need to wait for a whole edm machine. kewl Thanks Mac & Alex
2006 03 10 Ben Fleming & Michael Erbe have teamed up to build a new EDM power supply. They may help the emc group in the EDM effort by letting us use thier generator. Ben & Mike have developed a new generator and will show it off at the 2006 fest. http://www.lindsaybks.com/bks9/edm/index.html
here's C. Scott Ananian's Garden of EDM power supply pcb it's in PCB format ( a free pcb layout tool for Linux ) surely would benefit from someone who knew electronics rather than plumbing :-) (requires oscillator and is a generator, not a servo sense circuit ) This just the pcb, the design is in xcircuit format. The design is available at Scott's site.
upload:goe-scottsvrsn23q
Jon Elson wrote some excellent tools, available athttp://pico-systems.com/gcode.html
found a lot of code for emc by some guys writing in ruby these people put a lot of work into these routines, thanks! look athttp://xdobs.com/cnc/runing_program.html
in general, the class of controller suited to EDM are 'gap-width controllers'. that is the name to google for, it is a class of control, used by other disciplines besides EDM.
excerpts: In EDM the feedrate can not be defined by the user. The electrode speed is determined by the process. ... NC-concepts based on a constant velocity movement along a wide part of the course cannot be used [6] ... The target feedrate (Vb) is computed by the gap-width controller based on an actual evaluation of the ED-process. Vb is valiud only for one NC sample-time (T). Next step in calculation is the check of the target feed rate. In caase of exceeding the maximal admitted acceleration a correction of the feedrate is made to avoid a deviation of the target course. Based on this proven feedrate (V'b) the increment along the course (delta s ) is calculated and the interpolation can generate a new target position (Xt, Yt, Zt) for the drives"
TomP's comments: This is for sink edm, including orbiting ( a technique to refine surface finish ). I intend a simplification where reversal is not used, but 2 safe places are remembered. These will be constant for a single task. They are the start position, and the deeper position where orbiting would begin. ( my term for this is the 'roughing point', from this point all planetary excursions begin and end ) You gotta understand sink edm and i havent explained those concepts yet... but, it simply means that 'remebering the path' is un-needed, and 'backing up' is simply moving towards one of the 2 points/poses. Forward position increments are calculated just like the paper describes. The 'next place to goto' is determined by the 'trajectory planner' in EMC. These are tiny moves that add up to a whole G01 or G02 or G03. These moves are actually the G01 G02 G03 broken down into tiny bits that may get accomplished in the next servo cycle. Well, if we dont use EMC's tp, then we dont get these pieces. If we dont get these pieces, then we cant stream them to hal. We can get these pieces from Vapt, asking it to generate all motion into short lines. These destinations, even up to 9 axis, can be hal-streamed into a gap-width control under Hal. If there's some need, the tool can 'run-away'to one of the 2 safe places. If the conditions get better, the tool can return to the last hal-stream position accomplished by by the gap-controller, and proceed towards the end of of the 'program'.