Absolute encoders - Page 2


Page 2 of 2 FirstFirst 12
Results 13 to 23 of 23

Thread: Absolute encoders

  1. #13
    Member Jim Dawson's Avatar
    Join Date
    Dec 2013
    Posts
    3719
    Downloads
    0
    Uploads
    0

    Default Re: Absolute encoders

    Quote Originally Posted by rick027 View Post
    Well Jim that's why I was asking if I could do it with the stuff I already have. If I can't I can't, I would have to buy new drivers etc.

    OK, you are going to have to buy some control hardware. You need a new controller, Dynomotion Kflop at a minimum. Galil would be a good option also. Both are compatible with Mach3 but Mach3 is an open loop system, so connecting an encoder really won't do you much good. Mach3 has no idea where the axes are at, even with an encoder connected to the system. I think I see some new CNC control software in your future.

    Let's take the case of my milling machine, it has no home position at all, or maybe I should say that it has a floating zero, settable anywhere relative to the work. It has linear incremental encoders and never loses position unless the computer is powered down. I pretty much never turn the computer off. If I have a setup that I need to leave overnight or something, I just move the axes to a known position and hit the E-stop, but the position remains known unless there is a power fail that takes down the computer. Even at that, I can plug the known position into the software and continue on.

    What is your budget for this project?

    Jim Dawson
    Sandy, Oregon, USA


  2. #14
    Member
    Join Date
    Aug 2009
    Location
    USA
    Posts
    168
    Downloads
    0
    Uploads
    0

    Default Re: Absolute encoders

    You have some misconceptions with Encoders
    Well, I will be the first to admit that there are limits to my knowledge. I am primarily a software guy, specializing on the Mac and iOS platforms; however I do dabble in electronics hardware as well. My CNC knowledge is mostly self-taught; so there could well be gaps there.

    However, there are things that I am quite certain of; because of direct hands-on experience. The incremental encoders output signal is one of them; as I have one in my other hand right now...

    If an Encoder has many Bits wide positioning, it would be no good for anything ( 1 Bit 1024 ) that's 1024 PPR
    I'm going to presume that's a typo; and you meant to say ten bits (which is indeed 1024 possible values), not one bit...

    A ten bit absolute encoder is not useless in the general sense; it's just not really adequate for CNC positioning applications; and certainly not as a linear encoder for CNC. A good use for a ten bit absolute rotary encoder might be for a volume control on a high-end stereo.

    For CNC positioning, especially with linear encoders, you need many more bits than ten... how many depends on the length of the encoder; and how many counts per unit (inches or centimeters) it has. For example, for an encoder with 0.0001 resolution, with a length of 20 inches, there are 200,000 total counts from one end to the other. This will fit into 18 bits (2^18 = 262144).

    Absolute Encoders you have to Home just the same as Incremental Encoders, there are 2 types of Absolute Encoders one that remembers position for a short while which has a built in power memory storage to keep it active for around 1 hour, and Battery powered which will remember the position when the power goes off

    This does not mean you don't home the machine because it has Absolute Encoders, a good example of this is any Hass mill they use Absolute Encoders, and the machine won't do anything until it is Homed

    Most all CNC Machines use Absolute Encoders
    I have never seen what you are describing advertised. This does not necessarily mean it doesn't exist... just that I've never seen it. Every absolute encoder I've seen advertised has no battery or capacitor backup; it just outputs the value corresponding to it's current position when powered, no matter what. This is typically done using Grey code; so that there is only one bit changing at any given time (see https://en.wikipedia.org/wiki/Gray_code for more info).

    Perhaps you know more about the insides of a Haas control than I do (likely, considering I've never taken one apart)... how are the axis encoders interfaced to the control? Quadrature? High-speed serial? Where is the backup power supply located? If it's quadrature, is there a hardware counter that's kept powered up by the backup power supply?

    Any non Hobby CNC system have no problem interfacing with Absolute or Incremental Encoders, on all good systems the Encoder goes first to the Servo Drives then to the control which can output anything to suit the control
    I prefer the terms "low end", "mid-range" and "high end", instead of "hobby CNC" - because there are people who make money using machines built with open-loop stepper systems and controls like Grbl or Mach 3... and some of these systems are commercially manufactured and marketed at certain kinds of professionals... and as time goes by, features that were once solely in the domain of high end machines migrate downwards, until they are available on the cheapest of control systems.

    I had missed the fact that this thread is in the LinuxCNC forum (I got here via the "Today's Posts" button); so I will now infer that the control we are talking about is, in fact, LinuxCNC; interfaced via parallel ports to CNC4PC C10 cards.

    As stated earlier; I think the original poster is going to need to upgrade his control system to use something with a FPGA in it; such as one of the Mesa boards; in order to add encoders at all. As LinuxCNC is an open-source system; it should be possible to interface a true absolute multi-bit Grey-code encoded set of linear encoders to the system; but I suspect that doing this will involve writing code, both C/C++ for the Linux side, and Verilog/VHDL for the FPGA side. Co-operation of Mesa might be required as well.

    FWIW, these Wikipedia articles may shed some more light on the subject:

    https://en.wikipedia.org/wiki/Linear_encoder
    https://en.wikipedia.org/wiki/Rotary_encoder

    Also, just in case anybody was wondering, Verilog code for a FPGA card to do quadrature decoding might look something like this:
    Code:
    module quadratureDecoder(
    					clock,
    					A,
    					B,
    					increment,
    					count
    				);
    	input clock;
    	input A;
    	input B;
    	input [7:0] increment;
    	output signed [31:0] count;
    
    	reg [2:0] A_delayed;
    	reg [2:0] B_delayed;
    	always @(posedge clock) A_delayed <= {A_delayed[1:0], A};
    	always @(posedge clock) B_delayed <= {B_delayed[1:0], B};
    
    	wire count_enable = A_delayed[1] ^ A_delayed[2] ^ B_delayed[1] ^ B_delayed[2];
    	wire count_direction = A_delayed[1] ^ B_delayed[2];
    
    	reg signed [31:0] count;
    	always @(posedge clock)
    	begin
    		if(count_enable)
    		begin
    			if(count_direction)
    				count <= count + $signed(increment);
    			else
    				count <= count - $signed(increment);
    		end
    	end
    
    endmodule
    That's from something that I'm experimenting with to add closed-loop functionality to Grbl... it hasn't been tested yet on actual hardware (I'm waiting to get all the modules into the project so I can figure out how big of an FPGA development board to order), so don't hook any motors up to it yet! However, I can say that it at least compiles with the Icestorm toolchain for Lattice Ice40 FPGAs...
    Multi-bit Grey-code interfacing would be a bit different; but still have the same general feel to it (in other words... it's still Verilog).





  3. #15
    Member rick027's Avatar
    Join Date
    Jun 2007
    Location
    usa
    Posts
    27
    Downloads
    1
    Uploads
    0

    Default Re: Absolute encoders

    Have to disagree with mactec54 on the absolutes, because I run a weeke 050 and a nester they both have absolute encoders and these machines know where they're positions are at all the time..



  4. #16
    Member rick027's Avatar
    Join Date
    Jun 2007
    Location
    usa
    Posts
    27
    Downloads
    1
    Uploads
    0

    Default Re: Absolute encoders

    Thanks Britt , for all this info. I'm not running Linux I'm running mach3. Thanks for your help, now I know what I have to do. Thanks again guys..



  5. #17
    Member
    Join Date
    Feb 2008
    Location
    USA
    Posts
    587
    Downloads
    0
    Uploads
    0

    Default Re: Absolute encoders

    Quote Originally Posted by __Britt View Post
    Well, I will be the first to admit that there are limits to my knowledge. I am primarily a software guy, specializing on the Mac and iOS platforms; however I do dabble in electronics hardware as well. My CNC knowledge is mostly self-taught; so there could well be gaps there.

    However, there are things that I am quite certain of; because of direct hands-on experience. The incremental encoders output signal is one of them; as I have one in my other hand right now...


    I'm going to presume that's a typo; and you meant to say ten bits (which is indeed 1024 possible values), not one bit...

    A ten bit absolute encoder is not useless in the general sense; it's just not really adequate for CNC positioning applications; and certainly not as a linear encoder for CNC. A good use for a ten bit absolute rotary encoder might be for a volume control on a high-end stereo.

    For CNC positioning, especially with linear encoders, you need many more bits than ten... how many depends on the length of the encoder; and how many counts per unit (inches or centimeters) it has. For example, for an encoder with 0.0001 resolution, with a length of 20 inches, there are 200,000 total counts from one end to the other. This will fit into 18 bits (2^18 = 262144).



    I have never seen what you are describing advertised. This does not necessarily mean it doesn't exist... just that I've never seen it. Every absolute encoder I've seen advertised has no battery or capacitor backup; it just outputs the value corresponding to it's current position when powered, no matter what. This is typically done using Grey code; so that there is only one bit changing at any given time (see https://en.wikipedia.org/wiki/Gray_code for more info).

    Perhaps you know more about the insides of a Haas control than I do (likely, considering I've never taken one apart)... how are the axis encoders interfaced to the control? Quadrature? High-speed serial? Where is the backup power supply located? If it's quadrature, is there a hardware counter that's kept powered up by the backup power supply?



    I prefer the terms "low end", "mid-range" and "high end", instead of "hobby CNC" - because there are people who make money using machines built with open-loop stepper systems and controls like Grbl or Mach 3... and some of these systems are commercially manufactured and marketed at certain kinds of professionals... and as time goes by, features that were once solely in the domain of high end machines migrate downwards, until they are available on the cheapest of control systems.

    I had missed the fact that this thread is in the LinuxCNC forum (I got here via the "Today's Posts" button); so I will now infer that the control we are talking about is, in fact, LinuxCNC; interfaced via parallel ports to CNC4PC C10 cards.

    As stated earlier; I think the original poster is going to need to upgrade his control system to use something with a FPGA in it; such as one of the Mesa boards; in order to add encoders at all. As LinuxCNC is an open-source system; it should be possible to interface a true absolute multi-bit Grey-code encoded set of linear encoders to the system; but I suspect that doing this will involve writing code, both C/C++ for the Linux side, and Verilog/VHDL for the FPGA side. Co-operation of Mesa might be required as well.

    FWIW, these Wikipedia articles may shed some more light on the subject:

    https://en.wikipedia.org/wiki/Linear_encoder
    https://en.wikipedia.org/wiki/Rotary_encoder

    Also, just in case anybody was wondering, Verilog code for a FPGA card to do quadrature decoding might look something like this:
    Code:
    module quadratureDecoder(
    					clock,
    					A,
    					B,
    					increment,
    					count
    				);
    	input clock;
    	input A;
    	input B;
    	input [7:0] increment;
    	output signed [31:0] count;
    
    	reg [2:0] A_delayed;
    	reg [2:0] B_delayed;
    	always @(posedge clock) A_delayed <= {A_delayed[1:0], A};
    	always @(posedge clock) B_delayed <= {B_delayed[1:0], B};
    
    	wire count_enable = A_delayed[1] ^ A_delayed[2] ^ B_delayed[1] ^ B_delayed[2];
    	wire count_direction = A_delayed[1] ^ B_delayed[2];
    
    	reg signed [31:0] count;
    	always @(posedge clock)
    	begin
    		if(count_enable)
    		begin
    			if(count_direction)
    				count <= count + $signed(increment);
    			else
    				count <= count - $signed(increment);
    		end
    	end
    
    endmodule
    That's from something that I'm experimenting with to add closed-loop functionality to Grbl... it hasn't been tested yet on actual hardware (I'm waiting to get all the modules into the project so I can figure out how big of an FPGA development board to order), so don't hook any motors up to it yet! However, I can say that it at least compiles with the Icestorm toolchain for Lattice Ice40 FPGAs...
    Multi-bit Grey-code interfacing would be a bit different; but still have the same general feel to it (in other words... it's still Verilog).

    LinuxCNC already supports absolute encoders and like most CNC systems using multi-turn or linear absolute encoders, homing is not needed unless you have a problem.

    Mesa hardware supports SSI, Fanuc, and BISS absolute encoder data formats. Note that there are many types of multi-turn absolute encoders, The older types used gears
    (Older Okumas use these) many use battery or super capacitor backup (Fanuc, Yaskawa etc), The latest use the Wigand effect so require no backup power!



  6. #18
    Member rick027's Avatar
    Join Date
    Jun 2007
    Location
    usa
    Posts
    27
    Downloads
    1
    Uploads
    0

    Default Re: Absolute encoders

    Jim my budget is about 1200



  7. #19
    Member Jim Dawson's Avatar
    Join Date
    Dec 2013
    Posts
    3719
    Downloads
    0
    Uploads
    0

    Default Re: Absolute encoders

    Quote Originally Posted by rick027 View Post
    Jim my budget is about 1200
    That's a lot of money to spend just to not have to home your machine. And may be a bit light, $1200 will almost buy 3 absolute position encoders. Then there is the other needed hardware to buy. Without pricing it all out, I'm guessing the total cost would be in the $2500 range on the low end. If you want to make the controls a real industrial class control system then you are up into the $5000+ range, not including new motors & drives.

    In my opinion your money would be better spent buying some new motors and drives, closed loop steppers or AC servos. Either would increase the speed and accuracy of your machine......... But you would still have to hit the Home All button

    Jim Dawson
    Sandy, Oregon, USA


  8. #20
    Member rick027's Avatar
    Join Date
    Jun 2007
    Location
    usa
    Posts
    27
    Downloads
    1
    Uploads
    0

    Default Re: Absolute encoders

    Ok Jim, I'm gonna take your advice on this one..thanks for your help



  9. #21
    Member
    Join Date
    Jan 2005
    Location
    USA
    Posts
    10308
    Downloads
    0
    Uploads
    0

    Default Re: Absolute encoders

    Quote Originally Posted by rick027 View Post
    Have to disagree with mactec54 on the absolutes, because I run a weeke 050 and a nester they both have absolute encoders and these machines know where they're positions are at all the time..
    No one said a machine with Absolute Encoders does not know where it is at all times, they do, the question was about machining Homing which can be control forced or just start from where ever your machine stopped it's your choice as long as the Absolute Battery is maintained which most CNC machines still have some are not using Battery's now which is all the more reason to Home your machine nothing is perfect as it should be

    Mactec54


  10. #22
    Member
    Join Date
    Jan 2005
    Location
    USA
    Posts
    10308
    Downloads
    0
    Uploads
    0

    Default Re: Absolute encoders

    Quote Originally Posted by rick027 View Post
    Jim my budget is about 1200
    This is what you want to be looking at DMM | Technology Solutions | AC SERVO DRIVE | AC SERVO MOTOR | ROTARY ENCODER $1200 would be a little light depending on what size motors you need

    Mactec54


  11. #23
    Member rick027's Avatar
    Join Date
    Jun 2007
    Location
    usa
    Posts
    27
    Downloads
    1
    Uploads
    0

    Default Re: Absolute encoders

    Thanks Mactec54



Page 2 of 2 FirstFirst 12

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


About CNCzone.com

    We are the largest and most active discussion forum for manufacturing industry. The site is 100% free to join and use, so join today!

Follow us on


Our Brands

Absolute encoders

Absolute encoders

Absolute encoders