That all depends on the thread and progression of the software. However, all my source code applicable to machinery will be in the initial post of this thread. So any changes that do occur, the updated version will always be in that location.
CNC means to us as individuals how we ourselves interpret it's meaning, irregardless of anyone elses definition. Right or wrong, our own definitions will never changed [sic] by having each other cram definitions down each others throats.
"When I use a word,' Humpty Dumpty said in rather a scornful tone, 'it means just what I choose it to mean neither more nor less."
"The question is," said Alice, "whether you can make words mean so many different things."
"The question is," said Humpty Dumpty, "which is to be master that's all."
-Lewis Carroll, Through the Looking Glass
Without commonly agreed-upon definitions for words, communication becomes impossible.
Well, personally I always go for the Wiki on things like this. It's good at sorting out the inherent conflicts between academic, industry and abstract name space conflicts.
Numerical control (NC) refers to the automation of machine tools that are operated by abstractly programmed commands encoded on a storage medium, as opposed to manually controlled via handwheels or levers, or mechanically automated via cams alone. The first NC machines were built in the 1940s and 1950s, based on existing tools that were modified with motors that moved the controls to follow points fed into the system on punched tape. These early servomechanisms were rapidly augmented with analog and digital computers, creating the modern computer numerical controlled (CNC) machine tools that have revolutionized the manufacturing process.
In modern CNC systems, end-to-end component design is highly automated using computer-aided design (CAD) and computer-aided manufacturing (CAM) programs. The programs produce a computer file that is interpreted to extract the commands needed to operate a particular machine via a postprocessor, and then loaded into the CNC machines for production. Since any particular component might require the use of a number of different tools-drills, saws, etc., modern machines often combine multiple tools into a single "cell". In other cases, a number of different machines are used with an external controller and human or robotic operators that move the component from machine to machine. In either case, the complex series of steps needed to produce any part is highly automated and produces a part that closely matches the original CAD design.
DIY, Hobby, and Personal CNC
Recent developments in small scale CNC have been enabled, in large part, by the Enhanced Machine Controller project from the National Institute of Standards and Technology (NIST), an agency of the Commerce Department of the United States government. EMC is a public domain program operating under the Linux operating system and working on PC based hardware. After the NIST project ended, development continued, leading to EMC2 which is licensed under the GNU General Public License and Lesser GNU General Public License (GPL and LGPL). Derivations of the original EMC software have also led to several proprietary PC based programs notably TurboCNC, and Mach3, as well as embedded systems based on proprietary hardware. The availability of these PC based control programs has led to the development of DIY CNC, allowing hobbyists to build their own [17][18] using open source hardware designs. The same basic architecture has allowed manufacturers, such as Sherline and Taig, to produce turnkey lightweight desktop milling machines for hobbyists.
Eventually the homebrew architecture was fully commercialized and used to create larger machinery suitable for commercial and industrial applications. This class of equipment has been referred to as Personal CNC. Parallel to the evolution of personal computers, Personal CNC has its roots in EMC and PC based control, but has evolved to the point where it can replace larger conventional equipment in many instances. As with the Personal Computer, Personal CNC is characterized by equipment whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end user, often without professional training in CNC technology.
So then, the only thing required is a qualifer, and everybody is happy.
That's old news. I read that same information two days ago. When this whole thing started.
Eventually the homebrew architecture was fully commercialized and used to create larger machinery suitable for commercial and industrial applications. This class of equipment has been referred to as Personal CNC.
The wiki is generally the first place I go when resolving things like this, or where I'm in to some new territory and I want to know the lay of the land.
From there, it's easy to get the detail information where ever it may be found. Helps considerably on searches too. A qualifier or two on something will significantly improve search performance as well. That's why I highlighted the passages I did. Easily resolved. No other statements implied, nor intended.
I thought every one knew that CNC machines were those big mills and lathes that allowed you to steer the thing by inputting movement commands on paper tape.
Or did I miss something since my production engineering days:)
Paper tape was my first program transfer technology. Floppy disk / network DNC was just starting to come on line, and many places were still in the 70's.
My first CNC programs were hand computed, written out, typed into the controller directly (there was one nice one with display and program memory), checked with a dry run, then run for real. Scary, heavy stuff!
Later on, I used the punch block to manually create a paper tape for a longer program that would run on a loop on one of the machines with no program memory at all. Just create the tape, then put it into the reader, forward to near the end, tape the two together to literally form a "program loop", which is exactly what the older operator who was showing me the ropes called it.
From there it was graduating to a Tek Vector storage tube display for writing bigger programs, and simulation on screen, prior to cutting tape.
Finally, floppy, and then network, then DNC for the older machines, replacing the tape reader with a just in time "drip feed", which would communicate a block at a time to the controller, as it needed it.
Today, it's great!! There are simulations right on the controls now, featuring GUIs with editors and such. A whole lot can be done just standing there at the machine now. Easy too.
I've lost it, but I wrote a 8K or so copy of INVADERS.EXE for MSDOS onto paper tape. Used to read it in from the serial port, once in a while, just for fun. Ended up a little under 3" in diameter, read in at 9600 BAUD. Kept it in a little clear plastic can, with "Space Invaders" written on it.
If the punch / reader machines were not so darn expensive, it would be fun to run with a prop.
It is a long story, but last year I went to work at a multi-national manufacturing business that actually started down the street in somebody's basement from where I grew up. This place had large quantities of some very nice CNC equipment. I was in awe just walking through the plant. But your right, GUI right on the machine. That is what I am doing with mine.
My first exposure to CNC was a Bridgeport vertical milling machine programmed by paper tape. At that date (AD 1976), the mill most definitely did not employ sophisticated ballistic computations. It was strictly X, Y. If you wanted smoother results, you took shorter steps. I'm certain that the state-of-the-art has moved on from there, but that was still definitive CNC. So I tend to think that CNC encompasses a wide latitude of sophistication.
idbruce:
'
I have some questions about DRDParser if you don't mind explaining them?
'
But first let me say that the code looks great and well planed out,And its my lack of Spin as to my questions.
'
First: How are you connecting the steppers to the 74595's?
'
Second: I see you are using two steppers for "Y". I can see the need for more um-th on this axis, How is it wired.
'
Third: can this code read grb instead of drd?
'
Thanks in advance for any info or help with this.
Hi Guys,
I stumbled upon your thread and would like to ask a couple of questions. Years ago I made a stepper postioner using a Basic Stamp, It was a simple program that used an LCD, a couple of pushbuttons for entering a number and a button for starting the move. Using the Basic Stamp was fairly simple however the pulse train output was to slow to really do anything useful. I would like to know how The Propeller would differ and how could I learn to make a simple positioner. I taught myself the Pbasic and have since learned to do a little Ladder programing and understand how the Pulse and Direction motor amplifiers work,
Using the Basic Stamp was fairly simple however the pulse train output was to slow to really do anything useful.
I don't keep track of the statistics, but the Propeller is naturally much faster than the Basic Stamp. It has a much higher execution rate of instructions per second, therefore it should make a stepper motor go somewhat faster.
I am not a big advocate of building stepper drivers from discrete components, because I wasted a lot of time and effort by trying that route. There are numerous posts of mine throughout the forum where I suggest using a L297/L298 combination to build a nice little stepper driver. The L297 and L298 are good components, they are reasonably priced, they readily available, and there is good documentation available from the manufacturer. Building a stepper driver using these components should allow you to use the software entitled "Pulse The Step Pin", which is attached in the very first post of this thread. It is accurate and reasonably fast, and will make a 2000 microstep driver turn at 13.34 revs per seconds. Hope this helped.
Hi Bruce,
Actually I would use an off the shelf stepper or servo driver device. The Propeller would handle communications between the driver and the HMI. From the little bit I have read about the Propeller chip, my understandiing is that a number of software cogs are created and linked together to form an operation. So I gather that a piece of code is available to pulse a pin, and that there may be some code available to handle the input for distance requirements from the HMI?
I have seen HMI before, but I forget it's meaning. But just for the sake of clarity, if you are buying an off the shelf product, then everything is good. I use the G251 drives from Gecko drive. That drive uses 1-3 IO pins which are dependant upon your requirements:
Step - Always used
Direction - Can be set without IO pin
Disable - Discretionary use
With this drive and the previously mentioned software, I can run my steppers at 13.34 revs per second.
that there may be some code available to handle the input for distance requirements from the HMI
First tell me the definition of HMI and then elaborate a little more about it.
HI Bruce,
HMI is a term used by the PLC guys, Human Machine Interface, can be as simple as an LCD with a couple of buttons to input information or as complex as a Touchscreen. The one I built was one of your standard LCD units with buttons to increment a number up or down. That number would indicate the number of pulses to out put to the stepper driver, another button would start the motor to move the amount of pulses, I never got far enough to convert the pulses into inches or fractions of movement.
Well then this is where I am. I am currently working on my communicating with my machine interface, where a user can push buttons to select operations, enter distance, etc and all the input is displayed on LCD. So I know exactly where you are coming from. At the current time, I am working to develop the commumication procedure from the machine interface to the actual machine.
The propeller is good for all these things. However, documentation can be hard to find. But I support it.
Hi Bruce,
Thanks for the response, one of the things I have been trying to build is a simple CNC saw stop. There are several available but quite expensive, and I like to tinker and build things myself. Should I get the propeller education board to start?
Of course my view is different from everyone elses. If you have enough money to buy the things you want, and you plan to mess around with microprocessors for a while, then the answer is yes, get something with a breadboard, such as the Propeller Education Kit to experiment with. However, if the budget is tight and you want to build projects as you go, I would suggest the Propeller Proto Board or the Propeller DIP Plus Kit.
The Propeller Professional Developement Board has some nice features also.
Being on a limited budget, I always build projects as I go, using the Propeller Proto Board or the Propeller DIP Plus Kit.
Comments
I have one question?
If it is possible that You add new versions without remove older ones. Very useful in learn progress For everyone that need that.
That all depends on the thread and progression of the software. However, all my source code applicable to machinery will be in the initial post of this thread. So any changes that do occur, the updated version will always be in that location.
Bruce
Without commonly agreed-upon definitions for words, communication becomes impossible.
-Phil
LOL So true. Now how can I argue with wisdom like that.
Okay guys let's work this out, what is the meaning of CNC
Bruce
So then, the only thing required is a qualifer, and everybody is happy.
That's old news. I read that same information two days ago. When this whole thing started. Bruce
From there, it's easy to get the detail information where ever it may be found. Helps considerably on searches too. A qualifier or two on something will significantly improve search performance as well. That's why I highlighted the passages I did. Easily resolved. No other statements implied, nor intended.
Welcome to the thread.
Bruce
I thought every one knew that CNC machines were those big mills and lathes that allowed you to steer the thing by inputting movement commands on paper tape.
Or did I miss something since my production engineering days:)
Wow that sounds interesting. Never heard of that before. You must be oooolllldddd Just kidding.
Bruce
Paper tape was my first program transfer technology. Floppy disk / network DNC was just starting to come on line, and many places were still in the 70's.
My first CNC programs were hand computed, written out, typed into the controller directly (there was one nice one with display and program memory), checked with a dry run, then run for real. Scary, heavy stuff!
Later on, I used the punch block to manually create a paper tape for a longer program that would run on a loop on one of the machines with no program memory at all. Just create the tape, then put it into the reader, forward to near the end, tape the two together to literally form a "program loop", which is exactly what the older operator who was showing me the ropes called it.
From there it was graduating to a Tek Vector storage tube display for writing bigger programs, and simulation on screen, prior to cutting tape.
Finally, floppy, and then network, then DNC for the older machines, replacing the tape reader with a just in time "drip feed", which would communicate a block at a time to the controller, as it needed it.
Today, it's great!! There are simulations right on the controls now, featuring GUIs with editors and such. A whole lot can be done just standing there at the machine now. Easy too.
I've lost it, but I wrote a 8K or so copy of INVADERS.EXE for MSDOS onto paper tape. Used to read it in from the serial port, once in a while, just for fun. Ended up a little under 3" in diameter, read in at 9600 BAUD. Kept it in a little clear plastic can, with "Space Invaders" written on it.
If the punch / reader machines were not so darn expensive, it would be fun to run with a prop.
It is a long story, but last year I went to work at a multi-national manufacturing business that actually started down the street in somebody's basement from where I grew up. This place had large quantities of some very nice CNC equipment. I was in awe just walking through the plant. But your right, GUI right on the machine. That is what I am doing with mine.
Bruce
'
I have some questions about DRDParser if you don't mind explaining them?
'
But first let me say that the code looks great and well planed out,And its my lack of Spin as to my questions.
'
First: How are you connecting the steppers to the 74595's?
'
Second: I see you are using two steppers for "Y". I can see the need for more um-th on this axis, How is it wired.
'
Third: can this code read grb instead of drd?
'
Thanks in advance for any info or help with this.
It would be a true pain to discuss this all by typing it out. Could you call me on the phone?
Bruce
I stumbled upon your thread and would like to ask a couple of questions. Years ago I made a stepper postioner using a Basic Stamp, It was a simple program that used an LCD, a couple of pushbuttons for entering a number and a button for starting the move. Using the Basic Stamp was fairly simple however the pulse train output was to slow to really do anything useful. I would like to know how The Propeller would differ and how could I learn to make a simple positioner. I taught myself the Pbasic and have since learned to do a little Ladder programing and understand how the Pulse and Direction motor amplifiers work,
Thanks in advance, markn
I don't keep track of the statistics, but the Propeller is naturally much faster than the Basic Stamp. It has a much higher execution rate of instructions per second, therefore it should make a stepper motor go somewhat faster.
I am not a big advocate of building stepper drivers from discrete components, because I wasted a lot of time and effort by trying that route. There are numerous posts of mine throughout the forum where I suggest using a L297/L298 combination to build a nice little stepper driver. The L297 and L298 are good components, they are reasonably priced, they readily available, and there is good documentation available from the manufacturer. Building a stepper driver using these components should allow you to use the software entitled "Pulse The Step Pin", which is attached in the very first post of this thread. It is accurate and reasonably fast, and will make a 2000 microstep driver turn at 13.34 revs per seconds. Hope this helped.
Bruce
Actually I would use an off the shelf stepper or servo driver device. The Propeller would handle communications between the driver and the HMI. From the little bit I have read about the Propeller chip, my understandiing is that a number of software cogs are created and linked together to form an operation. So I gather that a piece of code is available to pulse a pin, and that there may be some code available to handle the input for distance requirements from the HMI?
Regards, Mark
I have seen HMI before, but I forget it's meaning. But just for the sake of clarity, if you are buying an off the shelf product, then everything is good. I use the G251 drives from Gecko drive. That drive uses 1-3 IO pins which are dependant upon your requirements:
Direction - Can be set without IO pin
Disable - Discretionary use
First tell me the definition of HMI and then elaborate a little more about it.
Bruce
HMI is a term used by the PLC guys, Human Machine Interface, can be as simple as an LCD with a couple of buttons to input information or as complex as a Touchscreen. The one I built was one of your standard LCD units with buttons to increment a number up or down. That number would indicate the number of pulses to out put to the stepper driver, another button would start the motor to move the amount of pulses, I never got far enough to convert the pulses into inches or fractions of movement.
Mark
Well then this is where I am. I am currently working on my communicating with my machine interface, where a user can push buttons to select operations, enter distance, etc and all the input is displayed on LCD. So I know exactly where you are coming from. At the current time, I am working to develop the commumication procedure from the machine interface to the actual machine.
The propeller is good for all these things. However, documentation can be hard to find. But I support it.
Bruce
Thanks for the response, one of the things I have been trying to build is a simple CNC saw stop. There are several available but quite expensive, and I like to tinker and build things myself. Should I get the propeller education board to start?
Mark
Of course my view is different from everyone elses. If you have enough money to buy the things you want, and you plan to mess around with microprocessors for a while, then the answer is yes, get something with a breadboard, such as the Propeller Education Kit to experiment with. However, if the budget is tight and you want to build projects as you go, I would suggest the Propeller Proto Board or the Propeller DIP Plus Kit.
The Propeller Professional Developement Board has some nice features also.
Being on a limited budget, I always build projects as I go, using the Propeller Proto Board or the Propeller DIP Plus Kit.
Bruce