Import LinuxCNC source tree

This commit is contained in:
Wang Dequan
2026-08-20 06:17:39 +08:00
commit 2c814634c3
9429 changed files with 10556013 additions and 0 deletions

24
configs/common/client.nml Normal file
View File

@@ -0,0 +1,24 @@
#
# Use this NML config on the computer running the GUI in a networked emc2
# system. The host IP address should be changed to point to the computer
# that is running the realtime code. Change the NML_FILE in emc.ini to
# client.nml and (after the server side is running) run the GUI with:
#
# tcl/tkemc.tcl -ini emc.ini
#
# Note: tkemc.tcl does not need to be run as 'root'.
# Buffers
# Name Type Host size neut? (old) buffer# MP ---
# Top-level buffers to EMC
B emcCommand SHMEM 192.168.0.4 8192 0 0 1 16 1001 TCP=5005 xdr queue confirm_write serial
B emcStatus SHMEM 192.168.0.4 10240 0 0 2 16 1002 TCP=5005 xdr
B emcError SHMEM 192.168.0.4 8192 0 0 3 16 1003 TCP=5005 xdr queue
# Processes
# Name Buffer Type Host Ops server? timeout master? cnum
P xemc emcCommand REMOTE 192.168.0.4 W 0 10.0 0 10
P xemc emcStatus REMOTE 192.168.0.4 R 0 10.0 0 10
P xemc emcError REMOTE 192.168.0.4 R 0 10.0 0 10

View File

@@ -0,0 +1,114 @@
_FILES_CLASSICLADDER
_FILE-symbols.csv
#VER=1.0
_/FILE-symbols.csv
_FILE-modbusioconf.csv
#VER=1.0
_/FILE-modbusioconf.csv
_FILE-com_params.txt
MODBUS_MASTER_SERIAL_PORT=
MODBUS_MASTER_SERIAL_SPEED=9600
MODBUS_ELEMENT_OFFSET=0
MODBUS_MASTER_SERIAL_USE_RTS_TO_SEND=0
MODBUS_MASTER_TIME_INTER_FRAME=100
MODBUS_MASTER_TIME_OUT_RECEIPT=500
MODBUS_MASTER_TIME_AFTER_TRANSMIT=0
MODBUS_DEBUG_LEVEL=0
MODBUS_MAP_COIL_READ=0
MODBUS_MAP_COIL_WRITE=0
MODBUS_MAP_INPUT=0
MODBUS_MAP_HOLDING=0
MODBUS_MAP_REGISTER_READ=0
MODBUS_MAP_REGISTER_WRITE=0
_/FILE-com_params.txt
_FILE-timers_iec.csv
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
_/FILE-timers_iec.csv
_FILE-timers.csv
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
_/FILE-timers.csv
_FILE-counters.csv
0
0
0
0
0
0
0
0
0
0
_/FILE-counters.csv
_FILE-sections.csv
#VER=1.0
#NAME000=Prog1
000,0,-1,0,0,0
_/FILE-sections.csv
_FILE-arithmetic_expressions.csv
#VER=2.0
_/FILE-arithmetic_expressions.csv
_FILE-rung_0.csv
#VER=2.0
#LABEL=
#COMMENT=
#PREVRUNG=0
#NEXTRUNG=0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
_/FILE-rung_0.csv
_FILE-ioconf.csv
#VER=1.0
_/FILE-ioconf.csv
_FILE-monostables.csv
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
_/FILE-monostables.csv
_FILE-sequential.csv
#VER=1.0
_/FILE-sequential.csv
_FILE-general.txt
PERIODIC_REFRESH=50
SIZE_NBR_RUNGS=100
SIZE_NBR_BITS=500
SIZE_NBR_WORDS=100
SIZE_NBR_TIMERS=10
SIZE_NBR_MONOSTABLES=10
SIZE_NBR_COUNTERS=10
SIZE_NBR_TIMERS_IEC=10
SIZE_NBR_PHYS_INPUTS=15
SIZE_NBR_PHYS_OUTPUTS=15
SIZE_NBR_ARITHM_EXPR=100
SIZE_NBR_SECTIONS=10
SIZE_NBR_SYMBOLS=100
_/FILE-general.txt
_/FILES_CLASSICLADDER

View File

