Resources and info, interfacing older CNC machines with Linux?
29 Aug 2017 13:36 #98149
by fastline
Hello, we have several older machines and are considering upgrading some of them. We have a couple VMCs, a 3 axis water jet, and a 5 axis, sub spindle lathe.
Now, I realize many videos make this process look easy but I know some of this is more about getting all the switches and such working correctly, requiring possibly new power supplies, I/O boards, etc. Then there is complications in setting up a tool change.
I am just curious who has done this and where I might be able to find universal hardware such as relay boards? I realize lots of things can be simplified as these machines are 20yrs.
Regarding driving older servo systems, are we going to need to find some type of analog logic board to interface with a PC and output logic to a servo amp? Not quite sure yet how this will all work. We have some Mitsubishi, Haas, and Siemens drives.
Now, I realize many videos make this process look easy but I know some of this is more about getting all the switches and such working correctly, requiring possibly new power supplies, I/O boards, etc. Then there is complications in setting up a tool change.
I am just curious who has done this and where I might be able to find universal hardware such as relay boards? I realize lots of things can be simplified as these machines are 20yrs.
Regarding driving older servo systems, are we going to need to find some type of analog logic board to interface with a PC and output logic to a servo amp? Not quite sure yet how this will all work. We have some Mitsubishi, Haas, and Siemens drives.
Please Log in or Create an account to join the conversation.
30 Aug 2017 23:02 #98241
by andypugh
Replied by andypugh on topic Resources and info, interfacing older CNC machines with Linux?
LinuxCNC supports a number of interfaces that can output analogue control voltages and count encoder pulses.
wiki.linuxcnc.org/cgi-bin/wiki.pl?LinuxCNC_Supported_Hardware
The most popular options at the moment are probably the Mesa 5i25 / 7i77 combination, the Pico PPMC system and General Mechatronics.
wiki.linuxcnc.org/cgi-bin/wiki.pl?LinuxCNC_Supported_Hardware
The most popular options at the moment are probably the Mesa 5i25 / 7i77 combination, the Pico PPMC system and General Mechatronics.
Please Log in or Create an account to join the conversation.
31 Aug 2017 15:05 #98294
by fastline
Replied by fastline on topic Resources and info, interfacing older CNC machines with Linux?
Thank you. Could you speak about the control's standard features? I am curious if the software already has simple safety features such as locking out program edit while running the program, won't eject a tool which in program, etc? Or will all of these things need written to a custom PLC ladder from scratch?
I know every machine is different but I think as a machinist, I am used to having some pretty standard "dummy" lockouts.
I think getting servos moving will likely be the easy part, but possibly more advanced features such as "look ahead" or high speed machining type control tactics to ensure if a servo system is unable to maintain a tool path at a given feedrate due to a direction change, it will slow down to ensure it makes the corner. Are these all things that have been addressed?
We also have run into controls with "torque controlled machining" or similar in which the control will sense the spindle loads and slow down a bit in tough areas to ensure the spindle does not stall during a cut. Has this been addressed?
I think tool change is the a big scary subject right now. Things like "never rotate a carousel changer unless in home position"?
It just seems like there are LOTS of canned programming to ensure machine cannot be accidentally crashed. One in which it seems even some MTBs don't always get right. And some of these are almost like you would have to try it on the machine just to see that it works!
I know every machine is different but I think as a machinist, I am used to having some pretty standard "dummy" lockouts.
I think getting servos moving will likely be the easy part, but possibly more advanced features such as "look ahead" or high speed machining type control tactics to ensure if a servo system is unable to maintain a tool path at a given feedrate due to a direction change, it will slow down to ensure it makes the corner. Are these all things that have been addressed?
We also have run into controls with "torque controlled machining" or similar in which the control will sense the spindle loads and slow down a bit in tough areas to ensure the spindle does not stall during a cut. Has this been addressed?
I think tool change is the a big scary subject right now. Things like "never rotate a carousel changer unless in home position"?
It just seems like there are LOTS of canned programming to ensure machine cannot be accidentally crashed. One in which it seems even some MTBs don't always get right. And some of these are almost like you would have to try it on the machine just to see that it works!
Please Log in or Create an account to join the conversation.
- Todd Zuercher
-
- Away
- Platinum Member
-
Less
More
- Posts: 4978
- Thank you received: 1377
31 Aug 2017 15:29 #98297
by Todd Zuercher
Replied by Todd Zuercher on topic Resources and info, interfacing older CNC machines with Linux?
The degree and quality of safety features depends entirely on the machine integrator (you).
As to editing a G-code file while it is running. Linuxcnc uses a separate text editing program (the Linux text editor of your choice) for editing G-code files. A G-code file can be edited while Linuxcnc is running it, but I am 90% certain that changes made to the file are not used unless you reload/refresh the file from in Linuxcnc, and that can't be done while it is being executed. I believe that the G-code file is loaded into the computer memory and executed from there, it is not read from the drive in realtime.
Linuxcnc has a form of high speed multi-line look ahead, built in (introduced in version 2.7). Before that, look ahead was limited to only a single line and speeds were automatically limited such that the machine would never go faster than what it could bring to a complete stop by the end of that next line. (Very safe but slow on short line-segmented code.)
I do not know if anyone has implemented a "torque sensed feed control" but I can imagine how it might be implemented in Linuxcnc without too much difficulty.
Tool change implementation, and how robust it's safety is totally dependent on how good the integrator is at programming such logic.
As to editing a G-code file while it is running. Linuxcnc uses a separate text editing program (the Linux text editor of your choice) for editing G-code files. A G-code file can be edited while Linuxcnc is running it, but I am 90% certain that changes made to the file are not used unless you reload/refresh the file from in Linuxcnc, and that can't be done while it is being executed. I believe that the G-code file is loaded into the computer memory and executed from there, it is not read from the drive in realtime.
Linuxcnc has a form of high speed multi-line look ahead, built in (introduced in version 2.7). Before that, look ahead was limited to only a single line and speeds were automatically limited such that the machine would never go faster than what it could bring to a complete stop by the end of that next line. (Very safe but slow on short line-segmented code.)
I do not know if anyone has implemented a "torque sensed feed control" but I can imagine how it might be implemented in Linuxcnc without too much difficulty.
Tool change implementation, and how robust it's safety is totally dependent on how good the integrator is at programming such logic.
Please Log in or Create an account to join the conversation.
31 Aug 2017 15:48 #98301
by andypugh
LinuxCNC offers adaptive feed:
linuxcnc.org/docs/devel/html/gcode/m-code.html#mcode:m52
That says that it can vary between 0 and 1, but it has been demonstrated (at least experimentally) running from -1 to 1 to reverse the path (possibly useful for wire spark erosion)
Replied by andypugh on topic Resources and info, interfacing older CNC machines with Linux?
We also have run into controls with "torque controlled machining" or similar in which the control will sense the spindle loads and slow down a bit in tough areas to ensure the spindle does not stall during a cut. Has this been addressed?
LinuxCNC offers adaptive feed:
linuxcnc.org/docs/devel/html/gcode/m-code.html#mcode:m52
That says that it can vary between 0 and 1, but it has been demonstrated (at least experimentally) running from -1 to 1 to reverse the path (possibly useful for wire spark erosion)
Please Log in or Create an account to join the conversation.
31 Aug 2017 16:28 #98302
by fastline
Replied by fastline on topic Resources and info, interfacing older CNC machines with Linux?
I was not able determine the actual functionality by the description and variables so I guess I might bring up my points just to see if we are on the same page. This is from a machine owner/operator//programmer perspective and I am not yet familiar with the coding in Linux yet.
Block speed/blocks per sec/lines per sec - This I would believe is mostly a non issue with modern systems but is the speed in which the control will buffer or execute the lines of code. If you have a bunch of tiny line segments that might be seen in a 3D contour path, The block speed must exceed the desired feed rate if the machine or the machine would effectively have to halt thousands of times as it waits for the blocks to catch up. If each line segment is .050" with a commanded feedrate of 100ipm, that would take a block speed of 2000 blocks/sec to ensure the control is able to stay ahead of the machine movement. This is likely more to do with the hardware I would assume.
Look ahead - Refers to the control looking several lines ahead and calculating the change in velocity and direction and comparing this to servo ability, settings, and feedrate to determine if the actual machine tool servo system can handle the change without deviating from the path. When it detects a change in direction that may cause a deviation, it then estimates a feedrate that would keep with machine in sync with the path and momentarily 'slow' toe feedrate, not stop it. These feedrates can be easily seen in a commercial control by comparing the programmed feedrate to the actual feedrate it is running at. For instance, if you program a .5" circle at maybe 500ipm, weak servos won't be able to do that so look ahead would be constantly changing the feed and may only run at 200ipm. This ensures a tool does not overshoot or gouge a part.
Torque controlled machining - This really has nothing to do with any predicting of the control. It simply picks up usually an analog input from the spindle amp and the user would would enter a preset value in the GUI as a target load. For instance if a tool is being pushed hard to 90% load, the user might enter 90% in a table in which the control will now be monitoring the load to ensure it does not exceed that value and would slow the feedrate until that value is met, possibly while also reporting to the user the rate of feed reduction. This is a very valuable feature for production. As a tool wears, it might take more and more load to run the tool. You may be able to alternatively enter a maximum feed reduction or max load in the table in which the control would then know the tool is worn, and replace it with an alternate tool on the next use. This later system is typically called Tool Life Management.
I am not spouting to try and educate or seem arrogant. Just trying to relay my understanding of these functions to see if you guys know if any of this has been covered in depth in Linux?
Block speed/blocks per sec/lines per sec - This I would believe is mostly a non issue with modern systems but is the speed in which the control will buffer or execute the lines of code. If you have a bunch of tiny line segments that might be seen in a 3D contour path, The block speed must exceed the desired feed rate if the machine or the machine would effectively have to halt thousands of times as it waits for the blocks to catch up. If each line segment is .050" with a commanded feedrate of 100ipm, that would take a block speed of 2000 blocks/sec to ensure the control is able to stay ahead of the machine movement. This is likely more to do with the hardware I would assume.
Look ahead - Refers to the control looking several lines ahead and calculating the change in velocity and direction and comparing this to servo ability, settings, and feedrate to determine if the actual machine tool servo system can handle the change without deviating from the path. When it detects a change in direction that may cause a deviation, it then estimates a feedrate that would keep with machine in sync with the path and momentarily 'slow' toe feedrate, not stop it. These feedrates can be easily seen in a commercial control by comparing the programmed feedrate to the actual feedrate it is running at. For instance, if you program a .5" circle at maybe 500ipm, weak servos won't be able to do that so look ahead would be constantly changing the feed and may only run at 200ipm. This ensures a tool does not overshoot or gouge a part.
Torque controlled machining - This really has nothing to do with any predicting of the control. It simply picks up usually an analog input from the spindle amp and the user would would enter a preset value in the GUI as a target load. For instance if a tool is being pushed hard to 90% load, the user might enter 90% in a table in which the control will now be monitoring the load to ensure it does not exceed that value and would slow the feedrate until that value is met, possibly while also reporting to the user the rate of feed reduction. This is a very valuable feature for production. As a tool wears, it might take more and more load to run the tool. You may be able to alternatively enter a maximum feed reduction or max load in the table in which the control would then know the tool is worn, and replace it with an alternate tool on the next use. This later system is typically called Tool Life Management.
I am not spouting to try and educate or seem arrogant. Just trying to relay my understanding of these functions to see if you guys know if any of this has been covered in depth in Linux?
Please Log in or Create an account to join the conversation.
31 Aug 2017 16:34 #98303
by andypugh
Replied by andypugh on topic Resources and info, interfacing older CNC machines with Linux?
I have _never_ heard of anyone running into a block-processing speed problem with LinuxCNC.
Most G-code files are fully converted to moves in the motion queue before the tool even touches the work.
Most G-code files are fully converted to moves in the motion queue before the tool even touches the work.
Please Log in or Create an account to join the conversation.
31 Aug 2017 16:35 #98304
by fastline
Replied by fastline on topic Resources and info, interfacing older CNC machines with Linux?
LOL, remember I am looking to convert due to older controls. We run into this problem on our old turds.
Please Log in or Create an account to join the conversation.
31 Aug 2017 19:56 #98309
by rodw
Replied by rodw on topic Resources and info, interfacing older CNC machines with Linux?
But lInuxCNC will polish them into diamonds.... so no need to worry.LOL, remember I am looking to convert due to older controls. We run into this problem on our old turds.
Please Log in or Create an account to join the conversation.
- Todd Zuercher
-
- Away
- Platinum Member
-
Less
More
- Posts: 4978
- Thank you received: 1377
31 Aug 2017 20:58 #98310
by Todd Zuercher
Replied by Todd Zuercher on topic Resources and info, interfacing older CNC machines with Linux?
Sometimes when you polish a turd all you end up with is a shiny turd.
Please Log in or Create an account to join the conversation.
Time to create page: 0.105 seconds