Hello Guest it is April 24, 2024, 01:36:52 PM

Author Topic: Signal Scripts  (Read 13811 times)

0 Members and 1 Guest are viewing this topic.

Re: Signal Scripts
« Reply #20 on: July 20, 2014, 12:19:23 AM »
I'm digging this signal handling trick. The code for updating UI elements based on signal state only has to happen when the signal is sent.  Makes the PLC script way easier to maintain. 

These are the kind of language "hacks" (meant in a really cool code way) that Lua supports that allows coders to be expressive. 


-Freeman
I'm not a complete idiot...
    there are some parts missing.
Re: Signal Scripts
« Reply #21 on: July 20, 2014, 12:42:50 AM »
One thing I did notice, is if you add new signal handlers to your SigLib a restart of M4 is needed to pick them up.  You can change existing signal handlers without a restart though.

-Freeman
I'm not a complete idiot...
    there are some parts missing.
Re: Signal Scripts
« Reply #22 on: July 20, 2014, 05:15:20 PM »
Ya, I'm thinking mach4 has to read the machine.ini file to address the signal name correctly, thus the need for a restart. Hopefully these little details will be covered in the documentation.
Re: Signal Scripts
« Reply #23 on: July 23, 2014, 12:26:42 AM »
Signals become very interesting when you have a real motion device behind it.  The simulator doesn't appear to implement any input signals (ISIG_*).

Now that I have moved my screen set with signal handling installed over to my Sieg X3, I start to see how things like homing scripts are simple to implement.

If you would like to save some typing and monitor your signals, add the following to the bottom of your screen signal script:

