Hello Guest it is October 21, 2019, 09:28:17 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 - smurph

Build 1767:


The plugin file extensions have been changed from "dll" to "mp4w".
The keyboard plugin has been reworked to only affect the Mach GUI.  If Mach loses focus, the keyboard driven action/input will stop.  


Mach4 General Discussion / Re: Mach 4 Bug Reports
« on: May 13, 2014, 02:06:43 AM »
We are working on a shortest path provision for rotary.  Eventually tied into the Fanuc RINC parameter.  Looks like that code is switched on.  I'll turn it off in the next update.


Mach4 General Discussion / Re: MACH4 - Modbus
« on: May 12, 2014, 08:17:37 PM »
Here is a screen shot of where to put the register number.  It is the highlighted text field.  If you need to read multiple consecutive registers, then use a function that reads multiple regs.  Input the starting register in the highlighted field and then enter the number of regs to read in the count field.  The count includes the register defined in the register field.

If you don't need consecutive registers, then do separate single register functions.


Mach4 General Discussion / Re: Mach 4 Feature Request
« on: May 12, 2014, 03:39:23 PM »
I always set up the tools in the order that I use them.  My machine has a 16 pod Geneva.  So the most frequently used tools are entered from 1 to 16.  Then, my manual change tools are numbered 17 and up.  In my tool change script, if any tool is greater than 16, it goes into manual mode.  Is that not sufficient?


Mach4 General Discussion / Re: MACH4 - Modbus
« on: May 12, 2014, 12:40:40 PM »
1)  What config?  Modbus or Mach?
2)  Use the PLC script and scr.* API.
3)  I'm not getting this one.  Can you explain what you are wanting to do?
4)  Can you provide and example?  With say the Mod_RSSim modbus simulator?  I can set up connections to the simulator, not run the simulator (like the PLC is off) and it works fine.  
5)  I have never seen this!  I will try and find it.

BTW, some of the bug stuff needs to be posted in the bugs thread.  That way we can track it.


Thanks for the G9 Terry!  As for G81 and the others, I don't know.  I'll ask Brian.


That LARGE number is what we use for the NIL value.  The var needs to just show NIL instead of that value.  I'll add that in.

There is a pin button to make it always on top. 


Build 1762:


Fix G81 error.
Added G code Vars to the mcRegFile plugin.  You can view the G code variables in the Diagnostic Window.
G code variables are saved when Mach 4 is shutdown.  Except local vars #1-#34 and global #100-#199.  All the rest should be sticky.
File->New for new file creation.  (also "Edit G Code" button will edit a new file if there is no file loaded.)
Operator->Jog Trace toggle so that the user can control if Jogs show a trace in the tool path.
Modbus bit packing mod re-inserted into the mcModbus plugin.  (it was there and then it wasn't.  Not it is back!)
Modbus RS485 check box now does something and it is sticky.
Every GUI control object now has an "Enabled States" property.  It allows for the object to easily be enabled/disabled via the machine state.
The clipboard is not destroyed in gcEdit and mcLuaEditor upon exit any more.

If you have modified your screen sets or profiles, make a backup before installing!


Mach4 General Discussion / Re: Image Buttons and images on screen
« on: May 09, 2014, 04:01:05 PM »
In Mach 4, it is better not to think of buttons that do things.  To implement something that a button AND a key press does, it is better to define the action in the screen script and have both the button and key press call that script function.  That way, you are not duplicating code and when you make changes, you make them in one place.

So in the PLC script:

function mySuperFunc
   -- A script function that does what I want.

Then, in the button Left Up scritp:


Then, using the keyboard plugin, you map a key to an named input.  At this point, you have two options:

1.  Look at that input in the PLC script directly using mcIoGetHandle() and mcIoGetState() directly.  However, it is hard to catch a momentary push this way.

2.  Map the I/O to and input signal and catch the state change in the screen signals script.

I prefer method 2.

So map the keypord input to say Mach Input signal Input#1.  Then in the screen signal script do:

local inst = mc.mcGetInstance();

if (sig == mc.ISIG_INPUT1) then
    if (state == 1) then


Mach4 General Discussion / Re: MACH4 - Modbus
« on: May 09, 2014, 03:44:04 PM »
Wow...  I have Win7-64 and I have no issue.  It must be something on your machine.  Modbus is not doing anything special with TCP.  It is just a connection like any TCP app would make.  Good luck figuring that one out!

For a bit more explanation:

A "connection" in the plugin is a connection to a device.  So you would have a connection to each PLC or VFD.  Each connection can use TCP or serial but not both.

Then, for each connection, you can have up to 100 functions defined.  The functions require a starting register.  The functions that read/rite multiple register all for a count to be added as well.  When these functions are created, they create Mach registers or I/O, depending on the type of the modbus function.  Theses are modbus resources.  You must name these.  The names will show in the Mach input and output signals mapping for I/O or, for registers, be available for the script environment.

The RS485 check box currently does nothing in the plugin that you have.  I have tied it in for the next update.