#emc-devel | Logs for 2009-08-16

[03:10:58] <jmkasunich> cradek: around?
[03:17:52] <kasuga> kasuga is now known as kasuga_afk
[03:23:03] <jmkasunich> guess not
[03:35:14] <cradek> now I am
[03:36:02] <cradek> jmkasunich: in the pdf it says "The VS-626MTII spindle AC motor is an induction motor exclusively designed to drive machine tool spindles"
[03:54:47] <cradek> darn, missed him by this much
[03:55:03] <jmkasunich> back
[03:55:10] <cradek> hi!
[03:55:16] <jmkasunich> hi!
[03:55:23] <cradek> long time no type
[03:55:27] <jmkasunich> yeah
[03:56:12] <jmkasunich> to get full performance out of that motor you'd need a true vector drive (not sensorless vector)
[03:56:20] <jmkasunich> however, you probably don't need full performance
[03:56:59] <cradek> if sensorless is $600 I'm afraid to see what full performance would cost
[03:57:49] <jmkasunich> drive pricing is strange - vector is 99% in the control algorithms, not the HW, so the cost is virtually the same, but the price isn't
[03:58:35] <jmkasunich> I personally don't think much of sensorless vector (I often call it senseless vector)
[03:58:51] <cradek> it says the gs3 can use encoder feedback - but it doesn't say for what
[03:58:53] <jmkasunich> its hard to know what it is actually doing, the name is marketing speak
[03:59:16] <jmkasunich> if the GS3 isn't a full vector drive, they probably just use the feedback to close a velocity loop
[03:59:49] <jmkasunich> anyway, a V/Hz drive should be able to drive that motor reasonably well
[04:00:14] <jmkasunich> before we jump into talking about a new drive - what are the issues with the old one
[04:00:33] <cradek> it randomly gives various faults that don't make sense
[04:00:41] <cradek> for example, 'overspeed' when sitting still
[04:01:00] <cradek> 'overvoltage' when running or sitting still with steady power that's within specs
[04:01:17] <cradek> sometimes the fault relay goes on and off several times
[04:01:40] <jmkasunich> ok - so not just a single thing
[04:01:48] <jmkasunich> it probably wants a new drive then
[04:01:50] <cradek> I replaced some bad looking caps in the power supply yesterday - it worked the whole night after that - tonight it's fuxed again
[04:03:03] <SWPadnos> heh
[04:03:06] <cradek> hm, gs2 is $445/no stock, gs3 is $526/stock
[04:03:12] <SWPadnos> I thought you had typed "fixed" again :)
[04:03:43] <cradek> definitely not fixed -- fuxed
[04:04:49] <jmkasunich> the key requirement for the drive will be the ability to match the V/Hz curve of the motor
[04:05:46] <cradek> is that less of an issue with sensorless vector?
[04:06:10] <cradek> (or is that just a mystery phrase with little real meaning)
[04:06:13] <jmkasunich> since I don't know what "sensorless vector" actually means in this case, hard to tell
[04:06:20] <cradek> yuck
[04:06:33] <jmkasunich> that motor definitely has a non-traditional V/Hz curve
[04:07:05] <cradek> it's VERY responsive (when it's working) with this drive
[04:07:09] <jmkasunich> do they have drive manuals on the AD website?
[04:07:15] <SWPadnos> they should
[04:07:17] <cradek> yes
[04:07:24] <cradek> http://www.automationdirect.com/static/manuals/gs3m/gs3m.html
[04:07:25] <jmkasunich> responsive = fast response to speed changes?
[04:07:34] <cradek> yeah very fast
[04:07:51] <cradek> 1 to 6000 to 1 rpm in about a second
[04:08:06] <jmkasunich> rapid accel doesn't matter much if you have a "feedhold till at speed" function
[04:08:12] <cradek> right
[04:08:15] <cradek> I don't care about it
[04:08:21] <jmkasunich> and rapid decel is limited by DB resistor (if there is one)
[04:08:42] <jmkasunich> good response under cutting load matters more - you don't want it bogging down
[04:09:32] <jmkasunich> hmm, P0.02 motor base frequency seems to have only three possible values, 50/60/400? that sucks
[04:09:34] <SWPadnos> those are pretty friggin expensive drives
[04:09:41] <cradek> gs3 has programmable volts/hertz curve, page 4-24
[04:09:47] <SWPadnos> $2300 and $2475 for the two on eBat
[04:09:49] <SWPadnos> eBay
[04:10:19] <cradek> that's the "oh shit downtime" price
[04:10:33] <jmkasunich> heh
[04:10:50] <jmkasunich> custom V/Hz is promising (that's where I was heading after reading the first few pages)
[04:11:19] <jmkasunich> but it looks messy
[04:12:00] <jmkasunich> normally, P0.00 and P0.02 would set the knee, but you do not want the voltage to be flat above the knee
[04:12:18] <jmkasunich> I'm thinking you want to set P0.00 and P0.02 for max speed/volts
[04:12:27] <jmkasunich> set P2.05 and P2.04 for base speed/volts
[04:12:45] <jmkasunich> and set P2.07 and P2.06 for starting boost
[04:12:52] <jmkasunich> but I haven't read the fine print about those params yet
[04:13:21] <cradek> P0.05 motor auto tune for vector mode?
[04:14:20] <jmkasunich> huh?
[04:14:53] <cradek> there's the other mode too, and it's supposed to magically figure out ... something
[04:14:59] <jmkasunich> screw that
[04:16:10] <jmkasunich> the problem here is that P0.00 and P0.02 aren't freely settable - the way I read the manual, you have a very limited selection of values
[04:16:17] <jmkasunich> and they don't include the values on the motor nameplate
[04:16:19] <CIA-41> EMC: 03jepler 07master * r2ebdfb2aff65 10/src/hal/drivers/serport.comp: Use a proper message level
[04:16:47] <jmkasunich> you need to be able to set voltages like 127 or 170, and frequencies like 52.3 and 273
[04:16:59] <cradek> ugh
[04:18:05] <cradek> so if I would plot the two v/f values on the continuous lines and draw a line through them, that's what I want to be able to tell the drive?
[04:18:39] <jmkasunich> pretty much
[04:18:52] <jmkasunich> look at page 4-24 of the GS3 manual
[04:18:58] <jmkasunich> figure 03: custom
[04:19:14] <cradek> ok, so my line would pass through 60Hz and (when extended) 400Hz but none of those voltages would correspond
[04:19:26] <jmkasunich> the bottom point will be zero or near zero Hz, and some low voltage (<5V probably)
[04:19:35] <jmkasunich> the middle point will be the 1500RPM point from the nameplate
[04:19:52] <jmkasunich> the next point will be the 8000 RPM point from the nameplate
[04:21:05] <cradek> P2.05 etc can be set to arbitrary values
[04:21:15] <cradek> 0.1 to 240V
[04:21:20] <jmkasunich> yeah, but 0.00 and 0.02 can't
[04:21:39] <jmkasunich> if at least one of those two could be arbitrary, you could probably trick it into doing the right thing
[04:22:20] <cradek> in the example they show, P0.00 doesn't seem to matter, as long as it's bigger than the other numbers
[04:22:26] <cradek> on p 4-24
[04:22:42] <jmkasunich> how do you figure that?
[04:23:30] <jmkasunich> oh, in that example, they are only using the first segment of the plot
[04:23:36] <cradek> it's sort of implied. they show two choices there, as if they're equivalent
[04:23:40] <jmkasunich> so they don't care about the 2nd segment
[04:23:51] <cradek> oh
[04:24:24] <jmkasunich> they are talking about a 380V 300Hz motor, they set the P2.04/P2.05 point at 380V/300Hz, and set the P0.02/P0.00 point at <somewhere out of the way>
[04:30:21] <cradek> gs2 has the same custom v/f params
[04:30:44] <cradek> is there another manufacturer I should be checking?
[04:30:59] <cradek> I only looked here because that's what's on my lathe
[04:31:01] <jmkasunich> I don't know who else is cheap
[04:31:54] <jmkasunich> if you needed a 480V drive I could probably dumpster dive you a nice one
[04:32:02] <jmkasunich> 230V drives are much rarer in our dumpster
[04:33:50] <jmkasunich> I know a powerflex 700 would let you set the kind of V/Hz curve you need
[04:33:59] <cradek> did you see my funny store about getting 3 phase power here?
[04:33:59] <cradek> story
[04:34:19] <jmkasunich> no
[04:34:21] <cradek> the electric company says the monthly fee would be $20
[04:34:30] <cradek> installation is $75,000
[04:34:33] <jmkasunich> heh
[04:34:51] <jmkasunich> so it's a very short story
[04:34:52] <kasuga_afk> kasuga_afk is now known as KimK
[04:35:04] <cradek> well that's the short version I guess
[04:35:09] <cradek> straight to the punchline
[04:37:11] <cradek> http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=120381148311
[04:37:24] <cradek> here's one but I it's not 230
[04:38:59] <jmkasunich> probably not - lemme try to decode that catalog number
[04:39:12] <cradek> there's a photo of the plate
[04:39:49] <jmkasunich> the 4th digit is voltage class, D is 480V
[04:40:04] <SWPadnos> 7.5HP?
[04:40:10] <SWPadnos> (the motor)
[04:40:22] <cradek> yes
[04:41:01] <jmkasunich> that drive is only 11A
[04:44:03] <jmkasunich> http://cgi.ebay.com/Allen-Bradley-20B-B015A0AYYBND0-PowerFlex-Drive-NNB_W0QQitemZ7569905290QQcmdZViewItemQQptZBI_Control_Systems_PLCs?hash=item1c333968a&_trksid=p3286.m20.l1116
[04:44:09] <jmkasunich> 15A 240V
[04:44:41] <cradek> ha, nice photo
[04:44:42] <jmkasunich> you really want 25A
[04:45:21] <SWPadnos> would a PowerFlex 40 do it?
[04:45:55] <SWPadnos> like this one: http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=130324023771
[04:46:23] <jmkasunich> gotta dig up a PF40 manual, stand by
[04:46:24] <cradek> looks right at first glance
[04:46:32] <cradek> dang, are you at work?
[04:46:41] <SWPadnos> remote login ;)
[04:46:44] <jmkasunich> no, using rockwell website
[04:46:50] <cradek> oh, the newfangled internet thing
[04:47:04] <SWPadnos> I hear you can search for things with it
[04:47:22] <cradek> ouch, still $650, same or a little more than gs3
[04:47:39] <jmkasunich> you didn't expect anything with AB on it to be cheap did you?
[04:47:45] <SWPadnos> probably a better drive, all else being equal
[04:47:52] <SWPadnos> unless it's all name recognition these dayts
[04:49:09] <jmkasunich> http://literature.rockwellautomation.com/idc/groups/literature/documents/um/22b-um001_-en-e.pdf
[04:51:37] <cradek> aha, the part number key
[04:52:12] <jmkasunich> page 3-27 shows the V/Hz curve parameters
[04:52:34] <jmkasunich> I
[04:52:46] <jmkasunich> I'm pretty sure all of them can be set to arbitrary values
[04:54:37] <jmkasunich> yeah, frequencies can be set in 1 Hz (or better) increments, voltages in 1V
[04:56:03] <jmkasunich> that price is more than the GS3, but the drive is more capable of running your motor
[04:56:15] <jmkasunich> it's still in the same neighborhood
[04:56:28] <cradek> but ebay vs new-guaranteed too
[04:57:01] <jmkasunich> true - NIB, but that isn't the same as new with warrantee
[04:57:23] <cradek> wonder how old it is, and if it's old, whether old caps might be a problem
[04:57:43] <jmkasunich> its not terribly old - PF40 is a current generation drive
[04:57:46] <cradek> oh I think the box says 2005, 6, or 8
[04:58:06] <jmkasunich> 2008 I think
[04:58:35] <cradek> I think it says 2006 - the 6/8 looks asymmetric
[04:58:46] <jmkasunich> could be
[04:58:52] <cradek> but still, that's plenty new enough
[04:59:21] <jmkasunich> yeah, these things have a design lifetime a lot longer than say computer stuff
[05:00:03] <jmkasunich> what is your timeframe? you anxious to get it running?
[05:00:43] <cradek> at least a few weeks or more until I'll get really antsy
[05:01:13] <cradek> it 'sometimes' runs which is enough for me to get spindle orient, and continue working on other stuff
[05:02:01] <cradek> cleaning and painting is in progress too - can't move it until that's done
[09:29:52] <alex_joni> hi micges
[09:31:29] <alex_joni> micges: http://imagebin.ca/view/uBcDPgls.html
[09:35:00] <micges> cool what is it?
[09:35:51] <micges> hi alex_joni
[09:36:08] <alex_joni> some generic serial robot kinematics I've been trying to get to work
[09:36:52] <alex_joni> you should be able to model any serial robot wit hup to 8 joints
[09:36:59] <alex_joni> rotary and prismatic (linear)
[09:37:33] <micges> what mean serial?
[09:37:46] <alex_joni> one joint mounted on the previous
[09:38:13] <micges> ok
[09:38:28] <alex_joni> a regular CNC machine is a serial manipulator with 3 linear joints
[09:38:32] <micges> I'm begginer in robots
[09:38:45] <alex_joni> http://en.wikipedia.org/wiki/Serial_manipulator
[09:38:53] <alex_joni> there are basicly 2 different concepts
[09:38:59] <alex_joni> serial kinematics, and parallel kinematics
[09:39:12] <alex_joni> parallel are things like hexapods (stewart platforms)
[09:39:14] <micges> first one is harder I think :)
[09:39:23] <alex_joni> basicly things where you can't move only one joint
[09:40:32] <micges> we planning begin to hang up emc to welding robot in a 6 month
[09:40:37] <alex_joni> micges: http://en.wikipedia.org/wiki/Parallel_manipulator
[09:40:40] <micges> 3 joints serial
[09:41:31] <micges> this robot you show me is to your job ?
[09:41:52] <alex_joni> yes, we use this kind of robots
[09:41:55] <alex_joni> but not with emc2
[09:42:20] <micges> I see, so you wrote kins for emc2
[09:57:09] <CIA-41> EMC: 03micges 07joints_axes3 * r12ad9a506b4f 10/src/emc/usr_intf/axis/scripts/axis.py: Fix joints/axes home and limit icons in trivkins and nontrivkins in Axis preview
[11:58:04] <alex_joni> does sim/axis work for you guys on dapper?
[11:58:51] <alex_joni> * alex_joni gets an error:
[11:59:08] <alex_joni> TclError: Togl: Unknown option: cget
[11:59:13] <alex_joni> Try: configure or render
[11:59:19] <alex_joni> or one of the user-defined commands:
[12:03:48] <jthornton> 2.3.3 works here on dapper
[12:04:18] <alex_joni> * alex_joni is using pre-2.4
[12:04:43] <alex_joni> manual toolchange comes up, then the AXIS window
[12:04:52] <alex_joni> but there's no loaded file in the AXIS window
[12:05:03] <alex_joni> and although perspective is used, the view is from Z down
[12:06:17] <jthornton> works here but I have not updated in a week or threee
[12:06:19] <alex_joni> * alex_joni tries a fresh build
[12:06:36] <alex_joni> I did update earlier.. might have not built it yet :D
[12:10:48] <jthornton> ./go
[12:11:05] <jthornton> LOL wrong window
[12:11:33] <alex_joni> ./done
[12:14:44] <alex_joni> odd.. sim/axis.ini comes up with no file loaded
[12:14:52] <alex_joni> sim/axis_mm.ini and 9axis both work ok
[12:15:39] <alex_joni> aha.. found the culprit ;)
[12:19:51] <CIA-41> EMC: 03alex_joni 07master * rc72e120de45d 10/src/emc/kinematics/ (genserkins.c genserkins.h): genserkins - needs work
[12:19:53] <CIA-41> EMC: 03alex_joni 07master * r9e276a076995 10/src/libnml/posemath/ (gomath.c gomath.h gotypes.h): more work
[12:19:58] <CIA-41> EMC: 03alex_joni 07master * r193928575836 10/src/emc/kinematics/genserkins.c: ran indent
[12:20:02] <CIA-41> EMC: 03alex_joni 07master * r24f377562162 10/lib/python/vismach.py: for some reason it works better to have only GL_COMPILE, then a subsequent execute for big loaded OBJs
[12:20:15] <CIA-41> EMC: 03alex_joni 07master * r09488840f3c7 10/src/emc/kinematics/genserkins.h: update copyright information, fix default values for PUMA
[12:20:21] <CIA-41> EMC: 03alex_joni 07master * ref2a3671f79f 10/src/emc/kinematics/genserkins.c: remove unused code
[12:20:27] <CIA-41> EMC: 03alex_joni 07master * recd7802af0b7 10/src/ (3 files in 3 dirs): add genserkins and gomath to build system
[12:20:39] <CIA-41> EMC: 03alex_joni 07master * r96d4f47a6f70 10/src/emc/kinematics/genserkins.c: fix converging, some comments, clear out debug messages
[12:20:49] <CIA-41> EMC: 03alex_joni 07master * rb0e344c2607e 10/src/emc/motion/control.c: always copy joint position to 'positions', that way iterative kinematics have the last joint position as the starting point, and converge faster
[12:21:03] <CIA-41> EMC: 03alex_joni 07master * r0132854cb15b 10/src/libnml/posemath/gomath.c: update license info
[12:21:10] <CIA-41> EMC: 03alex_joni 07master * rd717b44d681e 10/src/libnml/posemath/ (gomath.c gomath.h): get rid of cvs log leftovers
[12:21:22] <CIA-41> EMC: 03alex_joni 07master * r846da7057418 10/src/libnml/posemath/gomath.c: take out cbrt function, not used, and not GPL compliant
[12:21:30] <CIA-41> EMC: 03alex_joni 07master * r93f20c909b88 10/src/libnml/posemath/ (gomath.c gomath.h gotypes.h): actually meant LGPL, to go along with the rest of libnml
[12:21:40] <CIA-41> EMC: 03alex_joni 07master * rd1ac66b5c453 10/src/libnml/posemath/gomath.h: update license info
[12:21:53] <CIA-41> EMC: 03alex_joni 07master * rf4ac5e43f181 10/configs/sim/axis.ini: this line was accidently pushed in 570792c9
[12:22:03] <CIA-41> EMC: 03alex_joni 07master * r584670ef13d1 10/src/emc/kinematics/ (genserkins.c genserkins.h): remove NIST disclaimer, add TODO
[13:17:41] <alex_joni> meh.. buildbot failures :(
[13:18:25] <SWPadnos> your fault! :)
[13:18:42] <alex_joni> yup
[13:18:50] <alex_joni> although it worked fine on this dapper ://
[13:32:49] <CIA-41> EMC: 03alex_joni 07master * ree73bf9f20ce 10/src/ (emc/kinematics/genserkins.c libnml/posemath/gomath.c): actually using the plane's normal for the cart_plane_proj
[13:32:50] <CIA-41> EMC: 03alex_joni 07master * r849a4a483053 10/src/libnml/posemath/gomath.h: use rtapi_math.h, we certainly have that defined on all platforms
[13:33:50] <alex_joni> * alex_joni waits for buildbot
[13:35:32] <alex_joni> oh, the error were on RT builds .. should try that too ;)
[13:47:08] <jepler> alex_joni: I don't understand the "cget" error, but I know it indicates you didn't "make" after you pulled.
[13:52:44] <alex_joni> jepler: after I made, it was ok
[13:53:02] <alex_joni> (except the forgotten preview file in sim/axis.ini .. which was unrelated, but threw me off)
[13:53:09] <alex_joni> I'll commit a fix for the RT build soon
[13:53:26] <alex_joni> waiting for it to pass here first
[13:57:26] <CIA-41> EMC: 03alex_joni 07master * r2be72c186a89 10/src/libnml/posemath/ (gomath.c gomath.h gotypes.h): get rid of silly go_result defines, have to remove all of gotypes.h eventually
[14:03:55] <CIA-41> EMC: 03alex_joni 07master * r48340d95243e 10/src/rtapi/ (rtapi_math.h rtapi_math_i386.h): implement asin()
[17:42:23] <kasuga5> kasuga5 is now known as KimK
[18:12:25] <micges> alex_joni: I have idea about joints constraints
[18:13:02] <micges> last idea was to simulate each move and scale velocity according to limits
[18:14:09] <micges> but maybe kins could have function to get proper information?
[18:33:01] <micges> bbl
[18:56:06] <alex_joni> well.. there are functions called jacobians for velocities
[18:56:16] <alex_joni> some of the kins have them defined
[18:56:22] <alex_joni> (forward and inverseJacobian)
[18:57:36] <jepler> and others may have had them removed; check the history (they're not used in emc presently)
[19:00:27] <micges> hi jepler
[19:01:37] <micges> jepler: I have question about two or more cones in axis preview
[19:02:04] <micges> what is the reason that cone position is get from emcmodule?
[19:03:02] <micges> pos = live_plotter.logger.last(vars.show_live_plot.get())
[19:03:17] <SWPadnos> micges, backplot is all from actual feedback from EMC
[19:04:05] <micges> backplot yes
[19:04:48] <micges> cone also
[19:05:13] <SWPadnos> well, that's why - the cone is only shown as a backplot element as the program is run
[19:06:37] <micges> yes but becouse all backplot position is XYZABC only, cone position is also XYZABC only
[19:07:36] <SWPadnos> I probably don't understand the reason for your question
[19:10:15] <micges> I have XYV machine with two heads, I know how to make Axis preview two or more cones that show position XY and second XV but I must know design ideas of that part of Axis preview to make it fully compatible
[20:31:41] <alex_joni> micges: still, there are some where there are no jacobians yet
[20:32:06] <alex_joni> another thing I was thinking is that there are singularities
[20:32:13] <alex_joni> places where you don't want to go
[20:32:35] <alex_joni> and it would be best to get a desired position, run it through kins and check if the joint positions are ok
[20:32:45] <alex_joni> if not, then you shouldn't go there, or bad things happen
[20:33:02] <alex_joni> (for example you reach the end of the workspace)
[20:38:23] <micges> alex_joni: yes I read about this
[20:39:32] <jepler> micges: there's stuff in emcmodule.cc for logging the backplot. It's code that runs in a separate pthread. It used to be done in Python, but moving it into C and into its own thread means that the backplot sample rate does not decrease as redraw time increases.
[20:55:39] <alex_joni> good night all
[20:56:49] <skunkworks_> night alex
[21:00:31] <jepler> 'night alex
[21:15:04] <micges> jepler: I know that
[21:16:24] <micges> I mean why cone pos = live_plotter.logger.last(vars.show_live_plot.get()), not let see pos = s.actual_position
[21:17:03] <micges> good night all
[23:28:57] <jepler> micges: so that the cone location and the end of the backplot are the same. otherwise, the cone and the backplot could get "detached" by some (probably small) amount