@@ -0,0 +1,167 @@
_FILES_CLASSICLADDER
_FILE-rung_1.csv
#VER=2.0
#LABEL=Rung 1
#COMMENT=Stepper Estop Chain
#PREVRUNG=0
#NEXTRUNG=2
0-0-50/0 , 1-0-50/0 , 9-0-50/0 , 9-0-50/1 , 9-0-0/0 , 9-0-0/0 , 9-0-60/0 , 9-0-0/0 , 9-0-0/0 , 50-0-60/0
0-0-0/0 , 2-0-50/1 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-50/2 , 9-0-0/0 , 9-0-0/0 , 0-1-60/1
0-0-50/0 , 1-0-50/0 , 2-0-50/1 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/1 , 9-0-0/0 , 0-1-60/1
9-0-0/0 , 1-0-50/0 , 2-0-50/1 , 1-0-60/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 0-1-0/0
0-0-60/1 , 0-0-0/0 , 0-0-0/0 , 1-1-50/2 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-60/6
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
_/FILE-rung_1.csv
_FILE-symbols.csv
#VER=1.0
%I0,GUI-E,
%I1,EXT-E,
%I2,E-RESET,
%I3,Lube_on,
%I4,sensor,
%I5,I5,
%I6,I6,
%I7,I7,
%I8,I8,
%I9, ,
%Q0,EMC-E,
%Q1,toggle,
%Q2,Lube_low,
%Q3,Q3,
%Q4,Q4,
%Q5,Q5,
%Q6,Q6,
%Q7,Q7,
%Q8,Q8,
%Q9,Q9,
%T0,Time-on,Time lube pump is on
%T1,Time-off,Time lube pump is off
%T2,Time-warn,Time before low lube warning
%B0,reset,reset off timer
_/FILE-symbols.csv
_FILE-rung_2.csv
#VER=2.0
#LABEL=
#COMMENT=Intermittent Lube
#PREVRUNG=1
#NEXTRUNG=-1
9-0-0/0 , 1-0-50/3 , 2-0-0/0 , 99-0-0/0 , 10-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 53-0-60/1
0-0-0/0 , 0-0-0/0 , 0-1-0/0 , 99-1-0/0 , 99-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 52-0-60/1
0-0-0/0 , 0-0-0/0 , 2-1-60/1 , 9-0-0/0 , 9-0-0/0 , 99-0-0/0 , 10-0-0/1 , 0-0-60/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 99-1-0/0 , 99-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-0/0
0-0-0/0 , 0-0-0/0 , 1-1-50/4 , 99-0-0/0 , 10-0-0/2 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-60/9
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 99-1-0/0 , 99-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-60/2
_/FILE-rung_2.csv
_FILE-modbusioconf.csv
#VER=1.0
_/FILE-modbusioconf.csv
_FILE-com_params.txt
MODBUS_MASTER_SERIAL_PORT=
MODBUS_MASTER_SERIAL_SPEED=9600
MODBUS_MASTER_SERIAL_DATABITS=8
MODBUS_MASTER_SERIAL_STOPBITS=1
MODBUS_MASTER_SERIAL_PARITY=0
MODBUS_ELEMENT_OFFSET=0
MODBUS_MASTER_SERIAL_USE_RTS_TO_SEND=0
MODBUS_MASTER_TIME_INTER_FRAME=100
MODBUS_MASTER_TIME_OUT_RECEIPT=500
MODBUS_MASTER_TIME_AFTER_TRANSMIT=0
MODBUS_DEBUG_LEVEL=0
MODBUS_MAP_COIL_READ=0
MODBUS_MAP_COIL_WRITE=0
MODBUS_MAP_INPUT=0
MODBUS_MAP_HOLDING=0
MODBUS_MAP_REGISTER_READ=0
MODBUS_MAP_REGISTER_WRITE=0
_/FILE-com_params.txt
_FILE-timers_iec.csv
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
_/FILE-timers_iec.csv
_FILE-timers.csv
1,10
1,20
0,20
2,1
2,5
1,0
1,0
1,0
1,0
1,0
_/FILE-timers.csv
_FILE-counters.csv
0
0
0
0
0
0
0
0
0
0
_/FILE-counters.csv
_FILE-sections.csv
#VER=1.0
#NAME000=Prog1
000,0,-1,1,2,0
_/FILE-sections.csv
_FILE-arithmetic_expressions.csv
#VER=2.0
_/FILE-arithmetic_expressions.csv
_FILE-rung_0.csv
#VER=2.0
#LABEL=
#COMMENT=
#PREVRUNG=0
#NEXTRUNG=1
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
_/FILE-rung_0.csv
_FILE-ioconf.csv
#VER=1.0
_/FILE-ioconf.csv
_FILE-monostables.csv
1,10
1,20
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
_/FILE-monostables.csv
_FILE-sequential.csv
#VER=1.0
_/FILE-sequential.csv
_FILE-general.txt
PERIODIC_REFRESH=100
SIZE_NBR_RUNGS=100
SIZE_NBR_BITS=500
SIZE_NBR_WORDS=100
SIZE_NBR_TIMERS=10
SIZE_NBR_MONOSTABLES=10
SIZE_NBR_COUNTERS=10
SIZE_NBR_TIMERS_IEC=10
SIZE_NBR_PHYS_INPUTS=15
SIZE_NBR_PHYS_OUTPUTS=25
SIZE_NBR_ARITHM_EXPR=100
SIZE_NBR_SECTIONS=10
SIZE_NBR_SYMBOLS=100
_/FILE-general.txt
_/FILES_CLASSICLADDER

View File

@@ -0,0 +1,119 @@
_FILES_CLASSICLADDER
_FILE-symbols.csv
#VER=1.0
%E0,Mod_Error,modbus com error
%I0,EXT_error,
%E1,INT_error,User error flag
_/FILE-symbols.csv
_FILE-modbusioconf.csv
#VER=1.0
1,0,1,1,0,0
2,1,1,5,0,0
_/FILE-modbusioconf.csv
_FILE-com_params.txt
MODBUS_MASTER_SERIAL_PORT=/dev/ttyS0
MODBUS_MASTER_SERIAL_SPEED=115200
MODBUS_ELEMENT_OFFSET=1
MODBUS_MASTER_SERIAL_USE_RTS_TO_SEND=0
MODBUS_MASTER_TIME_INTER_FRAME=200
MODBUS_MASTER_TIME_OUT_RECEIPT=500
MODBUS_MASTER_TIME_AFTER_TRANSMIT=0
MODBUS_DEBUG_LEVEL=1
MODBUS_MAP_COIL_READ=0
MODBUS_MAP_COIL_WRITE=0
MODBUS_MAP_INPUT=0
MODBUS_MAP_HOLDING=0
MODBUS_MAP_REGISTER_READ=0
MODBUS_MAP_REGISTER_WRITE=0
_/FILE-com_params.txt
_FILE-timers_iec.csv
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
_/FILE-timers_iec.csv
_FILE-timers.csv
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
_/FILE-timers.csv
_FILE-counters.csv
0
0
0
0
0
0
0
0
0
0
_/FILE-counters.csv
_FILE-sections.csv
#VER=1.0
#NAME000=Prog1
000,0,-1,0,0,0
_/FILE-sections.csv
_FILE-arithmetic_expressions.csv
#VER=2.0
_/FILE-arithmetic_expressions.csv
_FILE-rung_0.csv
#VER=2.0
#LABEL=
#COMMENT=
#PREVRUNG=0
#NEXTRUNG=1
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
1-0-50/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-70/1
1-0-70/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
_/FILE-rung_0.csv
_FILE-ioconf.csv
#VER=1.0
_/FILE-ioconf.csv
_FILE-monostables.csv
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
_/FILE-monostables.csv
_FILE-sequential.csv
#VER=1.0
_/FILE-sequential.csv
_FILE-general.txt
PERIODIC_REFRESH=50
SIZE_NBR_RUNGS=100
SIZE_NBR_BITS=500
SIZE_NBR_WORDS=100
SIZE_NBR_TIMERS=10
SIZE_NBR_MONOSTABLES=10
SIZE_NBR_COUNTERS=10
SIZE_NBR_TIMERS_IEC=10
SIZE_NBR_PHYS_INPUTS=15
SIZE_NBR_PHYS_OUTPUTS=15
SIZE_NBR_ARITHM_EXPR=100
SIZE_NBR_SECTIONS=10
SIZE_NBR_SYMBOLS=100
_/FILE-general.txt
_/FILES_CLASSICLADDER

View File

