Hello Guest it is April 28, 2024, 11:20:16 PM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - HimyKabibble

541
Ian,

Here's how I look at it - How the machine behaves should be absolutely, 100% predictable.  Right now, it's not.  I had a conversation with Brian this afternooin, and encouraged him to think about what the "philosophy" of Mach3 should be.  Obviously, in the early days, there were all kinds of things added, kinda willy-nilly, sometimes without a lot of thought about the side-effects and hazards that might be created.  Those are, in large part, the things that make Mach3 seem rather unpredictable and unreliable at times.  As you say, sometimes features were added because one user asked for it, but sometimes a new feature ends up breaking something someone else is doing.  I believe the fundamental problem is there are few clearly defined rules as to how Mach3 works, and we've all been forced to find our own, often very ugly, work-arounds.  Personally, I'd like to see consistent, predictable behavior ALL the time.  Right now, it just ain't so.

Here's something I learned today that surprises me - You can start a G-code program, and while it's running, you can launch a VB script that ALSO executes G-codes, and you have NO WAY to know how the machine is going to react.  I had assumed that when you run a program, that running other G-codes would be locked out, but it's not.  So, for example, if I accidentally bump my touchscreen, and activate the button that sends all three axes to 0, it WILL happen at some point in the execution of the running program!  To me, that is incredibly dangerous, and I have a very hard time coming up with any valid reason for someone to NEED to execute G-code commands WHILE a program is already running.

Here's another example.  If I hit my Z probe button, it executes an M-macro to do the probing.  If I accidentally double-press that button (not hard to do with a touch-screen, BTW), then I have TWO instances of the M-script running in parallel, but they will NOT run nicely - i.e. - one instance completes, then the other one runs.  That, at least I could live with.  Instead, they run somewhat randomly - one executes a bit, then the other, then the first one again.  And each time it happens, the result will be different. 

What legitimate use is there for these unpredictable behaviors?  These are the kinds of things that make is all tear our hair out, when trying to get seemingly simple functions to work reliably.  If the system were more regular, predictable, and consistent, we'd have FAR fewer problems, and FAR better reliability.  And we wouldn't have some people for who everything always works fine, and others, like me, that run face-first into a problem that gets us side-tracked for hours every other time we turn our machines on.  One of the great strengths of Mach3 is supposed to be that it is so easily configurable and adaptable to the users needs.  But it is precisely in that configurability that all the monsters lurk.  Even simple configuration changes can have completely unknowable (to us) side-effects that result in scrapped work, broken tools, or worse.

I now use my machine for paying work, and I NEED consistency and reliability, and I don't have it.  Right now, I'm not even close.  Having a well-defined philosophy for how Mach3 operates, and how it is expected to be used would help a LOT.  Right now, it's just the wild west out there, and every time I try something new, I end up with a new problem to debug.

Regards,
Ray L.

542
General Mach Discussion / Re: strange intermittent problem
« on: August 24, 2011, 09:38:53 AM »
Could well be mid-band resonance....

543
And, honestly, were these things not getting fixed, I would already be using a KFlop, because I've had a hard time getting my real work done with all the problems I've been having the last month or two.

Regards,
Ray L.

544
Hi Terry - picking on you? - absolutely not. FWIW I know you're a machinist with more experience than I can dream of.

Group hug over, you raise an interesting point about macro programming in Mach. Maybe if I understand you correctly, then it SHOULD be much simpler and more proscriptive.

I remember many years ago having a discussion with a fellow programmer who didn't like C. He argued that it was just too easy to screw a machine up and that C++ and Ada and their ilk helped prevent that. I argued that C allowed you to get into the very guts of a system but with freedom came responsibility. We never did agree.

So you know what? maybe you're right. Mach is not a programming environment - it's a machine controler and maybe macro capability and flexilbility should reflect that.

Ray - Please ignore my previous post.

Ian

Ian,

I AM a professional programmer, and when I struggle trying to get simple functions behaving correctly, and logically, something is wrong.  If this were a software developers IDE, I'd be more inclined to agree with you that the programmer should handle it, but the vast majority of people working with Mach3 at the macro level are NOT programmers, and could not possibly be expected to isolate, much less work around, the issues I've been finding.  It's often taken Brian and I working together for hours to root-cause each of these issues, and in most cases there is some shaky code at the heart of it.

