Hello Guest it is April 28, 2024, 01:30:34 AM

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 - bob_at_pmdx

Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 »
31
Mach4 General Discussion / Re: How to show Spindle RPM in MACH4
« on: July 25, 2016, 04:51:57 PM »
In Mach4, the plug-in is responsible for measuring the spindle speed and reporting that to the Mach4 core.  How this is done (i.e. using a 1 pulse per rev sensor, an encoder or some other means) must be configured in the plug-in.  Though I guess if you have a VFD and a MODBUS interface it may be possible to map a MODBUS register from that device to the associated Mach4 register.  That is beyond my pay grade.

Once the plug-in reports the actual RPM to Mach4, it can be displayed in a DRO by assigning the "DRO Code" for that DRO to the "Spindle True RPM".  In the wx4 screen set this is already done in the field in the upper left of the "Spindle" section in the lower left corner of the screen.  If you want to display the *commanded* RPM, set the "DRO Code" to "Spindle RPM".

I am not familiar enough with the ESS plug-in to tell you how to enable spindle speed measurement.

Bob

32
I suggest you contact Vital Systems to see what would cause this message (again, presuming it is coming from the plug-in and/or device).

Bob

33
"Ref All Home" is *not* meant to zero the axes when you jog to your work piece.  That is what the individual "Zero X", "Zero Y" and "Zero Z" buttons are for.  You should only do the "Ref All Home" one time after starting the machine and Mach4, and that should be done with the axes jogged near the limits of travel, and at the position on which you base the soft limit settings.  This sets the "Machine Coordinates".

Then, jog to what you want to be the zero reference point of your work piece (i.e. where ever the GCode file considers (0,0,0)), then click on "Zero X", "Zero Y" and "Zero Z".  This set what I call the "user" coordinates, which are used for the GCode file movement.  This will NOT change the soft limits, as they *always* are in "machine" units.  It may *look* like it changes the soft limits.

For example: You jog near the lower left corner of your usable travel and click "Ref All Axes (Home)".  The DROs now how all zeros (presuming that your "Home Offset" is zero for each axis).  At this point, the machine units and user units are the same.

Now presume that your X axis soft limits are 0 to 10.  Mach4 won't let you jog beyond 0 or +10 in either machine or user units (because they are the same, so far).

Now, jog the X axis to 1.000 and click on "Zero X".  You are now are 1.000 in machine units and 0.000 in user units.  The soft limits are still 0.0 to +10.0 in MACHINE units, but in user units they are -1.0 to +9.0.  You haven't actually changed the soft limits.  You've just shifted the user units.

OK, now on to your real question: "how can I relocate the shape within the given coordinate"?  Does the Mach4 toolpath display show your shape starting at (0,0)?  Or is it offset from that?  If it is offset (i.e. not starting at 0,0) then you need to figure out where the GCode file thinks zero is relative to the shape.  Or you can use probing to determine work offsets.  This is beyond my knowledge.  I suggest you start another thread (i.e. new subject, something like "how do I set work offsets") and hopefully someone else will respond.

Bob

34
What motion device/plug-in are you using?  That error is most likely coming from the motion plug-in.  And what are you doing when the error appears?  Running GCode? MDI code? Sitting idle?  Is this repeatable, or does it happen semi randomly?

FYI - even if you un-check motor0 in the "Motors" tab, Mach4 still sends motion data to the plug-in.  It sends motion data for all motors that the plug-in supports.  The motion data *should* be all "no motion" (i.e. 0 steps) for motors that are not mapped to an axis.

Also note that, at least as of build 2914, Mach4 appears to ignore the "checked" or "unchecked" state of the box next to the motor names in the "Motor" config tab.  Even if a motor is un-checked (which seems to imply "not enabled"), you can still map it to an axis, and the Mach4 motion planner will generate motion for that motor.

Bob

35
First: I was wrong about soft limits referencing "user" units.  Soft limits always apply to "machine" coordinates.  GCode motions *does* apply to "user" units.  Sorry for the confusion.

The "Reference All Axes (Home)" button sets a known position relative to the absolute position of the axes (usually 0,0,0 but not always).

A typical startup procedure for machines without home switches looks like this:
- Power on the machine and start Mach4

- Manually jog the machine to a known position (usually this is at or near the limits of travel, though some people use the center of travel), then click on "Reference All Axes (Home)".  This sets the "machine coordinates" to whatever values you have in the "Home Offset" column of the "Homing/SoftLimits" configuration tab.
Note that your soft limits should be defined based on THIS position.  Also, you must have the "Home in Place" feature checked in the "Homing/SoftLimits" configuration tab in order for this to work.

- Put your work piece on the machine

- Position your machine to the reference point for the work piece.  This is usually the position that the GCode will use as zero.

- Click on the "Zero X", "Zero Y" and "Zero Z" buttons to set "user" coordinates for use with your GCode.

Now you are ready to run your GCode file, and the soft limits will prevent any Mach4-generated motion (GCode, jogging, etc.) from going beyond the allowable MACHINE coordinates.

Bob

36
If you don't have home switches, you need to enable the "home in place" feature in Mach4, as follows:

