Hello Guest it is March 28, 2024, 04:35:59 AM

Author Topic: Defining Signal Scripts in Mach4  (Read 8866 times)

0 Members and 1 Guest are viewing this topic.

Offline TimGS

*
  •  108 108
    • View Profile
Defining Signal Scripts in Mach4
« on: May 04, 2015, 12:25:52 AM »
I am trying to connect a switch to input #1 and have it control the Jog Mode (Incremental or Continuous).  When in "Step" mode the step LED on the screen will light and so will the physical LED on the switch to indicate that the Jog Mode is in Step.

Code: [Select]
--My Signal Code Starts Here
--Code added to the "Screen Load Script"
SigLib = {
    [mc.ISIG_INPUT1] = function(state)--Jog Mode
        local inst = mc.mcGetInstance();
        local hsig = mc.mcSignalGetHandle(inst, mc.OSIG_JOG_INC);--THIS IS WRONG

        if(state == 1)then
            --Jog Mode Increment On
            mc.mcSignalSetState(hsig,1);           
        else
           --Jog Mode Increment Off
            mc.mcSignalSetState(hsig,0);
        end
    end
}
--My Signal Code Ends Here

Anyone have any insight??

Offline TimGS

*
  •  108 108
    • View Profile
Re: Defining Signal Scripts in Mach4
« Reply #1 on: May 04, 2015, 02:57:23 PM »
I have looked in the Mach4CoreAPI... can't seem to find an API for JOG MODE.

...is there and API for setting the JOG MODE??

Offline TimGS

*
  •  108 108
    • View Profile
Project Signal Scripts to Control Jogging from External Inputs
« Reply #2 on: May 06, 2015, 08:50:14 AM »
My goal is to control Jogging from a set of switches and an MPG:
     Momentary Contact Switches:  X+; X-; Y+; Y-; Z+; Z-; A+; A-; JOG MODE {Used to cycle Jog Mode: Step, Continuous or OFF}
     5-POS 8-Terminal Switch:  {Used to set Jog Increment} 1.0000 (Default Open) , .1, .01, .001 and .0001
     5-POS 8-Terminal Switch:  {Used to set which axis the MPG will control} Axis X, Axis Y, Axis Z, Axis A
     MPG

Status still stuck.... 
I can read the status of inputs and change the state of output.  If I could only read/change the state of the machine I would be in business.  I have read and experimented with code from others on this site (THANK YOU ALL)

Code: [Select]
--Start of Signals from the end of the Screen Load Script
SignalTable = {
    --Enable
  --  [mc.OSIG_MACHINE_ENABLED] = function (state)
    --    machEnabled = state;
    --end,
        [mc.ISIG_INPUT1] = function (on_off)--mc.ISIG_INPUT1
            local inst= mc.mcGetInstance()
            local hsig = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT1)
            state = mc.mcSignalGetState(hsig)
        if( on_off==1 ) then
            -- On
            --I would like to set the Jog Mode to Increment here;
            mc.mcSignalSetState(hsig, 1) --This code is just here to turn an LED connected to OUTPUT 1 "ON" to show me that I was really doing something.
        else
            -- Off
            mc.mcSignalSetState(hsig, 0)--This code is just here to turn an LED connected to OUTPUT 1 "OFF" to show me that I was really doing something.
        end
    end
}


