[EMC]
# 配置的版本号, 大于1.1会触发配置检查
VERSION = 1.1
# 机器名字
MACHINE = OFF-CNC
# 调试等级, 0代表不打印信息
DEBUG = 0
# 关于用户界面的设置, 不同的界面可能有不同的参数值
# 主要有AXIS, GMOCCAPY, Touchy, QtVCP’s QtDragon and Gscreen这
# AXIS可用于常规电脑与显示器
# Touchy用于触屏
# GMOCCAPY两者都行, 且支持很多其他硬件控制器的连接
[DISPLAY]
# 用户界面的名称
# 可以是以下其中一种(全小写)
# axis, touchy, gmoccapy, gscreen, tklinuxcnc, qtvcp, qtvcp-qtdragon, qtvcp-qtplasmac
DISPLAY = gmoccapy
# DRO显示位置偏移的方式. 可以是RELATIVE(相对于工件坐标系)或MACHINE(机器坐标系)
POSITION_OFFSET = RELATIVE
# DRO显示位置的方式. 一般填COMMANDED, 代表LCNC请求电机运转到此位置
# 也可以是ACTUAL, 用于显示电机编码器反馈的实际位置
# ACTUAL可能造成在页面上 轴的位置会有0.001的上下跳动, 这个不影响的, 觉得烦可以换成COMMANDED
POSITION_FEEDBACK = ACTUAL
# 最大进给速率 1.2表示120%
MAX_FEED_OVERRIDE = 1.2
# 最小主轴转速速率
MIN_SPINDLE_OVERRIDE = 0.5
# 最大主轴转速速率
MAX_SPINDLE_OVERRIDE = 1.2
# 存放G代码文件的默认文件夹位置
PROGRAM_PREFIX = ../../nc_files/
# 启动页上展示的图像
INTRO_GRAPHIC = linuxcnc.gif
# 启动页上显示图像的时间, 单位为秒
INTRO_TIME = 2
# 界面刷新时间 100毫秒通常是个不错的数值
CYCLE_TIME = 100
# 每次点动时可选择的移动距离
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
# AXIS和GMOCCAPY支持把特定格式的文件, 通过特定程序打开, 生成RS274NGC规范的G代码, 再由机器去执行
# 比如把png图案雕刻出来
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg,.txt,.TXT Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python
[RS274NGC]
# 存放一些运行参数的文件
PARAMETER_FILE = parameters.var
[EMCMOT]
# 运动控制器名称
EMCMOT = motmod
# 基本任务与伺服任务的周期, 单位为纳秒
# 这两项的取值可以参考LCNC延迟测试的结果
# 详见UP[脏兮兮MrDirty]的视频https:
# 不过由于走总线控制, 对延迟的要求比较低, 这个值可以填大一点 (意味着不挑电脑硬件)
# 理论上不超过4ms都可用, 也就是4000000 (来自群友[彬_^__^_]测试)
BASE_PERIOD = 100000
SERVO_PERIOD = 1000000
# 运动控制器中, 实时任务确认收到非实时任务的消息的超时时间, 单位为秒
COMM_TIMEOUT = 1.0
# 任务执行器的配置, 写死 不用改
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[HAL]
# 启动时执行的.hal文件
# 可配置多个, LCNC按顺序读取
HALFILE = OFF-CNC.hal
HALFILE = mpg.hal
# LCNC提供一个系统库用于检查hal配置, 在弹出框里输出调试检查信息
# POSTGUI_HALFILE参数指定的hal文件不会被检查
# HALFILE = LIB:halcheck.tcl [nopopup]
# 执行单条hal命令. 可配置多条, 会在所有HALFILE执行完毕后再按书写顺序依次执行
# HALCMD = command
# LCNC正常退出时执行的hal文件, 不保证必定执行, 慎用
# SHUTDOWN = shutdown.hal
# 在界面程序完成HAL引脚创建后执行的hal文件
# Touchy, AXIS, Gscreen, GMOCCAPY支持这项功能
# POSTGUI_HALFILE = example.hal
# 界面程序中HAL引脚的配置, 这里写死
HALUI = halui
[HALUI]
# 由halui.mdi-command-00引脚触发的MDI命令
# 第一条是halui.mdi-command-00, 第二条就是halui.mdi-command-01, 依次增长
# MDI_COMMAND = G53 G0 X0 Y0 Z0
# LCNC能在UI界面启动前执行其他程序, 可加上一定时间延迟执行 以允许UI依赖中某些行为的执行
[APPLICATIONS]
# 延迟时间, 单位为秒
# DELAY = 0
# appname [arg1 [arg2 …]]
# APP = halshow my.halshow
[TRAJ]
# 主轴数量, 要与运动模块的num_spindles参数一致
SPINDLES = 1
# 坐标系统, 只允许填X, Y, Z, A, B, C, U, V, W这些字母
# 允许多次写入轴名称(例如龙门机床的X Y Y Z)
# 一般X对应joint0, Y对应joint1, 按此顺序对应
COORDINATES = X Y Z
# 线性轴的[机器单位], 可以是mm或inch
LINEAR_UNITS = mm
# 旋转轴的[机器单位], 可以是deg, degree(每圆360度), rad, radian (2π每圆), grad, gon (400边每圆)
# 在RS274NGC中, A-、B-和C-单词总是以度表示
ANGULAR_UNITS = degree
# 线性轴JOG时的初始速率, 单位为每秒机器单位(就是毫米), AXIS中显示的值等于每分钟机器单位
DEFAULT_LINEAR_VELOCITY = 100
# 线性轴JOG时的加速度, 单位为每秒机器单位
DEFAULT_LINEAR_ACCELERATION = 120.0
# 任意线性轴的最大速度, 单位为每秒机器单位, 显示的值为每分钟机器单位
MAX_LINEAR_VELOCITY = 120.0
# 任意线性轴的最大加速度, 单位为每秒机器单位
MAX_LINEAR_ACCELERATION = 1500.0
# 如果设置了此项, 则会将关节位置存储在此文件中
# 这样机器就能以关机时的位置直接启动(前提是断电期间电机位置没有发生改动)
# 以达成模拟绝对值编码器的功能, 避免了归位的需求
# POSITION_FILE = position.txt
# LCNC默认 在运行MDI或程序前 用户必须将机器以JOG方式归位
# 设置为1则代表不需要归位即可运行MDI或程序
NO_FORCE_HOMING = 0
# 代表X Y Z A B C U V W 9个轴的原点位置, 可以省略未使用轴的位置数值
HOME = 0 0 0 0 0 0 0 0 0
# JOG点动时允许绕过探针跳闸检查
NO_PROBE_JOG_ERROR = 0
# 在归位过程中允许绕过探针跳闸检查
NO_PROBE_HOME_ERROR = 0
[KINS]
# 指定系统中运动类型(电机)的数量
# 例如, 每个轴都有一个电机的trivkins XYZ机床有3个关节
# 龙门式机器的两个轴上各有一个电机, 第三个轴上有两个电机, 有4个关节
# GUI可以使用此配置变量来设置指定给运动模块(motmod)的关节数(num_joints)
JOINTS = 3
# 运动学模块
# 参考示例来配置, 跟你用几轴有关
KINEMATICS = trivkins coordinates=xyz
[AXIS_X]
# 轴类型, 线性轴(LINEAR)还是旋转轴(ANGULAR)
TYPE = LINEAR
# 最大速度
MAX_VELOCITY = 20
# 最大加速度
MAX_ACCELERATION = 100.0
# 轴运动的最小极限, 软限位, 超限时控制器中止轴运动
# 生效需要归位
# 对于无限旋转的旋转轴(如ABC), 值填-1e99
MIN_LIMIT = -50.0
# 轴运动的最大极限, 软限位, 超限时控制器中止轴运动
# 生效需要归位
# 对于无限旋转的旋转轴(如ABC), 值填1e99
MAX_LIMIT = 50.0
[JOINT_0]
# 轴类型, 线性轴(LINEAR)还是旋转轴(ANGULAR)
TYPE = LINEAR
# MAX_VELOCITY = 10.0
# MAX_ACCELERATION = 50.0
# 齿轮间隙补偿, 机器单位
BACKLASH = 0.0000
# 同[AXIS_L]. 区别是[JOINT_n]的这两项必须等于或超过[AXIS_L]中的
# 在归位前, 会强制执行此限位检查, 归位后才会开启[AXIS_L]的限位检查
MIN_LIMIT = -50.0
MAX_LIMIT = 50.0
# 允许关节在非常低的速度下偏离指令位置的差值, 机器单位
# 随着速度的增加, 跟随误差的量也向FERROR值增加
MIN_FERROR = 0.2
# 最大允许跟随误差
# 如果指令位置和传感器位置的差值超过该值, 控制器将禁用伺服计算, 将所有输出设置为0.0, 并禁用放大器
# 如果配置了MIN_FERROR, 则使用速度比例跟随误差
# 如果总是出现关节跟随报错, 则可以适当调大此值
FERROR = 1.5
# 关节在完成归位序列后将到达的位置
HOME = 0
# 归位位置偏移
HOME_OFFSET = 0
# 初始归位速度, 机器单位每秒, 符号表示行进方向
# 0代表假设当前位置是机器的原始位置
# 如果您的机器没有归位开关, 您将希望将此值保留为零
HOME_SEARCH_VEL = 0.0
# 到原点开关闩锁位置的回原点速度, 机器单位每秒, 符号表示行进方向
HOME_LATCH_VEL = 0.0
# 从原点闩锁位置到原点位置的速度, 机器单位每秒
# 如果为0或不包含在关节中, 则使用快速移动速度, 必须是正数
HOME_FINAL_VEL = 1
# 如果该关节的编码器具有索引脉冲, 且运动卡具有该信号的规定, 则可以将其设置为YES
# 当设置为YES时, 它将影响所使用的归位模式的类型
# 目前, 除非您在速度模式和PID下使用StepGen, 否则无法使用步进器进行索引
HOME_USE_INDEX = NO
# 当您使用限位开关作为归位和限位开关时, 应设置为YES
# 当设置为YES时, 回零时将忽略该关节的限位开关
# 您必须配置归位, 以便在归位移动结束时, 归位/限位开关不处于切换状态, 否则您将在归位移动后收到限位开关错误
HOME_IGNORE_LIMITS = NO
# 表明关节使用绝对编码器
# 在请求归位时, 当前关节值设置为HOME_OFFSET
# 如果此项设置为1, 机器通常最终移动到HOME值处, 如果设置为2则不进行最终移动
HOME_ABSOLUTE_ENCODER = 1
# 定义归位序列, 值必须从0, 1 或-1开始, 每次可+1指定随后的序列, 不可跳过序列号
# 如果省略此项, 则Home All功能将不会对关节进行归位
# 通过为多个关节指定相同的序列号, 可以同时归位这些关节
# 负序列号用于推迟具有该序列号的所有关节的最终移动
HOME_SEQUENCE = 0
[AXIS_Y]
TYPE = LINEAR
MAX_VELOCITY = 20
MAX_ACCELERATION = 100.0
MIN_LIMIT = -50.0
MAX_LIMIT = 50.0
[JOINT_1]
TYPE = LINEAR
BACKLASH = 0.0000
MIN_LIMIT = -50.0
MAX_LIMIT = 50.0
MIN_FERROR = 0.2
FERROR = 1.5
HOME = 0
HOME_OFFSET = 0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_FINAL_VEL = 1
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_ABSOLUTE_ENCODER = 1
HOME_SEQUENCE = 0
[AXIS_Z]
TYPE = LINEAR
MAX_VELOCITY = 20
MAX_ACCELERATION = 100.0
MIN_LIMIT = -50.0
MAX_LIMIT = 50.0
[JOINT_2]
TYPE = LINEAR
BACKLASH = 0.0000
MIN_LIMIT = -50.0
MAX_LIMIT = 50.0
MIN_FERROR = 0.2
FERROR = 1.5
HOME = 0
HOME_OFFSET = 0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_FINAL_VEL = 1
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_ABSOLUTE_ENCODER = 1
HOME_SEQUENCE = 0
# [SPINDLE_<num>] <num>从0开始, 最大为num_spindles-1
# num_spindles由[TRAJ]SPINDLES设置
# 默认情况下, 主轴正转和反转的最大速度约为2147483000RPM
# 默认情况下, 主轴正转和反转的最小速度为0RPM
# 默认情况下, 增量为100RPM
[SPINDLE_0]
# 主轴最大正转速度, 单位为RPM
MAX_FORWARD_VELOCITY = 1000
# 主轴最小正转速度, 单位为RPM
MIN_FORWARD_VELOCITY = 0
# 主轴最大反转速度, 单位为RPM
MAX_REVERSE_VELOCITY = 1000
# 主轴最小反转速度, 单位为RPM
MIN_REVERSE_VELOCITY = 0
# 设置主轴速度增量/减量的步长, 每个主轴的值可能不同
# 此设置对AXIS和Touchy有效
INCREMENT = 100
[EMCIO]
# IO控制器程序的名称
EMCIO = io
# EMCIO将运行的周期, 单位为秒, 将其设置为0.0或负数将设定EMCIO完全不休眠
# 通常无需更改此项
CYCLE_TIME = 0.100
# 存储刀具信息的文件
TOOL_TABLE = tool.tbl
# 3个数指定执行换刀时要移动到的XYZ位置
# 6个数指定XYZABC位置, 9个数指定XYZABCUVW位置
# 可以组合起来, 例如将主轴向上与更改位置结合起来, 则可以先移动Z,然后移动X和Y
TOOL_CHANGE_POSITION = 0 0 20
# 值为1时, 主轴将在换刀期间保持开启状态
# 对于材料装于主轴而非刀具的车床等机器非常有用
TOOL_CHANGE_WITH_SPINDLE_ON = 0
# 值为1时, Z轴将在换刀之前移动到机器零. 这与发出G0 G53 Z0相同
TOOL_CHANGE_QUILL_UP = 0
# 这适用于无法将刀具放回原来的刀库位置中的机器
# 例如, 将在用中的刀具与主轴中的刀具交换的机床
RANDOM_TOOLCHANGER = 0