@@ -0,0 +1,290 @@
_FILES_CLASSICLADDER
_FILE-sequential.csv
#VER=1.0
_/FILE-sequential.csv
_FILE-timers_iec.csv
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
1,0,0
_/FILE-timers_iec.csv
_FILE-modbusioconf.csv
#VER=1.0
_/FILE-modbusioconf.csv
_FILE-timers.csv
2,5
1,0
2,5
1,0
1,0
1,0
1,0
1,0
1,0
1,0
_/FILE-timers.csv
_FILE-symbols.csv
#VER=1.0
%B0,step_1,
%B1,step_2,
%B2,%B2,
%B3,%B3,
%B4,%B4,
%B5,%B5,
%B6,%B6,
%B7,%B7,
%B8,%B8,
%B9,%B9,
%M0,cmd1_hold,
%M1,cmd2-hold,
%M2,cmd3-hold,
%W0,%W0,
%W1,%W1,
%W2,%W2,
%W3,%W3,
%W4,%W4,
%W5,%W5,
%W6,%W6,
%W7,%W7,
%W8,%W8,
%W9,%W9,
%W10,%W10,
%I0,touchoff,
%I1,mdi_mode,
%I2,in_posit.,
%I3,%I3,
%I4,%I4,
%I5,%I5,
%I6,%I6,
%I7,%I7,
%I8,%I8,
%I9,%I9,
%I10,%I10,
%I11,%I11,
%I12,%I12,
%I13,%I13,
%I14,%I14,
%Q0,MDI_cmd1,
%Q1,MDI_cmd2,
%Q2,MDI_cmd3,
%Q3,%Q3,
%Q4,%Q4,
%Q5,%Q5,
%Q6,%Q6,
%Q7,%Q7,
%Q8,%Q8,
%Q9,%Q9,
%Q10,%Q10,
%Q11,%Q11,
%Q12,%Q12,
%Q13,%Q13,
%Q14,%Q14,
%B10,%B10,
%B11,%B11,
%B12,%B12,
%B13,%B13,
%B14,%B14,
%B15,%B15,
%B16,%B16,
%B17,%B17,
%B18,%B18,
%B19,%B19,
%W11,%W11,
%W12,%W12,
%W13,%W13,
%W14,%W14,
%W15,%W15,
%W16,%W16,
%W17,%W17,
%W18,%W18,
%W19,%W19,
%IW0,%IW0,
%IW1,%IW1,
%IW2,%IW2,
%IW3,%IW3,
%IW4,%IW4,
%IW5,%IW5,
%IW6,%IW6,
%IW7,%IW7,
%IW8,%IW8,
%IW9,%IW9,
%QW0,%QW0,
%QW1,%QW1,
%QW2,%QW2,
%QW3,%QW3,
%QW4,%QW4,
%QW5,%QW5,
%QW6,%QW6,
%QW7,%QW7,
%QW8,%QW8,
%QW9,%QW9,
%IF0,%IF0,
%IF1,%IF1,
%IF2,%IF2,
%IF3,%IF3,
%IF4,%IF4,
%IF5,%IF5,
%IF6,%IF6,
%IF7,%IF7,
%IF8,%IF8,
%IF9,%IF9,
%QF0,%QF0,
%QF1,%QF1,
%QF2,%QF2,
%QF3,%QF3,
%QF4,%QF4,
%QF5,%QF5,
%QF6,%QF6,
%QF7,%QF7,
%QF8,%QF8,
%QF9,%QF9,
%T0,cmd3-wait,
%T1,%T1,Old Timer
%T2,%T2,Old Timer
%T3,%T3,Old Timer
%T4,%T4,Old Timer
%T5,%T5,Old Timer
%T6,%T6,Old Timer
%T7,%T7,Old Timer
%T8,%T8,Old Timer
%T9,%T9,Old Timer
%TM0,%TM0,New Timer
%TM1,%TM1,New Timer
%TM2,%TM2,New Timer
%TM3,%TM3,New Timer
%TM4,%TM4,New Timer
%TM5,%TM5,New Timer
%TM6,%TM6,New Timer
%TM7,%TM7,New Timer
%TM8,%TM8,New Timer
%TM9,%TM9,New Timer
%M3,%M3,One-shot
%M4,%M4,One-shot
%M5,%M5,One-shot
%M6,%M6,One-shot
%M7,%M7,One-shot
%M8,%M8,One-shot
%M9,%M9,One-shot
%C0,%C0,Counter
%C1,%C1,Counter
%C2,%C2,Counter
%C3,%C3,Counter
%C4,%C4,Counter
%C5,%C5,Counter
%C6,%C6,Counter
%C7,%C7,Counter
%C8,%C8,Counter
%C9,%C9,Counter
%E0,%E0,Error Flag Bit
%E1,%E1,Error Flag Bit
%E2,%E2,Error Flag Bit
%E3,%E3,Error Flag Bit
%E4,%E4,Error Flag Bit
%E5,%E5,Error Flag Bit
%E6,%E6,Error Flag Bit
%E7,%E7,Error Flag Bit
%E8,%E8,Error Flag Bit
%E9,%E9,Error Flag Bit
_/FILE-symbols.csv
_FILE-ioconf.csv
#VER=1.0
_/FILE-ioconf.csv
_FILE-monostables.csv
2,5
2,5
2,5
2,5
1,0
1,0
1,0
1,0
1,0
1,0
_/FILE-monostables.csv
_FILE-general.txt
PERIODIC_REFRESH=1
SIZE_NBR_RUNGS=100
SIZE_NBR_BITS=20
SIZE_NBR_WORDS=20
SIZE_NBR_TIMERS=10
SIZE_NBR_MONOSTABLES=10
SIZE_NBR_COUNTERS=10
SIZE_NBR_TIMERS_IEC=10
SIZE_NBR_PHYS_INPUTS=15
SIZE_NBR_PHYS_OUTPUTS=15
SIZE_NBR_ARITHM_EXPR=100
SIZE_NBR_SECTIONS=10
SIZE_NBR_SYMBOLS=160
_/FILE-general.txt
_FILE-rung_0.csv
#VER=2.0
#LABEL=
#COMMENT=
#PREVRUNG=0
#NEXTRUNG=1
1-0-50/0 , 1-0-50/1 , 2-0-0/0 , 2-0-0/1 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 52-0-0/0
1-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 99-0-0/0 , 11-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-60/0
0-0-0/0 , 0-0-50/2 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 99-0-0/0 , 99-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/1
1-0-0/0 , 3-0-50/2 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 53-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 52-1-0/1
_/FILE-rung_0.csv
_FILE-rung_1.csv
#VER=2.0
#LABEL=
#COMMENT=
#PREVRUNG=0
#NEXTRUNG=-1
1-0-0/1 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 99-0-0/0 , 11-0-0/1 , 9-0-0/0 , 9-0-0/0 , 50-0-60/1
0-0-0/0 , 0-0-0/0 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 99-0-0/0 , 99-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-60/2
0-0-0/0 , 0-0-0/0 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/1
0-0-0/0 , 0-0-0/0 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 9-1-0/0 , 99-0-0/0 , 10-0-0/0 , 9-0-0/0 , 99-0-0/0 , 11-0-0/2 , 9-0-0/0 , 50-0-60/2
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 99-1-0/0 , 99-0-0/0 , 0-0-0/0 , 99-0-0/0 , 99-0-0/0 , 0-0-0/0 , 53-1-0/1
_/FILE-rung_1.csv
_FILE-arithmetic_expressions.csv
#VER=2.0
_/FILE-arithmetic_expressions.csv
_FILE-sections.csv
#VER=1.0
#NAME000=Prog1
000,0,-1,0,1,0
_/FILE-sections.csv
_FILE-counters.csv
0
0
0
0
0
0
0
0
0
0
_/FILE-counters.csv
_FILE-com_params.txt
MODBUS_MASTER_SERIAL_PORT=
MODBUS_MASTER_SERIAL_SPEED=9600
MODBUS_MASTER_SERIAL_DATABITS=8
MODBUS_MASTER_SERIAL_STOPBITS=1
MODBUS_MASTER_SERIAL_PARITY=0
MODBUS_ELEMENT_OFFSET=0
MODBUS_MASTER_SERIAL_USE_RTS_TO_SEND=0
MODBUS_MASTER_TIME_INTER_FRAME=100
MODBUS_MASTER_TIME_OUT_RECEIPT=500
MODBUS_MASTER_TIME_AFTER_TRANSMIT=0
MODBUS_DEBUG_LEVEL=0
MODBUS_MAP_COIL_READ=0
MODBUS_MAP_COIL_WRITE=0
MODBUS_MAP_INPUT=0
MODBUS_MAP_HOLDING=0
MODBUS_MAP_REGISTER_READ=0
MODBUS_MAP_REGISTER_WRITE=0
_/FILE-com_params.txt
_/FILES_CLASSICLADDER

