Plugin config

STEP 1: Pins Config

 

STEP 2: Input Signal

 

 

 

STEP 3: Control Configuration / MPGs

 

STEP 4:

You can download, install, and use this screen:

https://www.cnc4pc.com/pub/media/productattachments/files/wxLathe_MPG16.zip

Or you can edit the screen manually by adding the Lua code as explained below.

 

 

STEP 5: Copy the following code at the end of the screen script

  --------------------------------------

-- CNC4PC Pendant MPG16 --

--------------------------------------

-- Flood --

--------------------------------------

function Flood()

 

local IOName = mc.OSIG_COOLANTON; --Save the name of the Signal (as stored inside of Mach4)

local sigh = mc.mcSignalGetHandle(inst, IOName);

local sigState = mc.mcSignalGetState(sigh);

 

if (sigState == 1) then

                 mc.mcSignalSetState(sigh, 0); 

      else

                 mc.mcSignalSetState(sigh, 1);

     end

end

--------------------------------------

-- MPG --

--------------------------------------

mc.mcMpgSetAxis(inst, 1, 2);

mc.mcMpgSetAxis(inst, 0, 0);

 

mc.mcMpgSetAxis(inst, 0, 0);

[mc.ISIG_INPUT10] = function (state)

CNC4PCPendantMPG16()

end,

[mc.ISIG_INPUT11] = function (state)
CNC4PCPendantMPG16()
end,

[mc.ISIG_INPUT12] = function (state)
CNC4PCPendantMPG16()
end,

[mc.ISIG_INPUT13] = function (state)
CNC4PCPendantMPG16()
end,

[mc.ISIG_INPUT14] = function (state)
CNC4PCPendantMPG16()
end,

[mc.ISIG_INPUT15] = function (state)
CNC4PCPendantMPG16()
end,

[mc.ISIG_INPUT16] = function (state)
CNC4PCPendantMPG16()
end,

[mc.ISIG_INPUT17] = function (state)
CNC4PCPendantMPG16()
end,

[mc.ISIG_INPUT18] = function (state)
CNC4PCPendantMPG16()
end,

[mc.ISIG_INPUT19] = function (state)
CNC4PCPendantMPG16()
end,

---------------------------------------------------------------

-- CNC4PC Pendant function.

---------------------------------------------------------------

function CNC4PCPendantMPG16()
local hSig, rc = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT10) -- Is mapped to Port 2 or Port 3 Pin 4 *Cycle Start
local Cycle_Start, rc = mc.mcSignalGetState(hSig)

local hSig, rc = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT11) -- Is mapped to Port 2 or Port 3 Pin 5 *Feed Hold
local Feed_Hold, rc = mc.mcSignalGetState(hSig)
local hSig, rc = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT12) -- Is mapped to Port 2 or Port 3 Pin 6 *Spindle CW
local Spindle_CW, rc = mc.mcSignalGetState(hSig)

local hSig, rc = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT13) -- Is mapped to Port 2 or Port 3 Pin 7 *Flood
local Flood_on_off, rc = mc.mcSignalGetState(hSig)
local hSig, rc = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT14) -- Is mapped to Port 2 or Port 3 Pin 8 *.001 Selection
local Step001, rc = mc.mcSignalGetState(hSig)
local hSig, rc = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT15) -- Is mapped to Port 2 or Port 3 Pin 9 *.010 Selection
local Step010, rc = mc.mcSignalGetState(hSig)
local hSig, rc = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT16) -- Is mapped to Port 2 or Port 3 Pin 10 *.100 Selection
local Step100, rc = mc.mcSignalGetState(hSig)
local hSig, rc = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT17) -- Is mapped to Port 2 or Port 3 Pin 15 *Estop
local PenStop, rc = mc.mcSignalGetState(hSig)

if Cycle_Start == 1 then
CycleStart()
mc.mcCntlSetLastError(inst, "CycleStart")
elseif Feed_Hold == 1 then
mc.mcCntlFeedHold(0);
mc.mcCntlSetLastError(inst, "FeedHold")
elseif Spindle_CW == 1 then
mc.mcCntlSetLastError(inst, "SpinCW")
SpinCW()
elseif Flood_on_off == 1 then
mc.mcCntlSetLastError(inst, "Flood")
Flood()
else

--mc.mcCntlSetLastError(inst, "No Axis Selected")
end
if Step001 == 1 then
mc.mcMpgSetInc(inst, 0, .001)
mc.mcMpgSetInc(inst, 1, .001)
elseif Step010 == 1 then
mc.mcMpgSetInc(inst, 0, .010)
mc.mcMpgSetInc(inst, 1, .010)
elseif Step100 == 1 then
mc.mcMpgSetInc(inst, 0, .100)
mc.mcMpgSetInc(inst, 1, .100)
end

if PenStop == 1 then
mc.mcCntlEStop(inst)
end
end

 

 

STEP 6: Exit and save the screen and it will be ready.