-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/v2.5_branch' into 2.6
Conflicts: VERSION debian/changelog src/hal/components/edge.comp
- Loading branch information
Showing
23 changed files
with
841 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
A configuration for the PPMC board set from Pico | ||
systems. This configuration includes motion connections | ||
and an IO set for handling estop within HAL. The IO | ||
configuration in ppmc_io.hal DOES include signal | ||
connections for some bridgeportio like signal handling. | ||
This configs set includes the option for encoder | ||
velocity estimation via timestamping, and tells how to | ||
change the encoder digital filter frequency. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,271 @@ | ||
# EMC controller parameters for generic controller. Make these what you need | ||
# for your system. | ||
|
||
# General note: Comments can either be preceded with a # or ; - either is | ||
# acceptable, although # is in keeping with most linux config files. | ||
|
||
|
||
# General section ------------------------------------------------------------- | ||
[EMC] | ||
|
||
# Version of this INI file | ||
VERSION = $Revision$ | ||
|
||
# Name of machine, for use with display, etc. | ||
MACHINE = LinuxCNC-PPMC | ||
|
||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others | ||
DEBUG = 0 | ||
# DEBUG = 0x00000007 | ||
# DEBUG = 0x7FFFFFFF | ||
|
||
# Sections for display options ------------------------------------------------ | ||
[DISPLAY] | ||
|
||
# Name of display program, e.g., xemc | ||
DISPLAY = axis | ||
# DISPLAY = usrmot | ||
# DISPLAY = tkemc | ||
# Cycle time, in seconds, that display will sleep between polls | ||
CYCLE_TIME = 0.100 | ||
|
||
# Path to help file | ||
HELP_FILE = tklinucnc.txt | ||
|
||
# Initial display setting for position, RELATIVE or MACHINE | ||
POSITION_OFFSET = RELATIVE | ||
|
||
# Initial display setting for position, COMMANDED or ACTUAL | ||
POSITION_FEEDBACK = ACTUAL | ||
|
||
# Highest value that will be allowed for feed override, 1.0 = 100% | ||
MAX_FEED_OVERRIDE = 1.2 | ||
|
||
# Prefix to be used | ||
PROGRAM_PREFIX = ../../nc_files/ | ||
|
||
# Introductory graphic | ||
INTRO_GRAPHIC = linuxcnc.gif | ||
INTRO_TIME = 2 | ||
|
||
# Enable popup balloon help | ||
BALLOON_HELP = 1 | ||
|
||
# Task controller section ----------------------------------------------------- | ||
[TASK] | ||
|
||
# Name of task controller program, e.g., milltask | ||
TASK = milltask | ||
|
||
# Cycle time, in seconds, that task controller will sleep between polls | ||
CYCLE_TIME = 0.010 | ||
|
||
# Part program interpreter section -------------------------------------------- | ||
[RS274NGC] | ||
|
||
# File containing interpreter variables | ||
PARAMETER_FILE = ppmc.var | ||
|
||
# Motion control section ------------------------------------------------------ | ||
[EMCMOT] | ||
|
||
EMCMOT = motmod | ||
|
||
# Timeout for comm to emcmot, in seconds | ||
COMM_TIMEOUT = 1.0 | ||
|
||
# Interval between tries to emcmot, in seconds | ||
COMM_WAIT = 0.010 | ||
|
||
# Servo task period, in nanoseconds | ||
SERVO_PERIOD = 1000000 | ||
|
||
# Hardware Abstraction Layer section -------------------------------------------------- | ||
[HAL] | ||
|
||
# The run script first uses halcmd to execute any HALFILE | ||
# files, and then to execute any individual HALCMD commands. | ||
# | ||
|
||
# list of hal config files to run through halcmd | ||
# files are executed in the order in which they appear | ||
HALFILE = ppmc_load.hal | ||
|
||
HALFILE = ppmc_servo.hal | ||
HALFILE = ppmc_motion.hal | ||
HALFILE = ppmc_io.hal | ||
|
||
# list of halcmd commands to execute | ||
# commands are executed in the order in which they appear | ||
#HALCMD = save neta | ||
|
||
# Trajectory planner section -------------------------------------------------- | ||
[TRAJ] | ||
|
||
AXES = 4 | ||
# COORDINATES = X Y Z R P W | ||
COORDINATES = X Y Z A | ||
HOME = 0 0 0 0 | ||
LINEAR_UNITS = inch | ||
ANGULAR_UNITS = degree | ||
CYCLE_TIME = 0.010 | ||
DEFAULT_VELOCITY = 0.15 | ||
MAX_VELOCITY = 1.20 | ||
DEFAULT_ACCELERATION = 1.5 | ||
MAX_ACCELERATION = 1.5 | ||
|
||
# Axes sections --------------------------------------------------------------- | ||
|
||
# Scaling: The OUTPUT_SCALE should be the speed | ||
# in UNITS/second (inches/sec or mm/sec) that would be | ||
# reached if the PWM duty cycle was 100%. It depends on | ||
# the power supply voltage, motor RPM/Volt factor, and | ||
# gearing/screw pitch. For example: | ||
# | ||
# Power supply voltage 50V | ||
# Motor RPM/V 1000RPM/24V | ||
# Gearing: 2 motor revs per 1 screw rev | ||
# Screw pitch: 0.2" per turn | ||
# | ||
# Max motor speed = 50V * 1000RPM/24V = 2083 RPM | ||
# Max screw speed = 2083RPM * 1(screw)/2(motor) = 1041RPM | ||
# Max table speed = 1041RPM * 0.2"/turn = 208 in/min | ||
# Max table speed = 208 in/min / 60 seconds = 3.47 inches/sec | ||
# | ||
# Since max speed is reached at 100% duty cycle, OUTPUT_SCALE | ||
# should be 3.47 | ||
|
||
# First axis | ||
[AXIS_0] | ||
|
||
TYPE = LINEAR | ||
HOME = 0.000 | ||
MAX_VELOCITY = 1.20 | ||
MAX_ACCELERATION = 1.25 | ||
PID_MAX_VEL = 1.2 | ||
BACKLASH = 0.000 | ||
INPUT_SCALE = -128000.0 | ||
OUTPUT_SCALE = -1.0 | ||
MIN_LIMIT = -10.0 | ||
MAX_LIMIT = 10.0 | ||
FERROR = 0.001 | ||
MIN_FERROR = 0.005 | ||
HOME_OFFSET = 0.0 | ||
HOME_SEARCH_VEL = 0.0 | ||
HOME_LATCH_VEL = 0.0 | ||
HOME_USE_INDEX = NO | ||
HOME_IGNORE_LIMITS = NO | ||
DEADBAND = 1e-06 | ||
P = 800.0 | ||
I = 25.0 | ||
D = 20.0 | ||
BIAS = 0.0 | ||
FF0 = 0.0 | ||
FF1 = 1.0 | ||
FF2 = 0.0 | ||
|
||
|
||
# Second axis | ||
[AXIS_1] | ||
|
||
TYPE = LINEAR | ||
HOME = 0.000 | ||
MAX_VELOCITY = 1.20 | ||
MAX_ACCELERATION = 1.25 | ||
PID_MAX_VEL = 1.2 | ||
BACKLASH = 0.000 | ||
INPUT_SCALE = -128000.0 | ||
OUTPUT_SCALE = -1.0 | ||
MIN_LIMIT = -10.0 | ||
MAX_LIMIT = 10.0 | ||
FERROR = 0.001 | ||
MIN_FERROR = 0.005 | ||
HOME_OFFSET = 0.0 | ||
HOME_SEARCH_VEL = 0.0 | ||
HOME_LATCH_VEL = 0.0 | ||
HOME_USE_INDEX = NO | ||
HOME_IGNORE_LIMITS = NO | ||
DEADBAND = 1e-06 | ||
P = 800.0 | ||
I = 25.0 | ||
D = 10.0 | ||
BIAS = 0.0 | ||
FF0 = 0.0 | ||
FF1 = 1.0 | ||
FF2 = 0.0 | ||
|
||
# Third axis | ||
[AXIS_2] | ||
|
||
TYPE = LINEAR | ||
HOME = 0.0 | ||
MAX_VELOCITY = 1.20 | ||
MAX_ACCELERATION = 1.25 | ||
PID_MAX_VEL = 1.2 | ||
BACKLASH = 0.000 | ||
INPUT_SCALE = 128000.0 | ||
OUTPUT_SCALE = 1.0 | ||
MIN_LIMIT = -10.0 | ||
MAX_LIMIT = 10.0 | ||
FERROR = 0.001 | ||
MIN_FERROR = 0.005 | ||
HOME_OFFSET = 0.0 | ||
HOME_SEARCH_VEL = 0.0 | ||
HOME_LATCH_VEL = 0.0 | ||
HOME_USE_INDEX = NO | ||
HOME_IGNORE_LIMITS = NO | ||
DEADBAND = 8e-05 | ||
P = 800.0 | ||
I = 25.0 | ||
D = 10.0 | ||
BIAS = 0.0 | ||
FF0 = 0.0 | ||
FF1 = 1.0 | ||
FF2 = 0.0 | ||
|
||
# Fourth axis | ||
[AXIS_3] | ||
|
||
TYPE = ANGULAR | ||
HOME = 0.0 | ||
MAX_VELOCITY = 65 | ||
MAX_ACCELERATION = 20.0 | ||
PID_MAX_VEL = 66.0 | ||
BACKLASH = 0.000 | ||
INPUT_SCALE = 1111.111 | ||
OUTPUT_SCALE = 5.0 | ||
MIN_LIMIT = -3600.0 | ||
MAX_LIMIT = 3600.0 | ||
FERROR = 1.010 | ||
MIN_FERROR = 1.001 | ||
HOME_OFFSET = 0.0 | ||
HOME_SEARCH_VEL = 0.0 | ||
HOME_LATCH_VEL = 0.0 | ||
HOME_USE_INDEX = NO | ||
HOME_IGNORE_LIMITS = NO | ||
DEADBAND = 0.046 | ||
P = 150.0 | ||
I = 100.0 | ||
D = 0.1 | ||
BIAS = 0.0 | ||
FF0 = 0.0 | ||
FF1 = 1.0 | ||
FF2 = 1.0 | ||
|
||
|
||
# section for main IO controller parameters ----------------------------------- | ||
[EMCIO] | ||
|
||
# Name of IO controller program, e.g., io | ||
EMCIO = io | ||
|
||
# cycle time, in seconds | ||
CYCLE_TIME = 0.100 | ||
|
||
# tool table file | ||
TOOL_TABLE = ppmc.tbl | ||
|
||
# section for external NML server parameters ---------------------------------- | ||
[EMCSERVER] | ||
# Uncomment the following line if you need to run a remote GUI. | ||
# EMCSERVER = emcsvr |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 P99999 Z+0.100000 ;big tool number |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
# HAL config file for Pico Systems USC board | ||
# | ||
# Connect motion controller I/Os | ||
# | ||
|
||
# connect limit/home switch outputs to motion controller | ||
net Xminlim <= ppmc.0.din.01.in | ||
net Xminlim => axis.0.neg-lim-sw-in | ||
net Xmaxlim <= ppmc.0.din.02.in | ||
net Xmaxlim => axis.0.pos-lim-sw-in | ||
net Xhome <= ppmc.0.din.00.in | ||
net Xhome => axis.0.home-sw-in | ||
|
||
net Yminlim <= ppmc.0.din.05.in | ||
net Yminlim => axis.1.neg-lim-sw-in | ||
net Ymaxlim <= ppmc.0.din.06.in | ||
net Ymaxlim => axis.1.pos-lim-sw-in | ||
net Yhome <= ppmc.0.din.04.in | ||
net Yhome => axis.1.home-sw-in | ||
|
||
net Zminlim <= ppmc.0.din.09.in | ||
net Zminlim => axis.2.neg-lim-sw-in | ||
net Zmaxlim <= ppmc.0.din.10.in | ||
net Zmaxlim => axis.2.pos-lim-sw-in | ||
net Zhome <= ppmc.0.din.08.in | ||
net Zhome => axis.2.home-sw-in | ||
|
||
net Aminlim <= ppmc.0.din.12.in | ||
net Aminlim => axis.3.neg-lim-sw-in | ||
net Amaxlim <= ppmc.0.din.13.in | ||
net Amaxlim => axis.3.pos-lim-sw-in | ||
net Ahome <= ppmc.0.din.11.in | ||
net Ahome => axis.3.home-sw-in | ||
|
||
|
||
# connect index pulses to motion controller | ||
# uncomment if you have encoder index signals | ||
#net Xindex <= ppmc.0.encoder.00.index-enable => axis.0.index-enable | ||
#net Yindex <= ppmc.0.encoder.01.index-enable => axis.1.index-enable | ||
#net Zindex <= ppmc.0.encoder.02.index-enable => axis.2.index-enable | ||
#net Aindex <= ppmc.0.encoder.03.index-enable => axis.3.index-enable | ||
|
||
# | ||
# Connect I/O controller I/Os | ||
# | ||
|
||
# connect e-stop write/sense to I/O controller | ||
# and ppmc's fault with estop's output, so estop FF is reset, but | ||
# prevent continued estop signal from ppmc from holding FF cleared | ||
net ppmcEstop ppmc.0.din.estop.in | ||
net ppmcEstop and2.0.in0 | ||
net EstopOkIn estop-latch.0.fault-in | ||
net EstopOkIn and2.0.out | ||
net EstopOkOut ppmc.0.dout.07.out | ||
net EstopOkOut ppmc.0.dout.Estop.out | ||
net EstopOkOut iocontrol.0.emc-enable-in | ||
net EstopOkOut estop-latch.0.ok-out | ||
net EstopOkOut and2.0.in1 | ||
net emc-estop-out iocontrol.0.user-enable-out | ||
net emc-estop-out estop-latch.0.ok-in | ||
net emc-estop-reset iocontrol.0.user-request-enable | ||
net emc-estop-reset estop-latch.0.reset | ||
|
||
# connect spindle fwd/rev to I/O controller | ||
net SpindleFwd <= ppmc.0.dout.00.out | ||
net SpindleFwd => motion.spindle-forward | ||
net SpindleRev <= ppmc.0.dout.01.out | ||
net SpindleRev => motion.spindle-reverse | ||
|
||
# connect spindle brake to I/O controller | ||
net SpindleBrakeOn <= ppmc.0.dout.02.out | ||
net SpindleBrakeOn => motion.spindle-brake | ||
|
||
# connect mist/flood coolant to I/O controller | ||
net MistOn <= ppmc.0.dout.03.out | ||
net MistOn => iocontrol.0.coolant-mist | ||
net FloodOn <= ppmc.0.dout.04.out | ||
net FloodOn => iocontrol.0.coolant-flood |
Oops, something went wrong.