View File

@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<pyvcp>
<!--
Include your PyVCP panel here.
The contents of this file will not be overwritten when you run stepconf again.
-->
</pyvcp>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,361 @@
<pyvcp>
<hbox>
<labelframe text="Inputs">
<hbox>
<label>
<text>""</text>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.2"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 2"</text>
<halpin>"led_text.2"</halpin>
<disable_pin>True</disable_pin>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.3"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 3"</text>
<halpin>"led_text.3"</halpin>
<disable_pin>True</disable_pin>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.4"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 4"</text>
<halpin>"led_text.4"</halpin>
<disable_pin>True</disable_pin>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.5"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 5"</text>
<halpin>"led_text.5"</halpin>
<disable_pin>True</disable_pin>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.6"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 6"</text>
<halpin>"led_text.6"</halpin>
<disable_pin>True</disable_pin>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.7"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 7"</text>
<halpin>"led_text.7"</halpin>
<disable_pin>True</disable_pin>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.8"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 8"</text>
<halpin>"led_text.8"</halpin>
<disable_pin>True</disable_pin>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.9"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 9"</text>
<halpin>"led_text.9"</halpin>
<disable_pin>True</disable_pin>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.10"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 10"</text>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.11"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 11"</text>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.12"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 12"</text>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.13"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 13"</text>
</label>
</hbox>
<hbox>
<led>
<halpin>"led.15"</halpin>
<disable_pin>True</disable_pin>
</led>
<label>
<text>"Input pin 15"</text>
</label>
</hbox>
</labelframe>
<labelframe text="Outputs">
<hbox>
<label>
<text>"Output pin 1 "</text>
</label>
<button>
<halpin>"button.1"</halpin>
<disable_pin>True</disable_pin>
<text>"On"</text>
</button>
<checkbutton>
<halpin>"checkbutton.1"</halpin>
<text>"Latch"</text>
<font>("Helvetica",8)</font>
</checkbutton>
</hbox>
<hbox>
<label>
<text>"Output pin 2 "</text>
<halpin>"button_text.2"</halpin>
<disable_pin>True</disable_pin>
</label>
<button>
<halpin>"button.2"</halpin>
<disable_pin>True</disable_pin>
<text>"On"</text>
</button>
<checkbutton>
<halpin>"checkbutton.2"</halpin>
<text>"Latch"</text>
<font>("Helvetica",8)</font>
</checkbutton>
</hbox>
<hbox>
<label>
<text>"Output pin 3 "</text>
<halpin>"button_text.3"</halpin>
<disable_pin>True</disable_pin>
</label>
<button>
<halpin>"button.3"</halpin>
<disable_pin>True</disable_pin>
<text>"On"</text>
</button>
<checkbutton>
<halpin>"checkbutton.3"</halpin>
<text>"Latch"</text>
<font>("Helvetica",8)</font>
</checkbutton>
</hbox>
<hbox>
<label>
<text>"Output pin 4 "</text>
<halpin>"button_text.4"</halpin>
<disable_pin>True</disable_pin>
</label>
<button>
<halpin>"button.4"</halpin>
<disable_pin>True</disable_pin>
<text>"On"</text>
</button>
<checkbutton>
<halpin>"checkbutton.4"</halpin>
<text>"Latch"</text>
<font>("Helvetica",8)</font>
</checkbutton>
</hbox>
<hbox>
<label>
<text>"Output pin 5 "</text>
<halpin>"button_text.5"</halpin>
<disable_pin>True</disable_pin>
</label>
<button>
<halpin>"button.5"</halpin>
<disable_pin>True</disable_pin>
<text>"On"</text>
</button>
<checkbutton>
<halpin>"checkbutton.5"</halpin>
<text>"Latch"</text>
<font>("Helvetica",8)</font>
</checkbutton>
</hbox>
<hbox>
<label>
<text>"Output pin 6 "</text>
<halpin>"button_text.6"</halpin>
<disable_pin>True</disable_pin>
</label>
<button>
<halpin>"button.6"</halpin>
<disable_pin>True</disable_pin>
<text>"On"</text>
</button>
<checkbutton>
<halpin>"checkbutton.6"</halpin>
<font>("Helvetica",8)</font>
<text>"Latch"</text>
</checkbutton>
</hbox>
<hbox>
<label>
<text>"Output pin 7 "</text>
<halpin>"button_text.7"</halpin>
<disable_pin>True</disable_pin>
</label>
<button>
<halpin>"button.7"</halpin>
<disable_pin>True</disable_pin>
<text>"On"</text>
</button>
<checkbutton>
<halpin>"checkbutton.7"</halpin>
<font>("Helvetica",8)</font>
<text>"Latch"</text>
</checkbutton>
</hbox>
<hbox>
<label>
<text>"Output pin 8 "</text>
<halpin>"button_text.8"</halpin>
<disable_pin>True</disable_pin>
</label>
<button>
<halpin>"button.8"</halpin>
<disable_pin>True</disable_pin>
<text>"On"</text>
</button>
<checkbutton>
<halpin>"checkbutton.8"</halpin>
<font>("Helvetica",8)</font>
<text>"Latch"</text>
</checkbutton>
</hbox>
<hbox>
<label>
<text>"Output pin 9 "</text>
<halpin>"button_text.9"</halpin>
<disable_pin>True</disable_pin>
</label>
<button>
<halpin>"button.9"</halpin>
<disable_pin>True</disable_pin>
<text>"On"</text>
</button>
<checkbutton>
<halpin>"checkbutton.9"</halpin>
<text>"Latch"</text>
<font>("Helvetica",8)</font>
</checkbutton>
</hbox>
<hbox>
<label>
<text>"Output pin 14"</text>
</label>
<button>
<halpin>"button.14"</halpin>
<disable_pin>True</disable_pin>
<text>"On"</text>
</button>
<checkbutton>
<halpin>"checkbutton.14"</halpin>
<font>("Helvetica",8)</font>
<text>"Latch"</text>
</checkbutton>
</hbox>
<hbox>
<label>
<text>"Output pin 16"</text>
</label>
<button>
<halpin>"button.16"</halpin>
<disable_pin>True</disable_pin>
<text>"On"</text>
</button>
<checkbutton>
<halpin>"checkbutton.16"</halpin>
<font>("Helvetica",8)</font>
<text>"Latch"</text>
</checkbutton>
</hbox>
<hbox>
<label>
<text>"Output pin 17"</text>
</label>
<button>
<halpin>"button.17"</halpin>
<disable_pin>True</disable_pin>
<text>"On"</text>
</button>
<checkbutton>
<halpin>"checkbutton.17"</halpin>
<font>("Helvetica",8)</font>
<text>"Latch"</text>
</checkbutton>
</hbox>
</labelframe>
</hbox>
</pyvcp>