--The following code is from members Analias and Ya-Nvr-no
sigNames = {
[mc.ISIG_EMERGENCY] = 'ISIG_EMERGENCY',
[mc.ISIG_INDEX] = 'ISIG_INDEX',
[mc.ISIG_INPUT0] = 'ISIG_INPUT0',
[mc.ISIG_INPUT1] = 'ISIG_INPUT1',
[mc.ISIG_INPUT10] = 'ISIG_INPUT10',
[mc.ISIG_INPUT11] = 'ISIG_INPUT11',
[mc.ISIG_INPUT12] = 'ISIG_INPUT12',
[mc.ISIG_INPUT13] = 'ISIG_INPUT13',
[mc.ISIG_INPUT14] = 'ISIG_INPUT14',
[mc.ISIG_INPUT15] = 'ISIG_INPUT15',
[mc.ISIG_INPUT16] = 'ISIG_INPUT16',
[mc.ISIG_INPUT17] = 'ISIG_INPUT17',
[mc.ISIG_INPUT18] = 'ISIG_INPUT18',
[mc.ISIG_INPUT19] = 'ISIG_INPUT19',
[mc.ISIG_INPUT2] = 'ISIG_INPUT2',
[mc.ISIG_INPUT20] = 'ISIG_INPUT20',
[mc.ISIG_INPUT21] = 'ISIG_INPUT21',
[mc.ISIG_INPUT22] = 'ISIG_INPUT22',
[mc.ISIG_INPUT23] = 'ISIG_INPUT23',
[mc.ISIG_INPUT24] = 'ISIG_INPUT24',
[mc.ISIG_INPUT25] = 'ISIG_INPUT25',
[mc.ISIG_INPUT26] = 'ISIG_INPUT26',
[mc.ISIG_INPUT27] = 'ISIG_INPUT27',
[mc.ISIG_INPUT28] = 'ISIG_INPUT28',
[mc.ISIG_INPUT29] = 'ISIG_INPUT29',
[mc.ISIG_INPUT3] = 'ISIG_INPUT3',
[mc.ISIG_INPUT30] = 'ISIG_INPUT30',
[mc.ISIG_INPUT31] = 'ISIG_INPUT31',
[mc.ISIG_INPUT32] = 'ISIG_INPUT32',
[mc.ISIG_INPUT33] = 'ISIG_INPUT33',
[mc.ISIG_INPUT34] = 'ISIG_INPUT34',
[mc.ISIG_INPUT35] = 'ISIG_INPUT35',
[mc.ISIG_INPUT36] = 'ISIG_INPUT36',
[mc.ISIG_INPUT37] = 'ISIG_INPUT37',
[mc.ISIG_INPUT38] = 'ISIG_INPUT38',
[mc.ISIG_INPUT39] = 'ISIG_INPUT39',
[mc.ISIG_INPUT4] = 'ISIG_INPUT4',
[mc.ISIG_INPUT40] = 'ISIG_INPUT40',
[mc.ISIG_INPUT41] = 'ISIG_INPUT41',
[mc.ISIG_INPUT42] = 'ISIG_INPUT42',
[mc.ISIG_INPUT43] = 'ISIG_INPUT43',
[mc.ISIG_INPUT44] = 'ISIG_INPUT44',
[mc.ISIG_INPUT45] = 'ISIG_INPUT45',
[mc.ISIG_INPUT46] = 'ISIG_INPUT46',
[mc.ISIG_INPUT47] = 'ISIG_INPUT47',
[mc.ISIG_INPUT48] = 'ISIG_INPUT48',
[mc.ISIG_INPUT49] = 'ISIG_INPUT49',
[mc.ISIG_INPUT5] = 'ISIG_INPUT5',
[mc.ISIG_INPUT50] = 'ISIG_INPUT50',
[mc.ISIG_INPUT51] = 'ISIG_INPUT51',
[mc.ISIG_INPUT52] = 'ISIG_INPUT52',
[mc.ISIG_INPUT53] = 'ISIG_INPUT53',
[mc.ISIG_INPUT54] = 'ISIG_INPUT54',
[mc.ISIG_INPUT55] = 'ISIG_INPUT55',
[mc.ISIG_INPUT56] = 'ISIG_INPUT56',
[mc.ISIG_INPUT57] = 'ISIG_INPUT57',
[mc.ISIG_INPUT58] = 'ISIG_INPUT58',
[mc.ISIG_INPUT59] = 'ISIG_INPUT59',
[mc.ISIG_INPUT6] = 'ISIG_INPUT6',
[mc.ISIG_INPUT60] = 'ISIG_INPUT60',
[mc.ISIG_INPUT61] = 'ISIG_INPUT61',
[mc.ISIG_INPUT62] = 'ISIG_INPUT62',
[mc.ISIG_INPUT63] = 'ISIG_INPUT63',
[mc.ISIG_INPUT7] = 'ISIG_INPUT7',
[mc.ISIG_INPUT8] = 'ISIG_INPUT8',
[mc.ISIG_INPUT9] = 'ISIG_INPUT9',
[mc.ISIG_JOGAN] = 'ISIG_JOGAN',
[mc.ISIG_JOGAP] = 'ISIG_JOGAP',
[mc.ISIG_JOGBN] = 'ISIG_JOGBN',
[mc.ISIG_JOGBP] = 'ISIG_JOGBP',
[mc.ISIG_JOGCN] = 'ISIG_JOGCN',
[mc.ISIG_JOGCP] = 'ISIG_JOGCP',
[mc.ISIG_JOGXN] = 'ISIG_JOGXN',
[mc.ISIG_JOGXP] = 'ISIG_JOGXP',
[mc.ISIG_JOGYN] = 'ISIG_JOGYN',
[mc.ISIG_JOGYP] = 'ISIG_JOGYP',
[mc.ISIG_JOGZN] = 'ISIG_JOGZN',
[mc.ISIG_JOGZP] = 'ISIG_JOGZP',
[mc.ISIG_LIMITOVER] = 'ISIG_LIMITOVER',
[mc.ISIG_MOTOR0_HOME] = 'ISIG_MOTOR0_HOME',
[mc.ISIG_MOTOR0_MINUS] = 'ISIG_MOTOR0_MINUS',
[mc.ISIG_MOTOR0_PLUS] = 'ISIG_MOTOR0_PLUS',
[mc.ISIG_MOTOR1_HOME] = 'ISIG_MOTOR1_HOME',
[mc.ISIG_MOTOR1_MINUS] = 'ISIG_MOTOR1_MINUS',
[mc.ISIG_MOTOR1_PLUS] = 'ISIG_MOTOR1_PLUS',
[mc.ISIG_MOTOR10_HOME] = 'ISIG_MOTOR10_HOME',
[mc.ISIG_MOTOR10_MINUS] = 'ISIG_MOTOR10_MINUS',
[mc.ISIG_MOTOR10_PLUS] = 'ISIG_MOTOR10_PLUS',
[mc.ISIG_MOTOR11_HOME] = 'ISIG_MOTOR11_HOME',
[mc.ISIG_MOTOR11_MINUS] = 'ISIG_MOTOR11_MINUS',
[mc.ISIG_MOTOR11_PLUS] = 'ISIG_MOTOR11_PLUS',
[mc.ISIG_MOTOR12_HOME] = 'ISIG_MOTOR12_HOME',
[mc.ISIG_MOTOR12_MINUS] = 'ISIG_MOTOR12_MINUS',
[mc.ISIG_MOTOR12_PLUS] = 'ISIG_MOTOR12_PLUS',
[mc.ISIG_MOTOR13_HOME] = 'ISIG_MOTOR13_HOME',
[mc.ISIG_MOTOR13_MINUS] = 'ISIG_MOTOR13_MINUS',
[mc.ISIG_MOTOR13_PLUS] = 'ISIG_MOTOR13_PLUS',
[mc.ISIG_MOTOR14_HOME] = 'ISIG_MOTOR14_HOME',
[mc.ISIG_MOTOR14_MINUS] = 'ISIG_MOTOR14_MINUS',
[mc.ISIG_MOTOR14_PLUS] = 'ISIG_MOTOR14_PLUS',
[mc.ISIG_MOTOR15_HOME] = 'ISIG_MOTOR15_HOME',
[mc.ISIG_MOTOR15_MINUS] = 'ISIG_MOTOR15_MINUS',
[mc.ISIG_MOTOR15_PLUS] = 'ISIG_MOTOR15_PLUS',
[mc.ISIG_MOTOR16_HOME] = 'ISIG_MOTOR16_HOME',
[mc.ISIG_MOTOR16_MINUS] = 'ISIG_MOTOR16_MINUS',
[mc.ISIG_MOTOR16_PLUS] = 'ISIG_MOTOR16_PLUS',
[mc.ISIG_MOTOR17_HOME] = 'ISIG_MOTOR17_HOME',
[mc.ISIG_MOTOR17_MINUS] = 'ISIG_MOTOR17_MINUS',
[mc.ISIG_MOTOR17_PLUS] = 'ISIG_MOTOR17_PLUS',
[mc.ISIG_MOTOR18_HOME] = 'ISIG_MOTOR18_HOME',
[mc.ISIG_MOTOR18_MINUS] = 'ISIG_MOTOR18_MINUS',
[mc.ISIG_MOTOR18_PLUS] = 'ISIG_MOTOR18_PLUS',
[mc.ISIG_MOTOR19_HOME] = 'ISIG_MOTOR19_HOME',
[mc.ISIG_MOTOR19_MINUS] = 'ISIG_MOTOR19_MINUS',
[mc.ISIG_MOTOR19_PLUS] = 'ISIG_MOTOR19_PLUS',
[mc.ISIG_MOTOR2_HOME] = 'ISIG_MOTOR2_HOME',
[mc.ISIG_MOTOR2_MINUS] = 'ISIG_MOTOR2_MINUS',
[mc.ISIG_MOTOR2_PLUS] = 'ISIG_MOTOR2_PLUS',
[mc.ISIG_MOTOR20_HOME] = 'ISIG_MOTOR20_HOME',
[mc.ISIG_MOTOR20_MINUS] = 'ISIG_MOTOR20_MINUS',
[mc.ISIG_MOTOR20_PLUS] = 'ISIG_MOTOR20_PLUS',
[mc.ISIG_MOTOR21_HOME] = 'ISIG_MOTOR21_HOME',
[mc.ISIG_MOTOR21_MINUS] = 'ISIG_MOTOR21_MINUS',
[mc.ISIG_MOTOR21_PLUS] = 'ISIG_MOTOR21_PLUS',
[mc.ISIG_MOTOR22_HOME] = 'ISIG_MOTOR22_HOME',
[mc.ISIG_MOTOR22_MINUS] = 'ISIG_MOTOR22_MINUS',
[mc.ISIG_MOTOR22_PLUS] = 'ISIG_MOTOR22_PLUS',
[mc.ISIG_MOTOR23_HOME] = 'ISIG_MOTOR23_HOME',
[mc.ISIG_MOTOR23_MINUS] = 'ISIG_MOTOR23_MINUS',
[mc.ISIG_MOTOR23_PLUS] = 'ISIG_MOTOR23_PLUS',
[mc.ISIG_MOTOR24_HOME] = 'ISIG_MOTOR24_HOME',
[mc.ISIG_MOTOR24_MINUS] = 'ISIG_MOTOR24_MINUS',
[mc.ISIG_MOTOR24_PLUS] = 'ISIG_MOTOR24_PLUS',
[mc.ISIG_MOTOR25_HOME] = 'ISIG_MOTOR25_HOME',
[mc.ISIG_MOTOR25_MINUS] = 'ISIG_MOTOR25_MINUS',
[mc.ISIG_MOTOR25_PLUS] = 'ISIG_MOTOR25_PLUS',
[mc.ISIG_MOTOR26_HOME] = 'ISIG_MOTOR26_HOME',
[mc.ISIG_MOTOR26_MINUS] = 'ISIG_MOTOR26_MINUS',
[mc.ISIG_MOTOR26_PLUS] = 'ISIG_MOTOR26_PLUS',
[mc.ISIG_MOTOR27_HOME] = 'ISIG_MOTOR27_HOME',
[mc.ISIG_MOTOR27_MINUS] = 'ISIG_MOTOR27_MINUS',
[mc.ISIG_MOTOR27_PLUS] = 'ISIG_MOTOR27_PLUS',
[mc.ISIG_MOTOR28_HOME] = 'ISIG_MOTOR28_HOME',
[mc.ISIG_MOTOR28_MINUS] = 'ISIG_MOTOR28_MINUS',
[mc.ISIG_MOTOR28_PLUS] = 'ISIG_MOTOR28_PLUS',
[mc.ISIG_MOTOR29_HOME] = 'ISIG_MOTOR29_HOME',
[mc.ISIG_MOTOR29_MINUS] = 'ISIG_MOTOR29_MINUS',
[mc.ISIG_MOTOR29_PLUS] = 'ISIG_MOTOR29_PLUS',
[mc.ISIG_MOTOR3_HOME] = 'ISIG_MOTOR3_HOME',
[mc.ISIG_MOTOR3_MINUS] = 'ISIG_MOTOR3_MINUS',
[mc.ISIG_MOTOR3_PLUS] = 'ISIG_MOTOR3_PLUS',
[mc.ISIG_MOTOR30_HOME] = 'ISIG_MOTOR30_HOME',
[mc.ISIG_MOTOR30_MINUS] = 'ISIG_MOTOR30_MINUS',
[mc.ISIG_MOTOR30_PLUS] = 'ISIG_MOTOR30_PLUS',
[mc.ISIG_MOTOR31_HOME] = 'ISIG_MOTOR31_HOME',
[mc.ISIG_MOTOR31_MINUS] = 'ISIG_MOTOR31_MINUS',
[mc.ISIG_MOTOR31_PLUS] = 'ISIG_MOTOR31_PLUS',
[mc.ISIG_MOTOR4_HOME] = 'ISIG_MOTOR4_HOME',
[mc.ISIG_MOTOR4_MINUS] = 'ISIG_MOTOR4_MINUS',
[mc.ISIG_MOTOR4_PLUS] = 'ISIG_MOTOR4_PLUS',
[mc.ISIG_MOTOR5_HOME] = 'ISIG_MOTOR5_HOME',
[mc.ISIG_MOTOR5_MINUS] = 'ISIG_MOTOR5_MINUS',
[mc.ISIG_MOTOR5_PLUS] = 'ISIG_MOTOR5_PLUS',
[mc.ISIG_MOTOR6_HOME] = 'ISIG_MOTOR6_HOME',
[mc.ISIG_MOTOR6_MINUS] = 'ISIG_MOTOR6_MINUS',
[mc.ISIG_MOTOR6_PLUS] = 'ISIG_MOTOR6_PLUS',
[mc.ISIG_MOTOR7_HOME] = 'ISIG_MOTOR7_HOME',
[mc.ISIG_MOTOR7_MINUS] = 'ISIG_MOTOR7_MINUS',
[mc.ISIG_MOTOR7_PLUS] = 'ISIG_MOTOR7_PLUS',
[mc.ISIG_MOTOR8_HOME] = 'ISIG_MOTOR8_HOME',
[mc.ISIG_MOTOR8_MINUS] = 'ISIG_MOTOR8_MINUS',
[mc.ISIG_MOTOR8_PLUS] = 'ISIG_MOTOR8_PLUS',
[mc.ISIG_MOTOR9_HOME] = 'ISIG_MOTOR9_HOME',
[mc.ISIG_MOTOR9_MINUS] = 'ISIG_MOTOR9_MINUS',
[mc.ISIG_MOTOR9_PLUS] = 'ISIG_MOTOR9_PLUS',
[mc.ISIG_PROBE] = 'ISIG_PROBE',
[mc.ISIG_PROBE1] = 'ISIG_PROBE1',
[mc.ISIG_PROBE2] = 'ISIG_PROBE2',
[mc.ISIG_PROBE3] = 'ISIG_PROBE3',
[mc.ISIG_SPINDLE_AT_SPEED] = 'ISIG_SPINDLE_AT_SPEED',
[mc.ISIG_SPINDLE_AT_ZERO] = 'ISIG_SPINDLE_AT_ZERO',
[mc.ISIG_THCDOWN] = 'ISIG_THCDOWN',
[mc.ISIG_THCON] = 'ISIG_THCON',
[mc.ISIG_THCUP] = 'ISIG_THCUP',
[mc.ISIG_TIMING] = 'ISIG_TIMING',
[mc.OSIG_AHOME] = 'OSIG_AHOME',
[mc.OSIG_ALARM] = 'OSIG_ALARM',
[mc.OSIG_ALIMITMINUS] = 'OSIG_ALIMITMINUS',
[mc.OSIG_ALIMITPLUS] = 'OSIG_ALIMITPLUS',
[mc.OSIG_BHOME] = 'OSIG_BHOME',
[mc.OSIG_BLIMITMINUS] = 'OSIG_BLIMITMINUS',
[mc.OSIG_BLIMITPLUS] = 'OSIG_BLIMITPLUS',
[mc.OSIG_BLOCK_DELETE] = 'OSIG_BLOCK_DELETE',
[mc.OSIG_CHARGE] = 'OSIG_CHARGE',
[mc.OSIG_CHARGE2] = 'OSIG_CHARGE2',
[mc.OSIG_CHOME] = 'OSIG_CHOME',
[mc.OSIG_CLIMITMINUS] = 'OSIG_CLIMITMINUS',
[mc.OSIG_CLIMITPLUS] = 'OSIG_CLIMITPLUS',
[mc.OSIG_COOLANTON] = 'OSIG_COOLANTON',
[mc.OSIG_CURRENTHILOW] = 'OSIG_CURRENTHILOW',
[mc.OSIG_DIGTRIGGER] = 'OSIG_DIGTRIGGER',
[mc.OSIG_DIST_TOGO] = 'OSIG_DIST_TOGO',
[mc.OSIG_DWELL] = 'OSIG_DWELL',
[mc.OSIG_ENABLE0] = 'OSIG_ENABLE0',
[mc.OSIG_ENABLE1] = 'OSIG_ENABLE1',
[mc.OSIG_ENABLE10] = 'OSIG_ENABLE10',
[mc.OSIG_ENABLE11] = 'OSIG_ENABLE11',
[mc.OSIG_ENABLE12] = 'OSIG_ENABLE12',
[mc.OSIG_ENABLE13] = 'OSIG_ENABLE13',
[mc.OSIG_ENABLE14] = 'OSIG_ENABLE14',
[mc.OSIG_ENABLE15] = 'OSIG_ENABLE15',
[mc.OSIG_ENABLE16] = 'OSIG_ENABLE16',
[mc.OSIG_ENABLE17] = 'OSIG_ENABLE17',
[mc.OSIG_ENABLE18] = 'OSIG_ENABLE18',
[mc.OSIG_ENABLE19] = 'OSIG_ENABLE19',
[mc.OSIG_ENABLE2] = 'OSIG_ENABLE2',
[mc.OSIG_ENABLE20] = 'OSIG_ENABLE20',
[mc.OSIG_ENABLE21] = 'OSIG_ENABLE21',
[mc.OSIG_ENABLE22] = 'OSIG_ENABLE22',
[mc.OSIG_ENABLE23] = 'OSIG_ENABLE23',
[mc.OSIG_ENABLE24] = 'OSIG_ENABLE24',
[mc.OSIG_ENABLE25] = 'OSIG_ENABLE25',
[mc.OSIG_ENABLE26] = 'OSIG_ENABLE26',
[mc.OSIG_ENABLE27] = 'OSIG_ENABLE27',
[mc.OSIG_ENABLE28] = 'OSIG_ENABLE28',
[mc.OSIG_ENABLE29] = 'OSIG_ENABLE29',
[mc.OSIG_ENABLE3] = 'OSIG_ENABLE3',
[mc.OSIG_ENABLE30] = 'OSIG_ENABLE30',
[mc.OSIG_ENABLE31] = 'OSIG_ENABLE31',
[mc.OSIG_ENABLE4] = 'OSIG_ENABLE4',
[mc.OSIG_ENABLE5] = 'OSIG_ENABLE5',
[mc.OSIG_ENABLE6] = 'OSIG_ENABLE6',
[mc.OSIG_ENABLE7] = 'OSIG_ENABLE7',
[mc.OSIG_ENABLE8] = 'OSIG_ENABLE8',
[mc.OSIG_ENABLE9] = 'OSIG_ENABLE9',
[mc.OSIG_FEEDHOLD] = 'OSIG_FEEDHOLD',
[mc.OSIG_HOMED_A] = 'OSIG_HOMED_A',
[mc.OSIG_HOMED_B] = 'OSIG_HOMED_B',
[mc.OSIG_HOMED_C] = 'OSIG_HOMED_C',
[mc.OSIG_HOMED_X] = 'OSIG_HOMED_X',
[mc.OSIG_HOMED_Y] = 'OSIG_HOMED_Y',
[mc.OSIG_HOMED_Z] = 'OSIG_HOMED_Z',
[mc.OSIG_JOG_CONT] = 'OSIG_JOG_CONT',
[mc.OSIG_JOG_ENABLED] = 'OSIG_JOG_ENABLED',
[mc.OSIG_JOG_INC] = 'OSIG_JOG_INC',
[mc.OSIG_JOG_MPG] = 'OSIG_JOG_MPG',
[mc.OSIG_LIMITOVER] = 'OSIG_LIMITOVER',
[mc.OSIG_MACHINE_CORD] = 'OSIG_MACHINE_CORD',
[mc.OSIG_MACHINE_ENABLED] = 'OSIG_MACHINE_ENABLED',
[mc.OSIG_MISTON] = 'OSIG_MISTON',
[mc.OSIG_OPT_STOP] = 'OSIG_OPT_STOP',
[mc.OSIG_OUTPUT0] = 'OSIG_OUTPUT0',
[mc.OSIG_OUTPUT1] = 'OSIG_OUTPUT1',
[mc.OSIG_OUTPUT10] = 'OSIG_OUTPUT10',
[mc.OSIG_OUTPUT11] = 'OSIG_OUTPUT11',
[mc.OSIG_OUTPUT12] = 'OSIG_OUTPUT12',
[mc.OSIG_OUTPUT13] = 'OSIG_OUTPUT13',
[mc.OSIG_OUTPUT14] = 'OSIG_OUTPUT14',
[mc.OSIG_OUTPUT15] = 'OSIG_OUTPUT15',
[mc.OSIG_OUTPUT16] = 'OSIG_OUTPUT16',
[mc.OSIG_OUTPUT17] = 'OSIG_OUTPUT17',
[mc.OSIG_OUTPUT18] = 'OSIG_OUTPUT18',
[mc.OSIG_OUTPUT19] = 'OSIG_OUTPUT19',
[mc.OSIG_OUTPUT2] = 'OSIG_OUTPUT2',
[mc.OSIG_OUTPUT20] = 'OSIG_OUTPUT20',
[mc.OSIG_OUTPUT21] = 'OSIG_OUTPUT21',
[mc.OSIG_OUTPUT22] = 'OSIG_OUTPUT22',
[mc.OSIG_OUTPUT23] = 'OSIG_OUTPUT23',
[mc.OSIG_OUTPUT24] = 'OSIG_OUTPUT24',
[mc.OSIG_OUTPUT25] = 'OSIG_OUTPUT25',
[mc.OSIG_OUTPUT26] = 'OSIG_OUTPUT26',
[mc.OSIG_OUTPUT27] = 'OSIG_OUTPUT27',
[mc.OSIG_OUTPUT28] = 'OSIG_OUTPUT28',
[mc.OSIG_OUTPUT29] = 'OSIG_OUTPUT29',
[mc.OSIG_OUTPUT3] = 'OSIG_OUTPUT3',
[mc.OSIG_OUTPUT30] = 'OSIG_OUTPUT30',
[mc.OSIG_OUTPUT31] = 'OSIG_OUTPUT31',
[mc.OSIG_OUTPUT32] = 'OSIG_OUTPUT32',
[mc.OSIG_OUTPUT33] = 'OSIG_OUTPUT33',
[mc.OSIG_OUTPUT34] = 'OSIG_OUTPUT34',
[mc.OSIG_OUTPUT35] = 'OSIG_OUTPUT35',
[mc.OSIG_OUTPUT36] = 'OSIG_OUTPUT36',
[mc.OSIG_OUTPUT37] = 'OSIG_OUTPUT37',
[mc.OSIG_OUTPUT38] = 'OSIG_OUTPUT38',
[mc.OSIG_OUTPUT39] = 'OSIG_OUTPUT39',
[mc.OSIG_OUTPUT4] = 'OSIG_OUTPUT4',
[mc.OSIG_OUTPUT40] = 'OSIG_OUTPUT40',
[mc.OSIG_OUTPUT41] = 'OSIG_OUTPUT41',
[mc.OSIG_OUTPUT42] = 'OSIG_OUTPUT42',
[mc.OSIG_OUTPUT43] = 'OSIG_OUTPUT43',
[mc.OSIG_OUTPUT44] = 'OSIG_OUTPUT44',
[mc.OSIG_OUTPUT45] = 'OSIG_OUTPUT45',
[mc.OSIG_OUTPUT46] = 'OSIG_OUTPUT46',
[mc.OSIG_OUTPUT47] = 'OSIG_OUTPUT47',
[mc.OSIG_OUTPUT48] = 'OSIG_OUTPUT48',
[mc.OSIG_OUTPUT49] = 'OSIG_OUTPUT49',
[mc.OSIG_OUTPUT5] = 'OSIG_OUTPUT5',
[mc.OSIG_OUTPUT50] = 'OSIG_OUTPUT50',
[mc.OSIG_OUTPUT51] = 'OSIG_OUTPUT51',
[mc.OSIG_OUTPUT52] = 'OSIG_OUTPUT52',
[mc.OSIG_OUTPUT53] = 'OSIG_OUTPUT53',
[mc.OSIG_OUTPUT54] = 'OSIG_OUTPUT54',
[mc.OSIG_OUTPUT55] = 'OSIG_OUTPUT55',
[mc.OSIG_OUTPUT56] = 'OSIG_OUTPUT56',
[mc.OSIG_OUTPUT57] = 'OSIG_OUTPUT57',
[mc.OSIG_OUTPUT58] = 'OSIG_OUTPUT58',
[mc.OSIG_OUTPUT59] = 'OSIG_OUTPUT59',
[mc.OSIG_OUTPUT6] = 'OSIG_OUTPUT6',
[mc.OSIG_OUTPUT60] = 'OSIG_OUTPUT60',
[mc.OSIG_OUTPUT61] = 'OSIG_OUTPUT61',
[mc.OSIG_OUTPUT62] = 'OSIG_OUTPUT62',
[mc.OSIG_OUTPUT63] = 'OSIG_OUTPUT63',
[mc.OSIG_OUTPUT7] = 'OSIG_OUTPUT7',
[mc.OSIG_OUTPUT8] = 'OSIG_OUTPUT8',
[mc.OSIG_OUTPUT9] = 'OSIG_OUTPUT9',
[mc.OSIG_PRTSF] = 'OSIG_PRTSF',
[mc.OSIG_REVERSE_RUN] = 'OSIG_REVERSE_RUN',
[mc.OSIG_RUNNING_GCODE] = 'OSIG_RUNNING_GCODE',
[mc.OSIG_SINGLE_BLOCK] = 'OSIG_SINGLE_BLOCK',
[mc.OSIG_SOFTLIMITS_ON] = 'OSIG_SOFTLIMITS_ON',
[mc.OSIG_SPINDLEFWD] = 'OSIG_SPINDLEFWD',
[mc.OSIG_SPINDLEON] = 'OSIG_SPINDLEON',
[mc.OSIG_SPINDLEREV] = 'OSIG_SPINDLEREV',
[mc.OSIG_TOOL_CHANGE] = 'OSIG_TOOL_CHANGE',
[mc.OSIG_TP_MOUSE_DN] = 'OSIG_TP_MOUSE_DN',
[mc.OSIG_XHOME] = 'OSIG_XHOME',
[mc.OSIG_XLIMITMINUS] = 'OSIG_XLIMITMINUS',
[mc.OSIG_XLIMITPLUS] = 'OSIG_XLIMITPLUS',
[mc.OSIG_YHOME] = 'OSIG_YHOME',
[mc.OSIG_YLIMITMINUS] = 'OSIG_YLIMITMINUS',
[mc.OSIG_YLIMITPLUS] = 'OSIG_YLIMITPLUS',
[mc.OSIG_ZHOME] = 'OSIG_ZHOME',
[mc.OSIG_ZLIMITMINUS] = 'OSIG_ZLIMITMINUS',
[mc.OSIG_ZLIMITPLUS] = 'OSIG_ZLIMITPLUS',
}