Code: [Select]
local sigNames = {
    [mc.ISIG_DIGITIZE] = 'ISIG_DIGITIZE',
    [mc.ISIG_EMERGENCY] = 'ISIG_EMERGENCY',
    [mc.ISIG_INDEX] = 'ISIG_INDEX',
    [mc.ISIG_INPUT_FINISH] = 'ISIG_INPUT_FINISH',
    [mc.ISIG_INPUT_START] = 'ISIG_INPUT_START',
    [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_MOTOR_HOME_FINISH] = 'ISIG_MOTOR_HOME_FINISH',
    [mc.ISIG_MOTOR_HOME_START] = 'ISIG_MOTOR_HOME_START',
    [mc.ISIG_MOTOR_MINUS_FINISH] = 'ISIG_MOTOR_MINUS_FINISH',
    [mc.ISIG_MOTOR_MINUS_START] = 'ISIG_MOTOR_MINUS_START',
    [mc.ISIG_MOTOR_PLUS_FINISH] = 'ISIG_MOTOR_PLUS_FINISH',
    [mc.ISIG_MOTOR_PLUS_START] = 'ISIG_MOTOR_PLUS_START',
    [mc.ISIG_MOTOR_START] = 'ISIG_MOTOR_START',
    [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_SPECIAL_FINISH] = 'ISIG_SPECIAL_FINISH',
    [mc.ISIG_SPECIAL_START] = 'ISIG_SPECIAL_START',
    [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.MSG_SIG_CHANGED] = 'MSG_SIG_CHANGED',
    [mc.OSIG_AHOME] = 'OSIG_AHOME',
    [mc.OSIG_ALIMITMINUS] = 'OSIG_ALIMITMINUS',
    [mc.OSIG_ALIMITPLUS] = 'OSIG_ALIMITPLUS',
    [mc.OSIG_AXIS_SWITCH_FINISH] = 'OSIG_AXIS_SWITCH_FINISH',
    [mc.OSIG_AXIS_SWITCH_START] = 'OSIG_AXIS_SWITCH_START',
    [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_ENABLE_FINISH] = 'OSIG_ENABLE_FINISH',
    [mc.OSIG_ENABLE_START] = 'OSIG_ENABLE_START',
    [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_MISC_FINISH] = 'OSIG_MISC_FINISH',
    [mc.OSIG_MISC_START] = 'OSIG_MISC_START',
    [mc.OSIG_MISTON] = 'OSIG_MISTON',
    [mc.OSIG_OPT_STOP] = 'OSIG_OPT_STOP',
    [mc.OSIG_OUTPUT_FINISH] = 'OSIG_OUTPUT_FINISH',
    [mc.OSIG_OUTPUT_START] = 'OSIG_OUTPUT_START',
    [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_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',
    [mc.SIG_TYPE_INPUT] = 'SIG_TYPE_INPUT',
    [mc.SIG_TYPE_NONE] = 'SIG_TYPE_NONE',
    [mc.SIG_TYPE_OUTPUT] = 'SIG_TYPE_OUTPUT',
}

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

A sample history log from my X3 looks like:

Code: [Select]
State - ISIG_MOTOR0_HOME = 1
State - OSIG_HOME_START: 1
State - OSIG_HOMED_X = 1


-Freeman

« Last Edit: July 23, 2014, 12:40:06 AM by Analias »
I'm not a complete idiot...
    there are some parts missing.
Re: Signal Scripts
« Reply #24 on: July 23, 2014, 09:44:59 AM »
thats pretty cool, but it does not display the spindle or coolant on and off, wonder why?
probably a few more, but just starting to play

did reformat it a little cause i'm a little  >:D

Code: [Select]
local sigNames = {
[mc.ISIG_INPUT0]  = 'ISIG_INPUT0',
[mc.ISIG_INPUT1]  = 'ISIG_INPUT1',
[mc.ISIG_INPUT2]  = 'ISIG_INPUT2',
[mc.ISIG_INPUT3]  = 'ISIG_INPUT3',
[mc.ISIG_INPUT4]  = 'ISIG_INPUT4',
[mc.ISIG_INPUT5]  = 'ISIG_INPUT5',
[mc.ISIG_INPUT6]  = 'ISIG_INPUT6',
[mc.ISIG_INPUT7]  = 'ISIG_INPUT7',
[mc.ISIG_INPUT8]  = 'ISIG_INPUT8',
[mc.ISIG_INPUT9]  = 'ISIG_INPUT9',
[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_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_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_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_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_INPUT60] = 'ISIG_INPUT60',
[mc.ISIG_INPUT61] = 'ISIG_INPUT61',
[mc.ISIG_INPUT62] = 'ISIG_INPUT62',
[mc.ISIG_INPUT63] = 'ISIG_INPUT63',

[mc.ISIG_MOTOR0_HOME] = 'ISIG_MOTOR0_HOME',
[mc.ISIG_MOTOR1_HOME] = 'ISIG_MOTOR1_HOME',
[mc.ISIG_MOTOR2_HOME] = 'ISIG_MOTOR2_HOME',
[mc.ISIG_MOTOR3_HOME] = 'ISIG_MOTOR3_HOME',
[mc.ISIG_MOTOR4_HOME] = 'ISIG_MOTOR4_HOME',
[mc.ISIG_MOTOR5_HOME] = 'ISIG_MOTOR5_HOME',
[mc.ISIG_MOTOR6_HOME] = 'ISIG_MOTOR6_HOME',
[mc.ISIG_MOTOR7_HOME] = 'ISIG_MOTOR7_HOME',
[mc.ISIG_MOTOR8_HOME] = 'ISIG_MOTOR8_HOME',
[mc.ISIG_MOTOR9_HOME] = 'ISIG_MOTOR9_HOME',
[mc.ISIG_MOTOR10_HOME] = 'ISIG_MOTOR10_HOME',
[mc.ISIG_MOTOR11_HOME] = 'ISIG_MOTOR11_HOME',
[mc.ISIG_MOTOR12_HOME] = 'ISIG_MOTOR12_HOME',
[mc.ISIG_MOTOR13_HOME] = 'ISIG_MOTOR13_HOME',
[mc.ISIG_MOTOR14_HOME] = 'ISIG_MOTOR14_HOME',
[mc.ISIG_MOTOR15_HOME] = 'ISIG_MOTOR15_HOME',
[mc.ISIG_MOTOR16_HOME] = 'ISIG_MOTOR16_HOME',
[mc.ISIG_MOTOR17_HOME] = 'ISIG_MOTOR17_HOME',
[mc.ISIG_MOTOR18_HOME] = 'ISIG_MOTOR18_HOME',
[mc.ISIG_MOTOR19_HOME] = 'ISIG_MOTOR19_HOME',
[mc.ISIG_MOTOR20_HOME] = 'ISIG_MOTOR20_HOME',
[mc.ISIG_MOTOR21_HOME] = 'ISIG_MOTOR21_HOME',
[mc.ISIG_MOTOR22_HOME] = 'ISIG_MOTOR22_HOME',
[mc.ISIG_MOTOR23_HOME] = 'ISIG_MOTOR23_HOME',
[mc.ISIG_MOTOR24_HOME] = 'ISIG_MOTOR24_HOME',
[mc.ISIG_MOTOR25_HOME] = 'ISIG_MOTOR25_HOME',
[mc.ISIG_MOTOR26_HOME] = 'ISIG_MOTOR26_HOME',
[mc.ISIG_MOTOR27_HOME] = 'ISIG_MOTOR27_HOME',
[mc.ISIG_MOTOR28_HOME] = 'ISIG_MOTOR28_HOME',
[mc.ISIG_MOTOR29_HOME] = 'ISIG_MOTOR29_HOME',
[mc.ISIG_MOTOR30_HOME] = 'ISIG_MOTOR30_HOME',
[mc.ISIG_MOTOR31_HOME] = 'ISIG_MOTOR31_HOME',

[mc.ISIG_MOTOR0_MINUS] = 'ISIG_MOTOR0_MINUS',
[mc.ISIG_MOTOR1_MINUS] = 'ISIG_MOTOR1_MINUS',
[mc.ISIG_MOTOR2_MINUS] = 'ISIG_MOTOR2_MINUS',
[mc.ISIG_MOTOR3_MINUS] = 'ISIG_MOTOR3_MINUS',
[mc.ISIG_MOTOR4_MINUS] = 'ISIG_MOTOR4_MINUS',
[mc.ISIG_MOTOR5_MINUS] = 'ISIG_MOTOR5_MINUS',
[mc.ISIG_MOTOR6_MINUS] = 'ISIG_MOTOR6_MINUS',
[mc.ISIG_MOTOR7_MINUS] = 'ISIG_MOTOR7_MINUS',
[mc.ISIG_MOTOR8_MINUS] = 'ISIG_MOTOR8_MINUS',
[mc.ISIG_MOTOR9_MINUS] = 'ISIG_MOTOR9_MINUS',
[mc.ISIG_MOTOR10_MINUS] = 'ISIG_MOTOR10_MINUS',
[mc.ISIG_MOTOR11_MINUS] = 'ISIG_MOTOR11_MINUS',
[mc.ISIG_MOTOR12_MINUS] = 'ISIG_MOTOR12_MINUS',
[mc.ISIG_MOTOR13_MINUS] = 'ISIG_MOTOR13_MINUS',
[mc.ISIG_MOTOR14_MINUS] = 'ISIG_MOTOR14_MINUS',
[mc.ISIG_MOTOR15_MINUS] = 'ISIG_MOTOR15_MINUS',
[mc.ISIG_MOTOR16_MINUS] = 'ISIG_MOTOR16_MINUS',
[mc.ISIG_MOTOR17_MINUS] = 'ISIG_MOTOR17_MINUS',
[mc.ISIG_MOTOR18_MINUS] = 'ISIG_MOTOR18_MINUS',
[mc.ISIG_MOTOR19_MINUS] = 'ISIG_MOTOR19_MINUS',
[mc.ISIG_MOTOR20_MINUS] = 'ISIG_MOTOR20_MINUS',
[mc.ISIG_MOTOR21_MINUS] = 'ISIG_MOTOR21_MINUS',
[mc.ISIG_MOTOR22_MINUS] = 'ISIG_MOTOR22_MINUS',
[mc.ISIG_MOTOR23_MINUS] = 'ISIG_MOTOR23_MINUS',
[mc.ISIG_MOTOR24_MINUS] = 'ISIG_MOTOR24_MINUS',
[mc.ISIG_MOTOR25_MINUS] = 'ISIG_MOTOR25_MINUS',
[mc.ISIG_MOTOR26_MINUS] = 'ISIG_MOTOR26_MINUS',
[mc.ISIG_MOTOR27_MINUS] = 'ISIG_MOTOR27_MINUS',
[mc.ISIG_MOTOR28_MINUS] = 'ISIG_MOTOR28_MINUS',
[mc.ISIG_MOTOR29_MINUS] = 'ISIG_MOTOR29_MINUS',
[mc.ISIG_MOTOR30_MINUS] = 'ISIG_MOTOR30_MINUS',
[mc.ISIG_MOTOR31_MINUS] = 'ISIG_MOTOR31_MINUS',

[mc.ISIG_MOTOR0_PLUS] = 'ISIG_MOTOR0_PLUS',
[mc.ISIG_MOTOR1_PLUS] = 'ISIG_MOTOR1_PLUS',
[mc.ISIG_MOTOR2_PLUS] = 'ISIG_MOTOR2_PLUS',
[mc.ISIG_MOTOR3_PLUS] = 'ISIG_MOTOR3_PLUS',
[mc.ISIG_MOTOR4_PLUS] = 'ISIG_MOTOR4_PLUS',
[mc.ISIG_MOTOR5_PLUS] = 'ISIG_MOTOR5_PLUS',
[mc.ISIG_MOTOR6_PLUS] = 'ISIG_MOTOR6_PLUS',
[mc.ISIG_MOTOR7_PLUS] = 'ISIG_MOTOR7_PLUS',
[mc.ISIG_MOTOR8_PLUS] = 'ISIG_MOTOR8_PLUS',
[mc.ISIG_MOTOR9_PLUS] = 'ISIG_MOTOR9_PLUS',
[mc.ISIG_MOTOR10_PLUS] = 'ISIG_MOTOR10_PLUS',
[mc.ISIG_MOTOR11_PLUS] = 'ISIG_MOTOR11_PLUS',
[mc.ISIG_MOTOR12_PLUS] = 'ISIG_MOTOR12_PLUS',
[mc.ISIG_MOTOR13_PLUS] = 'ISIG_MOTOR13_PLUS',
[mc.ISIG_MOTOR14_PLUS] = 'ISIG_MOTOR14_PLUS',
[mc.ISIG_MOTOR15_PLUS] = 'ISIG_MOTOR15_PLUS',
[mc.ISIG_MOTOR16_PLUS] = 'ISIG_MOTOR16_PLUS',
[mc.ISIG_MOTOR17_PLUS] = 'ISIG_MOTOR17_PLUS',
[mc.ISIG_MOTOR18_PLUS] = 'ISIG_MOTOR18_PLUS',
[mc.ISIG_MOTOR19_PLUS] = 'ISIG_MOTOR19_PLUS',
[mc.ISIG_MOTOR20_PLUS] = 'ISIG_MOTOR20_PLUS',
[mc.ISIG_MOTOR21_PLUS] = 'ISIG_MOTOR21_PLUS',
[mc.ISIG_MOTOR22_PLUS] = 'ISIG_MOTOR22_PLUS',
[mc.ISIG_MOTOR23_PLUS] = 'ISIG_MOTOR23_PLUS',
[mc.ISIG_MOTOR24_PLUS] = 'ISIG_MOTOR24_PLUS',
[mc.ISIG_MOTOR25_PLUS] = 'ISIG_MOTOR25_PLUS',
[mc.ISIG_MOTOR26_PLUS] = 'ISIG_MOTOR26_PLUS',
[mc.ISIG_MOTOR27_PLUS] = 'ISIG_MOTOR27_PLUS',
[mc.ISIG_MOTOR28_PLUS] = 'ISIG_MOTOR28_PLUS',
[mc.ISIG_MOTOR29_PLUS] = 'ISIG_MOTOR29_PLUS',
[mc.ISIG_MOTOR30_PLUS] = 'ISIG_MOTOR30_PLUS',
[mc.ISIG_MOTOR31_PLUS] = 'ISIG_MOTOR31_PLUS',

[mc.ISIG_JOGXN] = 'ISIG_JOGXN',
[mc.ISIG_JOGYN] = 'ISIG_JOGYN',
[mc.ISIG_JOGZN] = 'ISIG_JOGZN',
[mc.ISIG_JOGAN] = 'ISIG_JOGAN',
[mc.ISIG_JOGBN] = 'ISIG_JOGBN',
[mc.ISIG_JOGCN] = 'ISIG_JOGCN',

[mc.ISIG_JOGXP] = 'ISIG_JOGXP',
[mc.ISIG_JOGYP] = 'ISIG_JOGYP',
[mc.ISIG_JOGZP] = 'ISIG_JOGZP',
[mc.ISIG_JOGAP] = 'ISIG_JOGAP',
[mc.ISIG_JOGBP] = 'ISIG_JOGBP',
[mc.ISIG_JOGCP] = 'ISIG_JOGCP',

[mc.ISIG_INDEX] = 'ISIG_INDEX',
[mc.ISIG_TIMING] = 'ISIG_TIMING',
[mc.ISIG_LIMITOVER] = 'ISIG_LIMITOVER',
[mc.ISIG_DIGITIZE] = 'ISIG_DIGITIZE',
[mc.ISIG_EMERGENCY] = 'ISIG_EMERGENCY',

[mc.ISIG_MOTOR_START] = 'ISIG_MOTOR_START',

[mc.ISIG_MOTOR_HOME_START] = 'ISIG_MOTOR_HOME_START',
[mc.ISIG_MOTOR_PLUS_START] = 'ISIG_MOTOR_PLUS_START',
[mc.ISIG_MOTOR_MINUS_START] = 'ISIG_MOTOR_MINUS_START',

[mc.ISIG_MOTOR_HOME_FINISH] = 'ISIG_MOTOR_HOME_FINISH',
[mc.ISIG_MOTOR_PLUS_FINISH] = 'ISIG_MOTOR_PLUS_FINISH',
[mc.ISIG_MOTOR_MINUS_FINISH] = 'ISIG_MOTOR_MINUS_FINISH',

[mc.ISIG_INPUT_START] = 'ISIG_INPUT_START',
[mc.ISIG_INPUT_FINISH] = 'ISIG_INPUT_FINISH',

[mc.ISIG_SPECIAL_START] = 'ISIG_SPECIAL_START',
[mc.ISIG_SPECIAL_FINISH] = 'ISIG_SPECIAL_FINISH',

[mc.ISIG_SPINDLE_AT_ZERO] = 'ISIG_SPINDLE_AT_ZERO',
[mc.ISIG_SPINDLE_AT_SPEED] = 'ISIG_SPINDLE_AT_SPEED',

[mc.ISIG_THCON] = 'ISIG_THCON',
[mc.ISIG_THCUP] = 'ISIG_THCUP',
[mc.ISIG_THCDOWN] = 'ISIG_THCDOWN',

[mc.OSIG_ENABLE0] = 'OSIG_ENABLE0',
[mc.OSIG_ENABLE1] = 'OSIG_ENABLE1',
[mc.OSIG_ENABLE2] = 'OSIG_ENABLE2',
[mc.OSIG_ENABLE3] = 'OSIG_ENABLE3',
[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_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_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_ENABLE30] = 'OSIG_ENABLE30',
[mc.OSIG_ENABLE31] = 'OSIG_ENABLE31',

[mc.OSIG_OUTPUT0] = 'OSIG_OUTPUT0',
[mc.OSIG_OUTPUT1] = 'OSIG_OUTPUT1',
[mc.OSIG_OUTPUT2] = 'OSIG_OUTPUT2',
[mc.OSIG_OUTPUT3] = 'OSIG_OUTPUT3',
[mc.OSIG_OUTPUT4] = 'OSIG_OUTPUT4',
[mc.OSIG_OUTPUT5] = 'OSIG_OUTPUT5',
[mc.OSIG_OUTPUT6] = 'OSIG_OUTPUT6',
[mc.OSIG_OUTPUT7] = 'OSIG_OUTPUT7',
[mc.OSIG_OUTPUT8] = 'OSIG_OUTPUT8',
[mc.OSIG_OUTPUT9] = 'OSIG_OUTPUT9',
[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_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_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_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_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_OUTPUT60] = 'OSIG_OUTPUT60',
[mc.OSIG_OUTPUT61] = 'OSIG_OUTPUT61',
[mc.OSIG_OUTPUT62] = 'OSIG_OUTPUT62',
[mc.OSIG_OUTPUT63] = 'OSIG_OUTPUT63',

[mc.OSIG_XHOME] = 'OSIG_XHOME',
[mc.OSIG_YHOME] = 'OSIG_YHOME',
[mc.OSIG_ZHOME] = 'OSIG_ZHOME',
[mc.OSIG_AHOME] = 'OSIG_AHOME',
[mc.OSIG_BHOME] = 'OSIG_BHOME',
[mc.OSIG_CHOME] = 'OSIG_CHOME',

[mc.OSIG_HOMED_X] = 'OSIG_HOMED_X',
[mc.OSIG_HOMED_Y] = 'OSIG_HOMED_Y',
[mc.OSIG_HOMED_Z] = 'OSIG_HOMED_Z',
[mc.OSIG_HOMED_A] = 'OSIG_HOMED_A',
[mc.OSIG_HOMED_B] = 'OSIG_HOMED_B',
[mc.OSIG_HOMED_C] = 'OSIG_HOMED_C',

[mc.OSIG_XLIMITMINUS] = 'OSIG_XLIMITMINUS',
[mc.OSIG_YLIMITMINUS] = 'OSIG_YLIMITMINUS',
[mc.OSIG_ZLIMITMINUS] = 'OSIG_ZLIMITMINUS',
[mc.OSIG_ALIMITMINUS] = 'OSIG_ALIMITMINUS',
[mc.OSIG_BLIMITMINUS] = 'OSIG_BLIMITMINUS',
[mc.OSIG_CLIMITMINUS] = 'OSIG_CLIMITMINUS',

[mc.OSIG_XLIMITPLUS] = 'OSIG_XLIMITPLUS',
[mc.OSIG_YLIMITPLUS] = 'OSIG_YLIMITPLUS',
[mc.OSIG_ZLIMITPLUS] = 'OSIG_ZLIMITPLUS',
[mc.OSIG_ALIMITPLUS] = 'OSIG_ALIMITPLUS',
[mc.OSIG_BLIMITPLUS] = 'OSIG_BLIMITPLUS',
[mc.OSIG_CLIMITPLUS] = 'OSIG_CLIMITPLUS',

[mc.OSIG_FEEDHOLD] = 'OSIG_FEEDHOLD',
[mc.OSIG_JOG_INC] = 'OSIG_JOG_INC',
[mc.OSIG_JOG_MPG] = 'OSIG_JOG_MPG',
[mc.OSIG_JOG_CONT] = 'OSIG_JOG_CONT',
[mc.OSIG_JOG_ENABLED] = 'OSIG_JOG_ENABLED',

[mc.OSIG_MACHINE_CORD] = 'OSIG_MACHINE_CORD',
[mc.OSIG_MACHINE_ENABLED] = 'OSIG_MACHINE_ENABLED',

[mc.OSIG_AXIS_SWITCH_START] = 'OSIG_AXIS_SWITCH_START',
[mc.OSIG_AXIS_SWITCH_FINISH] = 'OSIG_AXIS_SWITCH_FINISH',

[mc.OSIG_OUTPUT_START] = 'OSIG_OUTPUT_START',
[mc.OSIG_OUTPUT_FINISH] = 'OSIG_OUTPUT_FINISH',

[mc.OSIG_MISC_START] = 'OSIG_MISC_START',
[mc.OSIG_MISC_FINISH] = 'OSIG_MISC_FINISH',

[mc.OSIG_ENABLE_START] = 'OSIG_ENABLE_START',
[mc.OSIG_ENABLE_FINISH] = 'OSIG_ENABLE_FINISH',

[mc.OSIG_SPINDLEON] = 'OSIG_SPINDLEON',
[mc.OSIG_SPINDLEFWD] = 'OSIG_SPINDLEFWD',
[mc.OSIG_SPINDLEREV] = 'OSIG_SPINDLEREV',

[mc.OSIG_MISTON] = 'OSIG_MISTON',
[mc.OSIG_COOLANTON] = 'OSIG_COOLANTON',

[mc.OSIG_CHARGE] = 'OSIG_CHARGE',
[mc.OSIG_CHARGE2] = 'OSIG_CHARGE2',

[mc.OSIG_LIMITOVER] = 'OSIG_LIMITOVER',
[mc.OSIG_OPT_STOP] = 'OSIG_OPT_STOP',
[mc.OSIG_BLOCK_DELETE] = 'OSIG_BLOCK_DELETE',
[mc.OSIG_TOOL_CHANGE] = 'OSIG_TOOL_CHANGE',
[mc.OSIG_TP_MOUSE_DN] = 'OSIG_TP_MOUSE_DN',
[mc.OSIG_CURRENTHILOW] = 'OSIG_CURRENTHILOW',
[mc.OSIG_DIGTRIGGER] = 'OSIG_DIGTRIGGER',
[mc.OSIG_DIST_TOGO] = 'OSIG_DIST_TOGO',
[mc.OSIG_DWELL] = 'OSIG_DWELL',
[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.SIG_TYPE_NONE] = 'SIG_TYPE_NONE',
[mc.SIG_TYPE_INPUT] = 'SIG_TYPE_INPUT',
[mc.SIG_TYPE_OUTPUT] = 'SIG_TYPE_OUTPUT',

[mc.MSG_SIG_CHANGED] = 'MSG_SIG_CHANGED',
}

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

this is the startup and a gcode file run
Though did just notice that the M30 does not turn off the spindle
Update: found it is possible to create a M30 macro and solve that issue.  ;)