View File

@@ -0,0 +1,31 @@
<?xml version='1.0' encoding='UTF-8'?>
<pyvcp>
<vbox>
<relief>RIDGE</relief>
<bd>6</bd>
<label>
<text>"Spindle Speed:"</text>
<font>("Helvetica",20)</font>
</label>
<bar>
<halpin>"spindle-speed"</halpin>
<max_>3000</max_>
</bar>
<label>
<text>"Spindle-At-Speed:"</text>
<font>("Helvetica",20)</font>
</label>
<hbox>
<label>
<text>" "</text>
<font>("Helvetica",20)</font>
</label>
<led>
<halpin>"spindle-at-speed-led"</halpin>
<size>30</size>
<on_color>"green"</on_color>
<off_color>"red"</off_color>
</led>
</hbox>
</vbox>
</pyvcp>

View File

@@ -0,0 +1,193 @@
<?xml version='1.0' encoding='UTF-8'?>
<pyvcp>
<labelframe text="Signals">
<hbox>
<vbox>
<led>
<halpin>"Led-FloatSwitch"</halpin>
<size>20</size>
<on_color>"blue"</on_color>
<off_color>"grey"</off_color>
</led>
<led>
<halpin>"Led-TorchOn"</halpin>
<size>20</size>
<on_color>"yellow"</on_color>
<off_color>"grey"</off_color>
</led>
<led>
<halpin>"Led-ArcOK"</halpin>
<size>20</size>
<on_color>"green"</on_color>
<off_color>"grey"</off_color>
</led>
<led>
<halpin>"Led-ExtEStop"</halpin>
<size>20</size>
<on_color>"red"</on_color>
<off_color>"grey"</off_color>
</led>
</vbox>
<vbox>
<label text="Float Switch"/>
<label text="Torch On"/>
<label text="Arc OK"/>
<label text="External EStop"/>
</vbox>
</hbox>
</labelframe>
<labelframe text="Adjustments">
<vbox>
<hbox>
<vbox>
<led>
<halpin>"Led-MoveUp"</halpin>
<size>20</size>
<on_color>"green"</on_color>
<off_color>"grey"</off_color>
</led>
<led>
<halpin>"Led-MoveDown"</halpin>
<size>20</size>
<on_color>"green"</on_color>
<off_color>"grey"</off_color>
</led>
</vbox>
<vbox>
<label text="Move UP"/>
<label text="Move Down"/>
</vbox>
</hbox>
<hbox>
<relief>RIDGE</relief>
<bd>1</bd>
<label text="Step Size"/>
<spinbox>
<halpin>"Spin-THCStepSize"</halpin>
<min_>0.01</min_>
<max_>1</max_>
<width>"6"</width>
<resolution>.01</resolution>
<format>"5.2f"</format>
<justify>RIGHT</justify>
</spinbox>
</hbox>
<hbox>
<relief>RIDGE</relief>
<bd>1</bd>
<label text="Travel Height"/>
<spinbox>
<halpin>"Spin-TravelHeight"</halpin>
<min_>1</min_>
<max_>99</max_>
<initval>54</initval>
<width>"3"</width>
<resolution>1</resolution>
<format>"3.0f"</format>
<justify>RIGHT</justify>
</spinbox>
</hbox>
<hbox>
<relief>RIDGE</relief>
<bd>1</bd>
<label text="Sw. Travel"/>
<spinbox>
<halpin>"Spin-SwitchTravel"</halpin>
<min_>-50</min_>
<max_>50</max_>
<initval>2</initval>
<width>"5"</width>
<resolution>.01</resolution>
<format>"5.2f"</format>
<justify>RIGHT</justify>
</spinbox>
</hbox>
</vbox>
</labelframe>
<labelframe text="Piercing">
<vbox>
<vbox>
<hbox>
<relief>RIDGE</relief>
<bd>1</bd>
<label text="Delay Timer"/>
<number>
<halpin>"Num-PierceDelayTimer"</halpin>
<format>"+4.2f"</format>
</number>
</hbox>
<hbox>
<vbox>
<label text="Delay"/>
<label text="Gap"/>
<label text="AutoStart"/>
</vbox>
<vbox>
<spinbox>
<halpin>"Spin-PierceDelay"</halpin>
<min_>0.00</min_>
<max_>10</max_>
<initval>0.01</initval>
<width>"6"</width>
<resolution>.01</resolution>
<format>"5.2f"</format>
<justify>RIGHT</justify>
</spinbox>
<spinbox>
<halpin>"Spin-PierceGap"</halpin>
<min_>0.01</min_>
<max_>10</max_>
<initval>0.5</initval>
<width>"6"</width>
<resolution>.01</resolution>
<format>"5.2f"</format>
<justify>RIGHT</justify>
</spinbox>
<checkbutton>
<halpin>"Check-AutoStart"</halpin>
<initval>1</initval>
<bd>1</bd>
</checkbutton>
</vbox>
</hbox>
</vbox>
</vbox>
</labelframe>
<labelframe text="Corner Height Lock">
<vbox>
<hbox>
<vbox>
<led>
<halpin>"Led-HeightLocked"</halpin>
<size>20</size>
<on_color>"green"</on_color>
<off_color>"grey"</off_color>
</led>
<checkbutton>
<halpin>"Check-CHLEnable"</halpin>
<bd>1</bd>
</checkbutton>
</vbox>
<vbox>
<label text="Locked"/>
<label text="Enable"/>
</vbox>
</hbox>
<vbox>
<relief>RIDGE</relief>
<bd>1</bd>
<label text="Threshold %"/>
<scale>
<halpin>"Scale-CHLThreshold"</halpin>
<min_>10</min_>
<max_>99</max_>
<initval>60</initval>
<resolution>1</resolution>
<orient>HORIZONTAL</orient>
</scale>
</vbox>
</vbox>
</labelframe>
</pyvcp>