The following code was installed in the Signal Script ...
Code: [Select]
local inst = mc.mcGetInstance();

if (sig == mc.OSIG_MACHINE_ENABLED) then
    machEnabled = state;
end
if(SignalTable[sig] ~= nil)then
local sigName = sigNames[sig] or sig;
mc.mcCntlSetLastError(inst,'State - '..sigName..' = '..tostring(state));
SignalTable[sig](state);  -- comment out if you don't have any SigTable definitions in your screen startup script.
end

The code works to detect when INPUT1 changes state and controls OUTPUT1 to match changes to INPUT1 but I only see INPUT1 show up in the HISTORY log; no entries for OUTPUT1 even though OUTPUT1 changes state....this is a bit confusing but a problem for another day.

My 1st goal was to change the JOG MODE from an external input; still not there yet...and so far no insight as to how to manipulate JOG MODE ... :(
Thank You any help/insight would be greatly appreciated!!!! 

Offline TimGS

*
  •  108 108
    • View Profile
Re: Defining Signal Scripts in Mach4
« Reply #3 on: May 06, 2015, 10:07:23 AM »
For a visual of what I am trying to do...See attached

Offline TimGS

*
  •  108 108
    • View Profile
Re: Defining Signal Scripts in Mach4
« Reply #4 on: May 06, 2015, 12:41:41 PM »
Another option for Jog Mode would be to make the Jog Mode control switch binary...Step or Continuous.

Code: [Select]
SignalTable = {
        [mc.ISIG_INPUT1] = function (on_off)--mc.ISIG_INPUT1
            local inst= mc.mcGetInstance()
            local hsig = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT1)
            state = mc.mcSignalGetState(hsig)
        if( on_off==1 ) then
            -- On = Step Mode
            mcJogSetType(inst, 0, MC_JOG_TYPE_INC);
            mcJogSetType(inst, 1, MC_JOG_TYPE_INC);
            mcJogSetType(inst, 2, MC_JOG_TYPE_INC);
            mcJogSetType(inst, 3, MC_JOG_TYPE_INC);
            mc.mcSignalSetState(hsig, 1)
        else
            -- Off = Continuous
            mcJogSetType(inst, 0, MC_JOG_TYPE_VEL);
            mcJogSetType(inst, 1, MC_JOG_TYPE_VEL);
            mcJogSetType(inst, 2, MC_JOG_TYPE_VEL);
            mcJogSetType(inst, 3, MC_JOG_TYPE_VEL);
            mc.mcSignalSetState(hsig, 0)
        end
    end
}
...Just a thought and I have to figure out how the Axis are referenced; I don't know if 0,1,2,3 map to X,Y,Z,A