Code: [Select]
State - SIG_TYPE_OUTPUT = 0
State - ISIG_INPUT2 = 0
State - ISIG_INPUT3 = 0
State - ISIG_INPUT4 = 0
State - ISIG_INPUT5 = 0
State - ISIG_INPUT6 = 0
State - ISIG_INPUT7 = 0
State - ISIG_INPUT8 = 0
State - ISIG_INPUT13 = 0
State - ISIG_INPUT14 = 0
State - ISIG_INPUT15 = 0
State - OSIG_RUNNING_GCODE = 0
State - OSIG_MACHINE_ENABLED = 0
State - OSIG_MACHINE_ENABLED = 1
Do Cycle Start
State - OSIG_RUNNING_GCODE = 1  
State - OSIG_RUNNING_GCODE = 0
« Last Edit: July 23, 2014, 11:31:17 AM by Ya-Nvr-No »

Offline TimGS

*
  •  108 108
    • View Profile
Re: Signal Scripts
« Reply #25 on: May 06, 2015, 10:56:51 AM »
Could you explain what is meant by the [] = assignment?  Thank You

Offline TimGS

*
  •  108 108
    • View Profile
Re: Signal Scripts
« Reply #26 on: May 06, 2015, 11:17:19 AM »
Found it...

Suppose you want to list all identifiers used in a program source; somehow you need to filter the reserved words out of your listing. Some C programmers could be tempted to represent the set of reserved words as an array of strings, and then to search this array to know whether a given word is in the set. To speed up the search, they could even use a binary tree or a hash table to represent the set.

http://www.lua.org/pil/11.5.html

In Lua, an efficient and simple way to represent such sets is to put the set elements as indices in a table. Then, instead of searching the table for a given element, you just index the table and test whether the result is nil or not. In our example, we could write the next code:
    reserved = {
      ["while"] = true,     ["end"] = true,
      ["function"] = true,  ["local"] = true,