View File

@@ -0,0 +1,209 @@
<?xml version='1.0' encoding='UTF-8'?>
<pyvcp>
<vbox>
<relief>RIDGE</relief>
<bd>6</bd>
<labelframe text="Set G92 Origon">
<font>("Helvetica",20)</font>
<hbox>
<label>
<width>10</width>
</label>
<button>
<halpin>"MDI-zerox"</halpin>
<text>" Zero X "</text>
<justify>"right"</justify>
</button>
</hbox>
<hbox>
<label>
<width>10</width>
</label>
<button>
<halpin>"MDI-zeroy"</halpin>
<text>" Zero Y "</text>
</button>
</hbox>
<hbox>
<label>
<width>10</width>
</label>
<button>
<halpin>"MDI-zeroz"</halpin>
<text>" Zero Z "</text>
</button>
</hbox>
<hbox>
<label>
<width>6</width>
</label>
<button>
<halpin>"MDI-clear-offset"</halpin>
<text>" Clear G92 offset "</text>
</button>
</hbox>
</labelframe>
<label>
<width>1</width>
</label>
<labelframe text="Jog">
<font>("Helvetica",20)</font>
<hbox>
<label>
<width>5</width>
</label>
<button>
<halpin>"jog-x+"</halpin>
<text>" X + "</text>
<justify>"right"</justify>
</button>
<label>
<width>5</width>
</label>
<button>
<halpin>"jog-x-"</halpin>
<text>" X - "</text>
<justify>"right"</justify>
</button>
</hbox>
<hbox>
<label>
<width>5</width>
</label>
<button>
<halpin>"jog-y+"</halpin>
<text>" Y + "</text>
</button>
<label>
<width>5</width>
</label>
<button>
<halpin>"jog-y-"</halpin>
<text>" Y - "</text>
</button>
</hbox>
<hbox>
<label>
<width>5</width>
</label>
<button>
<halpin>"jog-z+"</halpin>
<text>" Z + "</text>
</button>
<label>
<width>5</width>
</label>
<button>
<halpin>"jog-z-"</halpin>
<text>" Z - "</text>
</button>
</hbox>
<hbox>
<label>
<width>3</width>
</label>
<label>
<text>"Jog Speed"</text>
</label>
<label>
<width>1</width>
</label>
<spinbox>
<halpin>"jog-speed"</halpin>
<min_>0</min_>
<resolution>.5</resolution>
<format>"2.1f"</format>
<width>5</width>
<font>("Arial",30)</font>
<justify>RIGHT</justify>
<initval>20</initval>
</spinbox>
</hbox>
</labelframe>
<label>
<width>1</width>
</label>
<labelframe text="MDI commands">
<font>("Helvetica",20)</font>
<hbox>
<button>
<halpin>"MDI-z_up"</halpin>
<text>"Goto Z Zero"</text>
</button>
<button>
<halpin>"MDI-reference"</halpin>
<text>"Goto Reference"</text>
</button>
</hbox>
</labelframe>
<label>
<width>1</width>
</label>
<labelframe text="Optional Stop">
<font>("Helvetica",20)</font>
<hbox>
<label>
<width>1</width>
</label>
<button>
<halpin>"ostop-on"</halpin>
<text>" on "</text>
</button>
<label>
<width>5</width>
</label>
<led>
<halpin>"ostop-is-on"</halpin>
<size>20</size>
<on_color>"blue"</on_color>
<off_color>"grey"</off_color>
</led>
<label>
<width>5</width>
</label>
<button>
<halpin>"ostop-off"</halpin>
<text>" off "</text>
</button>
</hbox>
</labelframe>
<label>
<width>1</width>
</label>
<labelframe text="Program Control">
<font>("Helvetica",20)</font>
<hbox>
<vbox>
<button>
<halpin>"pause"</halpin>
<text>"Pause"</text>
<bg>"red"</bg>
</button>
</vbox>
<button>
<halpin>"resume"</halpin>
<text>"Resume"</text>
<bg>"green"</bg>
</button>
<button>
<halpin>"step"</halpin>
<text>"Single block"</text>
<bg>"yellow"</bg>
</button>
<vbox>
</vbox>
</hbox>
</labelframe>
</vbox>
</pyvcp>

View File

@@ -0,0 +1,28 @@
# Note: emcsvr is the master for all NML channels, and therefore is the
# first to start.
# Buffers
# Name Type Host size neut? (old) buffer# MP ---
# Top-level buffers to EMC
B emcCommand SHMEM localhost 8192 0 0 1 16 1001 TCP=5005 xdr queue confirm_write serial
B emcError SHMEM localhost 8192 0 0 3 16 1003 TCP=5005 xdr queue
B emcStatus SHMEM localhost 20480 0 0 2 16 1002 TCP=5005 xdr
# Processes
# Name Buffer Type Host Ops server? timeout master? cnum
P emc emcCommand LOCAL localhost RW 0 1.0 0 0
P emc emcStatus LOCAL localhost W 0 1.0 0 0
P emc emcError LOCAL localhost W 0 1.0 0 0
P emcsvr emcCommand LOCAL localhost W 1 1.0 1 2
P emcsvr emcStatus LOCAL localhost R 1 1.0 1 2
P emcsvr emcError LOCAL localhost R 1 1.0 1 2
P emcsvr default LOCAL localhost RW 1 1.0 1 2
P xemc emcCommand LOCAL localhost W 0 10.0 0 10
P xemc emcStatus LOCAL localhost R 0 10.0 0 10
P xemc emcError LOCAL localhost R 0 10.0 0 10

View File