Offline dude1

*
  •  1,253 1,253
    • View Profile
Re: Defining Signal Scripts in Mach4
« Reply #5 on: May 07, 2015, 12:38:57 AM »
have a look at this http://www.machsupport.com/forum/index.php/topic,28149.0.html

and in the ftp there is a function for useing a mouse as a jog wheel

Offline TimGS

*
  •  108 108
    • View Profile
Re: Defining Signal Scripts in Mach4
« Reply #6 on: May 07, 2015, 08:25:58 AM »
Thank You.  There is a facility provided for Jogging controls X+, X-.... and so on.  What seems to be missing is a facility for Jogging Control of Mode and Increment.

Offline poppabear

*
  • *
  •  2,235 2,235
  • Briceville, TN, USA
    • View Profile
Re: Defining Signal Scripts in Mach4
« Reply #7 on: May 07, 2015, 01:58:00 PM »
to set type in lua:

local inst = 0;
local Xaxis = mc.X_AXIS;
local JogVel = mc.MC_JOG_TYPE_VEL;
local JogInc = mc.MC_JOG_TYPE_INC;

rc = mc.mcJogSetType(inst, Xaxis, JogVel);

Scott
fun times

Offline TimGS

*
  •  108 108
    • View Profile
Re: Defining Signal Scripts in Mach4
« Reply #8 on: May 07, 2015, 09:55:28 PM »
I should have posted this earlier...

