----------------------------------------------------------------------------------------------------- -- Signal Tower - V1 2018-12-11 ----------------------------------------------------------------------------------------------------- local Fast_flash_rate = 1 -- 100ms local Slow_flash_rate = 10 -- 1000ms local Green_lamp = mc.mcIoGetHandle(inst, "CSMIO-IP/Out.4") local Yellow_lamp = mc.mcIoGetHandle(inst, "CSMIO-IP/Out.2") local Red_lamp = mc.mcIoGetHandle(inst, "CSMIO-IP/Out.3") local hreg = mc.mcRegGetHandle(inst, "core/inst/State") local State = mc.mcRegGetValue(hreg) Han = mc.mcSignalGetHandle(inst, mc.ISIG_EMERGENCY) local EMERGENCY = mc.mcSignalGetState(Han) local Han = mc.mcSignalGetHandle(inst, mc.OSIG_MACHINE_ENABLED) local MACHINE_ENABLED = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_RUNNING_GCODE) local RUNNING_GCODE = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_FEEDHOLD) local FEEDHOLD = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_DWELL) local DWELL = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_TOOL_CHANGE) local TOOL_CHANGE = mc.mcSignalGetState(Han) local JOG_MPG = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_HOMED_X) local HOMED_X = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_HOMED_Y) local HOMED_Y = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_HOMED_Z) local HOMED_Z = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_HOMED_A) local HOMED_A = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_HOMED_B) local HOMED_B = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_HOMED_C) local HOMED_C = mc.mcSignalGetState(Han) local tick_1 = testcount % (Fast_flash_rate * 2) local Fast_flash = false if (tick_1 >= Fast_flash_rate) then Fast_flash = true end local tick_2 = testcount % (Slow_flash_rate * 2) local Slow_flash = false if (tick_2 >= Slow_flash_rate) then Slow_flash = true end if (EMERGENCY == 0) then if (MACHINE_ENABLED == 1) then -- Green lamp -------------------------------------------- if (TOOL_CHANGE == 1) then -- Toolchange mc.mcIoSetState(Green_lamp, Slow_flash) elseif (RUNNING_GCODE == 1 ) then -- Running Gcode mc.mcIoSetState(Green_lamp, 1) elseif (FeedRate > 0) then -- Axes in motion (Jog / MPG / Homing) mc.mcIoSetState(Green_lamp, Fast_flash) else mc.mcIoSetState(Green_lamp, 0) end -- Yellow lamp -------------------------------------------- if (HOMED_X == 0 or HOMED_Z == 0) then -- Unreferenced mc.mcIoSetState(Yellow_lamp, Fast_flash) elseif (DWELL == 1) then -- Dwell - G04 mc.mcIoSetState(Yellow_lamp, Slow_flash) elseif (FEEDHOLD == 1) then -- Feedhold mc.mcIoSetState(Yellow_lamp, 1) else mc.mcIoSetState(Yellow_lamp, 0) end -- Red lamp ----------------------------------------------- if (State == 0) then -- Idle mc.mcIoSetState(Red_lamp, 1) else mc.mcIoSetState(Red_lamp, 0) end else mc.mcIoSetState(Green_lamp, 0) -- Not enabled mc.mcIoSetState(Yellow_lamp, 0) mc.mcIoSetState(Red_lamp, Slow_flash) end else mc.mcIoSetState(Green_lamp, 0) -- Emergency mc.mcIoSetState(Yellow_lamp, 0) mc.mcIoSetState(Red_lamp, Fast_flash) end Han = mc.mcSignalGetHandle(inst, mc.OSIG_TOOL_CHANGE) local TOOL_CHANGE = mc.mcSignalGetState(Han) local JOG_MPG = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_HOMED_X) local HOMED_X = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_HOMED_Y) local HOMED_Y = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_HOMED_Z) local HOMED_Z = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_HOMED_A) local HOMED_A = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_HOMED_B) local HOMED_B = mc.mcSignalGetState(Han) Han = mc.mcSignalGetHandle(inst, mc.OSIG_HOMED_C) local HOMED_C = mc.mcSignalGetState(Han) local tick_1 = testcount % (Fast_flash_rate * 2) local Fast_flash = false if (tick_1 >= Fast_flash_rate) then Fast_flash = true end local tick_2 = testcount % (Slow_flash_rate * 2) local Slow_flash = false if (tick_2 >= Slow_flash_rate) then Slow_flash = true end if (EMERGENCY == 0) then if (MACHINE_ENABLED == 1) then -- Green lamp -------------------------------------------- if (TOOL_CHANGE == 1) then -- Toolchange mc.mcIoSetState(Green_lamp, Slow_flash) elseif (RUNNING_GCODE == 1 ) then -- Running Gcode mc.mcIoSetState(Green_lamp, 1) elseif (FeedRate > 0) then -- Axes in motion (Jog / MPG / Homing) mc.mcIoSetState(Green_lamp, Fast_flash) else mc.mcIoSetState(Green_lamp, 0) end -- Yellow lamp -------------------------------------------- if (HOMED_X == 0 or HOMED_Z == 0) then -- Unreferenced mc.mcIoSetState(Yellow_lamp, Fast_flash) elseif (DWELL == 1) then -- Dwell - G04 mc.mcIoSetState(Yellow_lamp, Slow_flash) elseif (FEEDHOLD == 1) then -- Feedhold mc.mcIoSetState(Yellow_lamp, 1) else mc.mcIoSetState(Yellow_lamp, 0) end -- Red lamp ----------------------------------------------- if (State == 0) then -- Idle mc.mcIoSetState(Red_lamp, 1) else mc.mcIoSetState(Red_lamp, 0) end else mc.mcIoSetState(Green_lamp, 0) -- Not enabled mc.mcIoSetState(Yellow_lamp, 0) mc.mcIoSetState(Red_lamp, Slow_flash) end else mc.mcIoSetState(Green_lamp, 0) -- Emergency mc.mcIoSetState(Yellow_lamp, 0) mc.mcIoSetState(Red_lamp, Fast_flash) end