@@ -0,0 +1,28 @@
# Note: emcsvr is the master for all NML channels, and therefore is the
# first to start.
# Buffers
# Name Type Host size neut? (old) buffer# MP ---
# Top-level buffers to EMC
B emcCommand SHMEM localhost 8192 0 0 1 16 1001 TCP=5005 xdr queue confirm_write serial
B emcError SHMEM localhost 8192 0 0 3 16 1003 TCP=5005 xdr queue
B emcStatus SHMEM localhost 170000 0 0 2 16 1002 TCP=5005 xdr
# Processes
# Name Buffer Type Host Ops server? timeout master? cnum
P emc emcCommand LOCAL localhost RW 0 1.0 0 0
P emc emcStatus LOCAL localhost W 0 1.0 0 0
P emc emcError LOCAL localhost W 0 1.0 0 0
P emcsvr emcCommand LOCAL localhost W 1 1.0 1 2
P emcsvr emcStatus LOCAL localhost R 1 1.0 1 2
P emcsvr emcError LOCAL localhost R 1 1.0 1 2
P emcsvr default LOCAL localhost RW 1 1.0 1 2
P xemc emcCommand LOCAL localhost W 0 10.0 0 10
P xemc emcStatus LOCAL localhost R 0 10.0 0 10
P xemc emcError LOCAL localhost R 0 10.0 0 10

31
configs/common/server.nml Normal file
View File

@@ -0,0 +1,31 @@
#
# Use this NML config on the computer running the realtime parts of emc2
# in a networked system. The host address should point to the computer
# running the GUI (although this is not critical).
# Change the NML_FILE in emc.ini to server.nml.
# Start emc2 normally, and then run the GUI client.
# Buffers
# Name Type Host size neut? (old) buffer# MP ---
# Top-level buffers to EMC
B emcCommand SHMEM localhost 8192 0 0 1 16 1001 TCP=5005 xdr queue confirm_write serial
B emcStatus SHMEM localhost 10240 0 0 2 16 1002 TCP=5005 xdr
B emcError SHMEM localhost 8192 0 0 3 16 1003 TCP=5005 xdr queue
# Processes
# Name Buffer Type Host Ops server? timeout master? cnum
P emc emcCommand LOCAL localhost RW 0 1.0 0 0
P emc emcStatus LOCAL localhost W 0 1.0 0 0
P emc emcError LOCAL localhost W 0 1.0 0 0
P emcsvr emcCommand LOCAL localhost W 1 1.0 1 2
P emcsvr emcStatus LOCAL localhost R 1 1.0 1 2
P emcsvr emcError LOCAL localhost R 1 1.0 1 2
P emcsvr default LOCAL localhost RW 1 1.0 1 2
P xemc emcCommand REMOTE 192.168.0.14 W 0 10.0 0 10
P xemc emcStatus REMOTE 192.168.0.14 R 0 10.0 0 10
P xemc emcError REMOTE 192.168.0.14 R 0 10.0 0 10

233
configs/common/shuttle.hal Normal file
View File