(1) Go to the "Configure" menu and select "Mach4...".
(2) Click on the "Homing/SoftLimits" tab
(3) For each of your axes, put a green check mark in the "Home In Place" column.
(4) Click on 'OK" to save the settings.

Now, jog each axis of the machine to the place you want to be "home" (i.e. zero).  Once all of the axes are in place, click on the "Reference All Axes (Home)" button on the main Mach4 tab (presuming that you are using the "wx4" screen set).  This will set the current position of each axis as that axis' "zero" position.

If you only want to home one axis at a time, click on the "Machine Diagnostics" tab.  In the top center of that screen you will see "Ref X", "Ref Y", etc. buttons.  Jog the X axis to where you want zero to be then click on the "Ref X" button.  Then jog the Y axis to where you want it's zero to be and click on the "Ref Y" button.  Then do the same for the Z axis.

There is no need to switch in and out of machine coordinates.  Leave machine coordinates turned off so that you are displaying "user" coordinates as this is what any GCode commands and any soft limit settings reference.

Bob

37
Mach4 General Discussion / Re: conditional subroutine jump
« on: July 11, 2016, 09:40:35 PM »
Am I correct that you have something like this:

- Gcode file calls subroutine O0001
- Sub O0001 executes M200 (or M201) which is a Lua script
- The M200 (or M201) Lua script then tried to call mc.mcCntlGCodeExecute()

If so, I *think* the issue is that you cannot execute GCode from within a function that gets called from GCode (i.e. the GCode interpreter is not re-entrant).  Though I may be wrong.

Bob

38
Mach4 General Discussion / Re: Procunier Tapping
« on: July 05, 2016, 10:13:30 AM »
Oops - I gotta stop answering a oh-dark-thirty.  I saw "2491" and read it as "2914", which *is* a current release.  There have also been many enhancements and fixes to Mach4 since then.  When you install the latest Mach4, look at changing screen sets (go to "View" then "Load Screen" and try out the "wx4" screen set instead of the "wxMach" screen set that you have (probably) been using.

Bob

39
Mach4 General Discussion / Re: Procunier Tapping
« on: July 04, 2016, 10:40:29 PM »
I can't explain why it stops (or why it *did* stop before), except possibly that since you appear to be telling Mach4 to use G95 ("feed per revolution"), perhaps Mach4 is waiting for the plug-in to tell Mach4 what the actual spindle speed is (or maybe just a non-zero spindle speed???)?  If you can post your file here as a .tap file instead of an image, I can try running it here and see what I can see.  It would also help to have a copy of your profile (go to "Help", then "support" and then "Create profile package").

BTW - you appear to be running a pretty old version of the PMDX-SmartBOB plug-in.  The spindle configuration changed back in Sept 2015, so you are running a version older than that.  There have been several significant bug fixes and improvements since then.  I *highly* recommend that you update to the latest plug-in version, available here:

http://www.pmdx.com/PMDX-SmartBOB-USB-Plug-In

I also suggest that you log into your account on the PMDX support forums and "subscribe" to the Announcements forum.  This is a low volume forum where we announce new plug-in releases and new hardware releases.  To subscribe, click on "Announcements" forum to view the posts, then click on the "Notify" link in the upper left just above the message list.

Bob

40
Here is an idea - no scripting required.  I haven't tested this, but it *should* work (famous last words) based on what I know about the spindle operation.  You will need to change to using M3 to fire your torch and M5 to turn it off (i.e. map the "Spindle On" output signal to your "torch fire" output instead of the "Coolant On" or "Mist On").

(1) Go to Configure->Mach, and on the "Spindle" tab, in the first row (labeled "0"), set the "MaxRPM" to some non-zero value, say 100.  Set the "Accel Time" to some VERY large number of seconds, way beyond the worse case time you expect the torch to be ready (say 3600, or 1 hour).

(2) In the "Input Signals" tab, scroll down to the bottom of the list and look for "Spindle At Speed".  Map that to the ESS input that corresponds to the "Torch OK" input (ESS port 2 pin 9, according to your first post).

(3) In the "Output Signals" tab, un-map the "Mist On" or "Coolant On" from your torch fire output pin.  Then map "Spindle On" to your torch fire output pin.

(4) Click on "OK" to save all of those changes.

(5) Edit your GCode file and change all of the M7 or M8 commands to "S100 M3".  Also change any M9 commands to M5. 

What this *should* do is when Mach4 executes the "S100 M3" commands it will turn on the spindle to 100 RPM (RPM is irrelevant to your use but crucial for the next step).  Mach4 then waits for either 3600 seconds *OR* the "Spindle At Speed" input to go active, which ever comes first.  When your torch OK signal goes active it tells Mach4 to stop waiting for the spindle accel time and go ahead to the next instruction.  If the torch somehow is never able to start, hopefully 3600 seconds will be enough time for someone to manually halt the program.

If that doesn't work, or it too kludgy for you...

How about coding this in the M6 tool change macro?  Or pick an otherwise unused M code (such as, say, M10 through M45, according to the "Scripting Manual.pdf" page 10 under "scriptable M Codes). Then just insert this M code in you GCode file after the M7 or M8 that turns on the torch.  You will need to map the "torch OK" signal to one of the Mach4 "Input #" inputs, and then read the value of that input in your Lua code and wait for it to go to a "1".

Bob

Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 »