Re: [Emc-users] Homing with index m5i20
John Kasunich wrote: > The scope trace shows that the the home input to the motion controller > is true during the first slope - that means EMC thinks it is already > on the switch, and is trying to get off of it. > > From the HAL file: > > # Connect limit/home switch outputs to motion controller. > newsig Xminlim bit > newsig Xmaxlim bit > newsig Xhome bit > linksp Xminlim <= m5i20.0.in-00-not > linksp Xminlim => axis.0.neg-lim-sw-in > linksp Xmaxlim <= m5i20.0.in-01-not > linksp Xmaxlim => axis.0.pos-lim-sw-in > linksp Xhome <= m5i20.0.in-00 > linksp Xhome => axis.0.home-sw-in > > Note that the limit switch signal is connected to the -not pin. That's > because your switches are active low. But the home signal is connected > to the regular pin, not the -not one. So EMC is confused about the > polarity of your home switch. > > The solution is to connect EMC's home input AND its negative limit input > both to the -not driver pin. > > However, you can't connect two signals (Xminlim and Xhome) to one pin. > You can connect two or more pins to one signal. I'd do it like this: > > # Connect limit/home switch outputs to motion controller. > newsig Xminlim-and-home bit > newsig Xmaxlim bit > linksp Xminlim-and-home <= m5i20.0.in-00-not > linksp Xminlim-and-home => axis.0.neg-lim-sw-in > linksp Xminlim-and-home => axis.0.home-sw-in > linksp Xmaxlim <= m5i20.0.in-01-not > linksp Xmaxlim => axis.0.pos-lim-sw-in > > Since you are homing on the negative end of the axis, SEARCH_VEL must be > negative. If you also make LATCH_VEL negative, it will home on the > first index pulse outside the limit switch, which is probably not what > you want. Make LATCH_VEL positive. Then the homing process will be: > > 1) negative slope at SEARCH_VEL until you hit the switch > 2) positive slope at LATCH_VEL until you get off the switch > 3) continue at the same positive slope until you hit the index > 4) done > > Regards, > > John Kasunich > Thank you very much for your detailed reply. I've applied your suggestions, homing works well and I've learnt some more! Many thanks, Richard - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Homing with index m5i20
Richard Arthur wrote: > ini: > http://www.pastebin.ca/644773 > hal: > http://www.pastebin.ca/644774 > screen shot: > http://imagebin.org/9721 > > Thanks, > > Richard The scope trace shows that the the home input to the motion controller is true during the first slope - that means EMC thinks it is already on the switch, and is trying to get off of it. From the HAL file: # Connect limit/home switch outputs to motion controller. newsig Xminlim bit newsig Xmaxlim bit newsig Xhome bit linksp Xminlim <= m5i20.0.in-00-not linksp Xminlim => axis.0.neg-lim-sw-in linksp Xmaxlim <= m5i20.0.in-01-not linksp Xmaxlim => axis.0.pos-lim-sw-in linksp Xhome <= m5i20.0.in-00 linksp Xhome => axis.0.home-sw-in Note that the limit switch signal is connected to the -not pin. That's because your switches are active low. But the home signal is connected to the regular pin, not the -not one. So EMC is confused about the polarity of your home switch. The solution is to connect EMC's home input AND its negative limit input both to the -not driver pin. However, you can't connect two signals (Xminlim and Xhome) to one pin. You can connect two or more pins to one signal. I'd do it like this: # Connect limit/home switch outputs to motion controller. newsig Xminlim-and-home bit newsig Xmaxlim bit linksp Xminlim-and-home <= m5i20.0.in-00-not linksp Xminlim-and-home => axis.0.neg-lim-sw-in linksp Xminlim-and-home => axis.0.home-sw-in linksp Xmaxlim <= m5i20.0.in-01-not linksp Xmaxlim => axis.0.pos-lim-sw-in Since you are homing on the negative end of the axis, SEARCH_VEL must be negative. If you also make LATCH_VEL negative, it will home on the first index pulse outside the limit switch, which is probably not what you want. Make LATCH_VEL positive. Then the homing process will be: 1) negative slope at SEARCH_VEL until you hit the switch 2) positive slope at LATCH_VEL until you get off the switch 3) continue at the same positive slope until you hit the index 4) done Regards, John Kasunich - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Homing with index m5i20
John Kasunich wrote: > Richard Arthur wrote: > >> John Kasunich wrote: >> >>> Richard Arthur wrote: >>> >>> Issue: The direction of searching for the index seems to be the inverse of the direction of THE_HOME_LATCH VEL when I would have expected it to be the same. What I did: Update from (Ubuntu) 2.1.6 to 2.1.7. Generate new configs in my home folder and modify to suit. However, with the current set up, homing is achieved successfully on the index pulse as can be seen from the screen shot: http://imagebin.org/9711 ini snip: [AXIS_0] TYPE = LINEAR HOME = 0.0 MAX_VELOCITY = 4.0 MAX_ACCELERATION = 20.0 BACKLASH = 0.000 INPUT_SCALE = 2 OUTPUT_SCALE = 1.000 OUTPUT_OFFSET = 0.0 MIN_LIMIT = -32.0 MAX_LIMIT = 20.0 FERROR = 0.01 MIN_FERROR = 0.01 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 0.1 HOME_LATCH_VEL =0.04 HOME_USE_INDEX =TRUE HOME_IGNORE_LIMITS =YES MAX_OUTPUT =10 Thank you. Richard >>> Thanks for the halscope shot - that helps a lot! >>> >>> It looks like you are starting the homing process already on the switch. >>> (Or maybe the home switch is active low and EMC only thinks it is on the >>> switch.) >>> >>> Your search and latch velocities are both positive. But EMC starts the >>> homing process moving in the negative direction - it thinks its on the >>> switch and is trying to back off. At about 3.5 divisions on the scope >>> trace it thinks it is off the switch and starts to move positive at >>> search velocity. It almost almost immediately hits the switch, then >>> backs off at a negative velocity. It begins the final pass at positive >>> latch velocity just after 4 divisions on the scope trace. >>> >>> What physical direction corresponds to the initial negative slopw >>> portion of the scope trace? Which end of the axis is your switch on? >>> Is that initial move toward or away from the switch? >>> >>> If your switch is active low, you can invert the input by connecting >>> to "m5i20.0.in--not" instead of "m5i20.0.in-". >>> >>> Regards, >>> >>> John Kasunich >>> >>> >> I've increased the Home_Latch_Vel to 0.8 to enable me to squeeze in the >> whole cycle with 4 channels. This latch vel causes problems with >> 'bouncing', so it is just to make my point. Screen shot here: >> >> http://imagebin.org/9716 >> >> The servo amps switch off travel at the limit switches (as previously >> discussed) and home/limit is shared. As I see it, slope 1 is the >> Home_Search_Vel, 2 is backing off, 3 is Home_Latch_Vel., 4 searching for >> index. My point is that after final detection of switch, the direction >> is reversed to find the index. As I said at the beginning, this is not >> what I expected - maybe I'm wrong? >> >> I've got no problem with homing. Under 2.1.6 I used the 2nd homing >> sequence diagram successfully (as this screen shot, but after slope 3, >> Home_Offset -0.1) and as this shot shows, I can home on the index now. >> It's just that homing using the index doesn't appear to behave as >> detailed in the homing sequence diagrams of the user handbook. I've not >> answered you questions directly, in the hope that the 4 ch. screen shot >> makes it clear. >> >> Thank you. >> >> > > I was interpreting the picture as: >slope 1 = move negative to get off switch >slope 2 = move positive to find switch (normal search phase) >slope 3 = back off switch before final move >slope 4 = move to switch at latch vel, then continue till index pulse > > Assuming that the home switch input is the same as the neg limit switch > input, that interpretation doesn't make sense. > > Your original post showed an ini file with positive values for search > and latch velocities. If slope 1 is search and slope 3 is latch, that > doesn't make sense either. Those slopes are clearly negative in spite > of the positive values in your ini file. Any bug that severe would have > shown up long ago. > > Fortunately there is a way to see exactly what is going on. > > Can you re-do the test and post a new image? Set the green channel > to 'axis.0.home-sw-in' instead of 'axis.0.neg-limit-sw-in'. They are > probably the same, but its best to be sure. Set the dark blue channel > to 'axis.0.home-state' instead of 'axis.0.homing'. Set the scale for > 'home-state' to 5 per division - home-state is an integer that ranges > from 0 to 20 during the homing process. To understand what the values > of 'home-state' mean, , search for "states for homing" in > http://cvs.linuxcnc.org/cgi-bin/cvsweb.cgi/emc2/src/emc/motion/motion.h?rev=1.71.4.3 > > Looking at home-state will tell us exactly wha
Re: [Emc-users] Homing with index m5i20
Richard Arthur wrote: > John Kasunich wrote: >> Richard Arthur wrote: >> >>> Issue: >>> The direction of searching for the index seems to be the inverse of the >>> direction of THE_HOME_LATCH VEL when I would have expected it to be the >>> same. >>> >>> What I did: >>> Update from (Ubuntu) 2.1.6 to 2.1.7. Generate new configs in my home >>> folder and modify to suit. >>> >>> However, with the current set up, homing is achieved successfully on >>> the index pulse as can be seen from the screen shot: >>> >>> http://imagebin.org/9711 >>> >>> ini snip: >>> >>> [AXIS_0] >>> >>> TYPE = LINEAR >>> HOME = 0.0 >>> MAX_VELOCITY = 4.0 >>> MAX_ACCELERATION = 20.0 >>> BACKLASH = 0.000 >>> INPUT_SCALE = 2 >>> OUTPUT_SCALE = 1.000 >>> OUTPUT_OFFSET = 0.0 >>> MIN_LIMIT = -32.0 >>> MAX_LIMIT = 20.0 >>> FERROR = 0.01 >>> MIN_FERROR = 0.01 >>> HOME_OFFSET = 0.0 >>> HOME_SEARCH_VEL = 0.1 >>> HOME_LATCH_VEL =0.04 >>> HOME_USE_INDEX =TRUE >>> HOME_IGNORE_LIMITS =YES >>> MAX_OUTPUT =10 >>> >>> Thank you. >>> >>> Richard >>> >> Thanks for the halscope shot - that helps a lot! >> >> It looks like you are starting the homing process already on the switch. >> (Or maybe the home switch is active low and EMC only thinks it is on the >> switch.) >> >> Your search and latch velocities are both positive. But EMC starts the >> homing process moving in the negative direction - it thinks its on the >> switch and is trying to back off. At about 3.5 divisions on the scope >> trace it thinks it is off the switch and starts to move positive at >> search velocity. It almost almost immediately hits the switch, then >> backs off at a negative velocity. It begins the final pass at positive >> latch velocity just after 4 divisions on the scope trace. >> >> What physical direction corresponds to the initial negative slopw >> portion of the scope trace? Which end of the axis is your switch on? >> Is that initial move toward or away from the switch? >> >> If your switch is active low, you can invert the input by connecting >> to "m5i20.0.in--not" instead of "m5i20.0.in-". >> >> Regards, >> >> John Kasunich >> > I've increased the Home_Latch_Vel to 0.8 to enable me to squeeze in the > whole cycle with 4 channels. This latch vel causes problems with > 'bouncing', so it is just to make my point. Screen shot here: > > http://imagebin.org/9716 > > The servo amps switch off travel at the limit switches (as previously > discussed) and home/limit is shared. As I see it, slope 1 is the > Home_Search_Vel, 2 is backing off, 3 is Home_Latch_Vel., 4 searching for > index. My point is that after final detection of switch, the direction > is reversed to find the index. As I said at the beginning, this is not > what I expected - maybe I'm wrong? > > I've got no problem with homing. Under 2.1.6 I used the 2nd homing > sequence diagram successfully (as this screen shot, but after slope 3, > Home_Offset -0.1) and as this shot shows, I can home on the index now. > It's just that homing using the index doesn't appear to behave as > detailed in the homing sequence diagrams of the user handbook. I've not > answered you questions directly, in the hope that the 4 ch. screen shot > makes it clear. > > Thank you. > I was interpreting the picture as: slope 1 = move negative to get off switch slope 2 = move positive to find switch (normal search phase) slope 3 = back off switch before final move slope 4 = move to switch at latch vel, then continue till index pulse Assuming that the home switch input is the same as the neg limit switch input, that interpretation doesn't make sense. Your original post showed an ini file with positive values for search and latch velocities. If slope 1 is search and slope 3 is latch, that doesn't make sense either. Those slopes are clearly negative in spite of the positive values in your ini file. Any bug that severe would have shown up long ago. Fortunately there is a way to see exactly what is going on. Can you re-do the test and post a new image? Set the green channel to 'axis.0.home-sw-in' instead of 'axis.0.neg-limit-sw-in'. They are probably the same, but its best to be sure. Set the dark blue channel to 'axis.0.home-state' instead of 'axis.0.homing'. Set the scale for 'home-state' to 5 per division - home-state is an integer that ranges from 0 to 20 during the homing process. To understand what the values of 'home-state' mean, , search for "states for homing" in http://cvs.linuxcnc.org/cgi-bin/cvsweb.cgi/emc2/src/emc/motion/motion.h?rev=1.71.4.3 Looking at home-state will tell us exactly what is going on during each slope. If there is a bug, we'll find it and fix it. Likewise, if there is a misconfiguration somewhere, we'll fix that. Can you post your complete ini and hal files at pastebin.ca when you p
Re: [Emc-users] Homing with index m5i20
John Kasunich wrote: > Richard Arthur wrote: > >> Issue: >> The direction of searching for the index seems to be the inverse of the >> direction of THE_HOME_LATCH VEL when I would have expected it to be the >> same. >> >> What I did: >> Update from (Ubuntu) 2.1.6 to 2.1.7. Generate new configs in my home >> folder and modify to suit. >> >> However, with the current set up, homing is achieved successfully on >> the index pulse as can be seen from the screen shot: >> >> http://imagebin.org/9711 >> >> ini snip: >> >> [AXIS_0] >> >> TYPE = LINEAR >> HOME = 0.0 >> MAX_VELOCITY = 4.0 >> MAX_ACCELERATION = 20.0 >> BACKLASH = 0.000 >> INPUT_SCALE = 2 >> OUTPUT_SCALE = 1.000 >> OUTPUT_OFFSET = 0.0 >> MIN_LIMIT = -32.0 >> MAX_LIMIT = 20.0 >> FERROR = 0.01 >> MIN_FERROR = 0.01 >> HOME_OFFSET = 0.0 >> HOME_SEARCH_VEL = 0.1 >> HOME_LATCH_VEL =0.04 >> HOME_USE_INDEX =TRUE >> HOME_IGNORE_LIMITS =YES >> MAX_OUTPUT =10 >> >> Thank you. >> >> Richard >> > > Thanks for the halscope shot - that helps a lot! > > It looks like you are starting the homing process already on the switch. > (Or maybe the home switch is active low and EMC only thinks it is on the > switch.) > > Your search and latch velocities are both positive. But EMC starts the > homing process moving in the negative direction - it thinks its on the > switch and is trying to back off. At about 3.5 divisions on the scope > trace it thinks it is off the switch and starts to move positive at > search velocity. It almost almost immediately hits the switch, then > backs off at a negative velocity. It begins the final pass at positive > latch velocity just after 4 divisions on the scope trace. > > What physical direction corresponds to the initial negative slopw > portion of the scope trace? Which end of the axis is your switch on? > Is that initial move toward or away from the switch? > > If your switch is active low, you can invert the input by connecting > to "m5i20.0.in--not" instead of "m5i20.0.in-". > > Regards, > > John Kasunich > I've increased the Home_Latch_Vel to 0.8 to enable me to squeeze in the whole cycle with 4 channels. This latch vel causes problems with 'bouncing', so it is just to make my point. Screen shot here: http://imagebin.org/9716 The servo amps switch off travel at the limit switches (as previously discussed) and home/limit is shared. As I see it, slope 1 is the Home_Search_Vel, 2 is backing off, 3 is Home_Latch_Vel., 4 searching for index. My point is that after final detection of switch, the direction is reversed to find the index. As I said at the beginning, this is not what I expected - maybe I'm wrong? I've got no problem with homing. Under 2.1.6 I used the 2nd homing sequence diagram successfully (as this screen shot, but after slope 3, Home_Offset -0.1) and as this shot shows, I can home on the index now. It's just that homing using the index doesn't appear to behave as detailed in the homing sequence diagrams of the user handbook. I've not answered you questions directly, in the hope that the 4 ch. screen shot makes it clear. Thank you. Richard - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Homing with index m5i20
Richard Arthur wrote: > Issue: > The direction of searching for the index seems to be the inverse of the > direction of THE_HOME_LATCH VEL when I would have expected it to be the > same. > > What I did: > Update from (Ubuntu) 2.1.6 to 2.1.7. Generate new configs in my home > folder and modify to suit. > > However, with the current set up, homing is achieved successfully on > the index pulse as can be seen from the screen shot: > > http://imagebin.org/9711 > > ini snip: > > [AXIS_0] > > TYPE = LINEAR > HOME = 0.0 > MAX_VELOCITY = 4.0 > MAX_ACCELERATION = 20.0 > BACKLASH = 0.000 > INPUT_SCALE = 2 > OUTPUT_SCALE = 1.000 > OUTPUT_OFFSET = 0.0 > MIN_LIMIT = -32.0 > MAX_LIMIT = 20.0 > FERROR = 0.01 > MIN_FERROR = 0.01 > HOME_OFFSET = 0.0 > HOME_SEARCH_VEL = 0.1 > HOME_LATCH_VEL =0.04 > HOME_USE_INDEX =TRUE > HOME_IGNORE_LIMITS =YES > MAX_OUTPUT =10 > > Thank you. > > Richard Thanks for the halscope shot - that helps a lot! It looks like you are starting the homing process already on the switch. (Or maybe the home switch is active low and EMC only thinks it is on the switch.) Your search and latch velocities are both positive. But EMC starts the homing process moving in the negative direction - it thinks its on the switch and is trying to back off. At about 3.5 divisions on the scope trace it thinks it is off the switch and starts to move positive at search velocity. It almost almost immediately hits the switch, then backs off at a negative velocity. It begins the final pass at positive latch velocity just after 4 divisions on the scope trace. What physical direction corresponds to the initial negative slopw portion of the scope trace? Which end of the axis is your switch on? Is that initial move toward or away from the switch? If your switch is active low, you can invert the input by connecting to "m5i20.0.in--not" instead of "m5i20.0.in-". Regards, John Kasunich - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users