As for multiple concurrent scripts not being a problem - let me tell you how I discovered that one - I have a Z probing script I use for setting Z offsets after a tool change.  The script does a fast probe, a back-off, a slow probe, and a final back off.  If I double-click the button (which can easily happen by accident), I get two instances of the script running concurrently, wit NO coordination between the two, so it will do something different each time it happens.  In one case, one script may run to completion, then the other will run.  In the next case, I may see two fast probes, followed by a back-off and a slow probe, followed by another back-off, followed by another back-off, followed by another slow probe, and a final back-off.  I should not have to write my script in such a way that it can deal with all that, I don't care what the target audience is, that is not a well-behaved system, and I see no real advantage to working that way.  Better the default is NO concurrent execution, and in the truly rare and pathological case where the user feels he NEEDs to have it (and I would argue he's starting with a bad concept if he feels that way), let him write the code to do it.  That way one person suffers, and the vast majority can have, a simple, logical, well-behaved system that does what they need with minimum fuss, and no expertise in multi-threaded programming and concurrency required.

Regards,
Ray L.

545
HIYA RAY one thing to please remember to fix. In a Mcode that contains CB and code"Gcode motion code" MIX  It is imperative that the macro stays in SIMPLE order of execution WITHOUT having to resort to extra wait states,symaphores and such. That means FIXING While Ismoving(), Isloading, etc so they WORK 100% without fail. I suggested a new function a while back.
SusWhileDo() that could be a big help.

Multithreading is Great but NOT if you cannot control it. With motion codes it MUST behave as it is a huge SAFTEY concern.

Good Luck, (;-)TP

Terry,

First, what the heck is "CB"?? 

I agree with what you said, and that is part of the point.  What we're finding is there are all kinds of behavioral "quirks", and inter-dependencies that often defy logic.  Even Brian is having a hard time wrapping his head around things.  There are an awful lot of "features" that appear to have been added over the years in very "unclean" ways, leaving them with side-effects, or non-intiotive modal dependencies.  That's the kind of thing we're trying to wring out.  Behavior should be simple, logical, and, most of all, consistent.  Often, that's not the case.  When I see state LEDs that show the wrong state, or find something that works in MDI, but not in a script, or vice-versa, there's something wrong somewhere.

Regards,
Ray L.

546
Brian and I are continuing to beat on this, and finding increasingly smaller, and more obtuse,but nonetheless significant, issues.  There is still an apparent problem with VB scripts hanging around, and causing problems.  Brian is working on "instrumenting" this, to track down the root cause.  We've tracked down some unexpected side-effects of some functions (like the fact that sending Mach3 a Continuous Jog Stop (OEM buttons 334-339) will cause G0, G1, G2, G3, G31 to misbehave.  If you have a VB button, it is quite easy to get two instances of the script to run simultaneously (not good...), with often odd, and unpredictable, results.  I believe these things, in aggregate, go a long way towards explaining the capricious and unpredictable nature of screenset and VB programming in Mach3, so I think we'll all be much better off once they're cleaned up.

My machine did something truly bizarre a few days ago - It got itself into a mode where, when doing a probe in Z, instead of doing the correct sequence (fast probe down, retract, slow probe down, retract) it would do a fast probe UP a short distance, then RAPID UP into the limits!  Even a re-start did not fix it!  A few hours later, it started working right, all by itself.

Regards,
Ray L.

547
General Mach Discussion / Re: KFlop and Mach 3
« on: August 20, 2011, 04:35:19 PM »
Chris,

If you do get a KFlop, please report back and let us know how it works.  I'm seriously considering getting one myself...

Regards,
Ray L.

548
General Mach Discussion / Re: KFlop and Mach 3
« on: August 19, 2011, 03:34:27 PM »
No, that is absolutely not true.  IF you want to customize the KFlop application, or write your own, you can do so in C++.  To just use it, you don't need anything but their machine controller application, or their Mach3 plug-in.  Being ABLE to customize the application is one of the real strengths of the KFlop.

Regards,
Ray L.

549
Ah, yes!  The mysterious "Preparatory Move"....  I get those occasionally, seemingly randomly.  As often as not, the move that it proposes to make is completely nonsensical, and sometimes quite destructive.

Regards,
Ray L.

550
Good news!  Brian has fixed the problem that was causing erroneous moves on my A axis, so we're down to just a single problem now - macros sometimes going rogue, and causing jerky jogs, ignored jogs, ignored MDI commands, and a host of other anomolies.  Brian is still working on these issues, and I have no doubt he'll have a fix shortly.

We're close!  And I think these issues will help explain a whole host of irreproducible problems I, and others, have experienced over the years, and should especially go a long ways toward making extensive use of macros, as some of us do, much more robust .

Regards,
Ray L.