Code: [Select]
SignalTable = {
    --Enable
  --  [mc.OSIG_MACHINE_ENABLED] = function (state)
    --    machEnabled = state;
    --end,
        [mc.ISIG_INPUT1] = function (on_off)--mc.ISIG_INPUT1
            local inst= mc.mcGetInstance()
            local hsig = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT1)
            local jogRate
            mc.mcJogGetRate(inst, mc.X_AXIS, jogRate);
            state = mc.mcSignalGetState(hsig)
        if( on_off==1 ) then
            -- Jog Inc
            mc.mcJogSetType(inst, mc.X_AXIS, mc.MC_JOG_TYPE_INC,1);
            mc.mcJogSetType(inst, mc.Y_AXIS, mc.MC_JOG_TYPE_INC,1);
            mc.mcJogSetType(inst, mc.Z_AXIS, mc.MC_JOG_TYPE_INC,1);
            mc.mcJogSetType(inst, mc.A_AXIS, mc.MC_JOG_TYPE_INC,1);
            mc.mcSignalSetState(hsig, 1)
        else
            -- Jog Continuous
            mc.mcJogSetType(inst, mc.X_AXIS, mc.MC_JOG_TYPE_VEL,jogRate);
            mc.mcJogSetType(inst, mc.Y_AXIS, mc.MC_JOG_TYPE_VEL,jogRate);
            mc.mcJogSetType(inst, mc.Z_AXIS, mc.MC_JOG_TYPE_VEL,jogRate);
            mc.mcJogSetType(inst, mc.A_AXIS, mc.MC_JOG_TYPE_VEL,jogRate);

            mc.mcSignalSetState(hsig, 0)
        end
    end
}

I want to change the inc and vel of all axis at once so I don't get confused.

My other desire is to keep the current jog screen in sink with what I was doing.  It makes it look as if I did not change anything.  I need to hook up some little test motors for playing at the computer so I can test out the actual motion of the jog control script.

Thank You for any and all help... I am gaining more knowledge and having a little more success every day.

Offline dude1

*
  •  1,253 1,253
    • View Profile
Re: Defining Signal Scripts in Mach4
« Reply #9 on: May 07, 2015, 10:02:08 PM »
poppabear always gives use the best hint`s to what we are doing wrong or to put use on the right track to fix what ever is wrong it will get easier when more people are using M4