@@ -0,0 +1,233 @@
#
# This HAL file hooks up a ShuttleXpress USB dongle from Contour Design.
#
# The ShuttleXpress has five momentary buttons, a cheesy jog-wheel with 10
# counts per revolution and detents, and a 15-position rotary knob with
# return-to-center springy action.
#
# Note: The shuttle driver also supports the ShuttlePRO device. To adapt
# this hal file to the ShuttlePro, rename all the pins from
# "shuttlexpress" to "shuttlepro".
#
loadusr -W shuttle
loadrt abs_s32 names=abs_s32.sxp
loadrt select8 names=select8.sxp-jog-speed,select8.sxp-jog-increment
loadrt mux2 names=mux2.sxp-x-analog,mux2.sxp-y-analog,mux2.sxp-z-analog
loadrt updown names=updown.sxp
loadrt and2 names=and2.sxp-x-pos,and2.sxp-x-neg,and2.sxp-y-pos,and2.sxp-y-neg,and2.sxp-z-pos,and2.sxp-z-neg
loadrt tristate_float names=tristate-float.sxp0,tristate-float.sxp1,tristate-float.sxp2,tristate-float.sxp3,tristate-float.sxp4,tristate-float.sxp5,tristate-float.sxp6,tristate-float.sxp7,tristate-float.sxp-jog-increment-0,tristate-float.sxp-jog-increment-1,tristate-float.sxp-jog-increment-2,tristate-float.sxp-jog-increment-3
loadrt ilowpass names=ilowpass.sxp
#
# make nets from the shuttlexpress buttons and wheels
#
net sxp.x-button <= shuttlexpress.0.button-0
net sxp.y-button <= shuttlexpress.0.button-1
net sxp.z-button <= shuttlexpress.0.button-2
net sxp.a-button <= shuttlexpress.0.button-3
net sxp.step-button <= shuttlexpress.0.button-4
net sxp.counts <= shuttlexpress.0.counts
net sxp.spring-wheel <= shuttlexpress.0.spring-wheel-s32
#
# pushing an axis-button and turning the spring-wheel gives continuous
# jogging in the selected axis, with speed proportional to spring-wheel
# deflection
#
addf abs_s32.sxp servo-thread
addf select8.sxp-jog-speed servo-thread
addf tristate-float.sxp0 servo-thread
addf tristate-float.sxp1 servo-thread
addf tristate-float.sxp2 servo-thread
addf tristate-float.sxp3 servo-thread
addf tristate-float.sxp4 servo-thread
addf tristate-float.sxp5 servo-thread
addf tristate-float.sxp6 servo-thread
addf tristate-float.sxp7 servo-thread
# get abs value & sign of spring-wheel
net sxp.spring-wheel => abs_s32.sxp.in
net sxp.spring-wheel-abs <= abs_s32.sxp.out
net sxp.spring-wheel-is-positive <= abs_s32.sxp.is-positive
net sxp.spring-wheel-is-negative <= abs_s32.sxp.is-negative
# use abs value to select abs jog speed
net sxp.spring-wheel-abs => select8.sxp-jog-speed.sel
net sxp.select-jog-speed-0 <= select8.sxp-jog-speed.out0
net sxp.select-jog-speed-1 <= select8.sxp-jog-speed.out1
net sxp.select-jog-speed-2 <= select8.sxp-jog-speed.out2
net sxp.select-jog-speed-3 <= select8.sxp-jog-speed.out3
net sxp.select-jog-speed-4 <= select8.sxp-jog-speed.out4
net sxp.select-jog-speed-5 <= select8.sxp-jog-speed.out5
net sxp.select-jog-speed-6 <= select8.sxp-jog-speed.out6
net sxp.select-jog-speed-7 <= select8.sxp-jog-speed.out7
# each of the 8 speed selector bits turns on a tristate float
net sxp.select-jog-speed-0 => tristate-float.sxp0.enable
net sxp.select-jog-speed-1 => tristate-float.sxp1.enable
net sxp.select-jog-speed-2 => tristate-float.sxp2.enable
net sxp.select-jog-speed-3 => tristate-float.sxp3.enable
net sxp.select-jog-speed-4 => tristate-float.sxp4.enable
net sxp.select-jog-speed-5 => tristate-float.sxp5.enable
net sxp.select-jog-speed-6 => tristate-float.sxp6.enable
net sxp.select-jog-speed-7 => tristate-float.sxp7.enable
# each of the 8 tristate floats has a constant jog speed on it
# speeds are specified as "fraction of machine max speed"
setp tristate-float.sxp0.in 0.0
setp tristate-float.sxp1.in 0.5
setp tristate-float.sxp2.in 1.0
setp tristate-float.sxp3.in 5.0
setp tristate-float.sxp4.in 10.0
setp tristate-float.sxp5.in 20.0
setp tristate-float.sxp6.in 150.0
setp tristate-float.sxp7.in 240.0
# all of the 8 tristate floats are connected together, one of them drives
# the net
net sxp.abs-jog-speed <= tristate-float.sxp0.out
net sxp.abs-jog-speed <= tristate-float.sxp1.out
net sxp.abs-jog-speed <= tristate-float.sxp2.out
net sxp.abs-jog-speed <= tristate-float.sxp3.out
net sxp.abs-jog-speed <= tristate-float.sxp4.out
net sxp.abs-jog-speed <= tristate-float.sxp5.out
net sxp.abs-jog-speed <= tristate-float.sxp6.out
net sxp.abs-jog-speed <= tristate-float.sxp7.out
net sxp.abs-jog-speed => halui.axis.jog-speed
# while an axis button is depressed, jog the axis continuously in the
# direction indicated by the spring-wheel
addf and2.sxp-x-pos servo-thread
addf and2.sxp-x-neg servo-thread
addf and2.sxp-y-pos servo-thread
addf and2.sxp-y-neg servo-thread
addf and2.sxp-z-pos servo-thread
addf and2.sxp-z-neg servo-thread
net sxp.x-button => and2.sxp-x-pos.in0
net sxp.spring-wheel-is-positive => and2.sxp-x-pos.in1
net sxp.jog-x-pos and2.sxp-x-pos.out => halui.axis.x.plus
net sxp.x-button => and2.sxp-x-neg.in0
net sxp.spring-wheel-is-negative => and2.sxp-x-neg.in1
net sxp.jog-x-neg and2.sxp-x-neg.out => halui.axis.x.minus
net sxp.y-button => and2.sxp-y-pos.in0
net sxp.spring-wheel-is-positive => and2.sxp-y-pos.in1
net sxp.jog-y-pos and2.sxp-y-pos.out => halui.axis.y.plus
net sxp.y-button => and2.sxp-y-neg.in0
net sxp.spring-wheel-is-negative => and2.sxp-y-neg.in1
net sxp.jog-y-neg and2.sxp-y-neg.out => halui.axis.y.minus
net sxp.z-button => and2.sxp-z-pos.in0
net sxp.spring-wheel-is-positive => and2.sxp-z-pos.in1
net sxp.jog-z-pos and2.sxp-z-pos.out => halui.axis.z.plus
net sxp.z-button => and2.sxp-z-neg.in0
net sxp.spring-wheel-is-negative => and2.sxp-z-neg.in1
net sxp.jog-z-neg and2.sxp-z-neg.out => halui.axis.z.minus
#
# the "step" button cycles among several jog increments for the jog-wheel
#
addf updown.sxp servo-thread
addf tristate-float.sxp-jog-increment-0 servo-thread
addf tristate-float.sxp-jog-increment-1 servo-thread
addf tristate-float.sxp-jog-increment-2 servo-thread
addf tristate-float.sxp-jog-increment-3 servo-thread
# for each click of the jog-wheel there's 1000 simulated counts coming out
# of the ilowpass below, so these numbers are 1000x smaller than the jog
# increment size they encode
setp tristate-float.sxp-jog-increment-0.in 0.0000001
setp tristate-float.sxp-jog-increment-1.in 0.0000005
setp tristate-float.sxp-jog-increment-2.in 0.000001
setp tristate-float.sxp-jog-increment-3.in 0.000010
setp updown.sxp.wrap 1
setp updown.sxp.min 0
setp updown.sxp.max 3
net sxp.step-button => updown.sxp.countup
net sxp.jog-increment-selected <= updown.sxp.count
# use the updown count to select jog increment
addf select8.sxp-jog-increment servo-thread
net sxp.jog-increment-selected => select8.sxp-jog-increment.sel
net sxp.select-jog-increment-0 <= select8.sxp-jog-increment.out0
net sxp.select-jog-increment-0 => tristate-float.sxp-jog-increment-0.enable
net sxp.select-jog-increment-1 <= select8.sxp-jog-increment.out1
net sxp.select-jog-increment-1 => tristate-float.sxp-jog-increment-1.enable
net sxp.select-jog-increment-2 <= select8.sxp-jog-increment.out2
net sxp.select-jog-increment-2 => tristate-float.sxp-jog-increment-2.enable
net sxp.select-jog-increment-3 <= select8.sxp-jog-increment.out3
net sxp.select-jog-increment-3 => tristate-float.sxp-jog-increment-3.enable
# all of the tristate floats are connected together, one of them drives
# the net
net sxp.jog-increment <= tristate-float.sxp-jog-increment-0.out
net sxp.jog-increment <= tristate-float.sxp-jog-increment-1.out
net sxp.jog-increment <= tristate-float.sxp-jog-increment-2.out
net sxp.jog-increment <= tristate-float.sxp-jog-increment-3.out
net sxp.jog-increment => axis.x.jog-scale
net sxp.jog-increment => axis.y.jog-scale
net sxp.jog-increment => axis.z.jog-scale
#
# pushing an axis-button and turning the jog-wheel gives incremental
# jogging
#
# hook up the axis buttons to the axis jog-enable pins
net sxp.x-button axis.x.jog-enable
net sxp.y-button axis.y.jog-enable
net sxp.z-button axis.z.jog-enable
# The ShuttleXpress jog wheel has 10 clicks per revolution
#
# Low-pass filter the jogwheel, and scale it so one click is 1000 counts
# coming out of the ilowpass.
#
# Then connect it to the jog input on all the axes.
addf ilowpass.sxp servo-thread
setp ilowpass.sxp.gain .02
setp ilowpass.sxp.scale 1000
net sxp.counts => ilowpass.sxp.in
net sxp.counts-smoothed <= ilowpass.sxp.out
net sxp.counts-smoothed => axis.x.jog-counts
net sxp.counts-smoothed => axis.y.jog-counts
net sxp.counts-smoothed => axis.z.jog-counts

4
configs/common/tool.tbl Normal file
View File

@@ -0,0 +1,4 @@
T1 P1 D0.125000 Z+0.511000 ;1/8 end mill
T2 P2 D0.062500 Z+0.100000 ;1/16 end mill
T3 P3 D0.201000 Z+1.273000 ;#7 tap drill
T99999 P123 Z+0.100000 ;big tool number