[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-qtplasmacDISPLAY = gmoccapy# DRO显示位置偏移的方式. 可以是RELATIVE(相对于工件坐标系)或MACHINE(机器坐标系)POSITION_OFFSET = RELATIVE# DRO显示位置的方式. 一般填COMMANDED, 代表LCNC请求电机运转到此位置# 也可以是ACTUAL, 用于显示电机编码器反馈的实际位置# ACTUAL可能造成在页面上 轴的位置会有0.001的上下跳动, 这个不影响的, 觉得烦可以换成COMMANDEDPOSITION_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 ImagePROGRAM_EXTENSION = .py Python Scriptpng = image-to-gcodegif = image-to-gcodejpg = image-to-gcodepy = python[RS274NGC]# 存放一些运行参数的文件PARAMETER_FILE = parameters.var[EMCMOT]# 运动控制器名称EMCMOT = motmod# 基本任务与伺服任务的周期, 单位为纳秒# 这两项的取值可以参考LCNC延迟测试的结果# 详见UP[脏兮兮MrDirty]的视频https:# 不过由于走总线控制, 对延迟的要求比较低, 这个值可以填大一点 (意味着不挑电脑硬件)# 理论上不超过4ms都可用, 也就是4000000 (来自群友[彬_^__^_]测试)BASE_PERIOD = 100000SERVO_PERIOD = 1000000# 运动控制器中, 实时任务确认收到非实时任务的消息的超时时间, 单位为秒COMM_TIMEOUT = 1.0# 任务执行器的配置, 写死 不用改
[TASK]TASK = milltaskCYCLE_TIME = 0.010[HAL]# 启动时执行的.hal文件# 可配置多个, LCNC按顺序读取HALFILE = OFF-CNC.halHALFILE = 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或inchLINEAR_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), 值填-1e99MIN_LIMIT = -50.0# 轴运动的最大极限, 软限位, 超限时控制器中止轴运动# 生效需要归位# 对于无限旋转的旋转轴(如ABC), 值填1e99MAX_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.0MAX_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 = LINEARMAX_VELOCITY = 20MAX_ACCELERATION = 100.0MIN_LIMIT = -50.0MAX_LIMIT = 50.0[JOINT_1]TYPE = LINEARBACKLASH = 0.0000MIN_LIMIT = -50.0MAX_LIMIT = 50.0MIN_FERROR = 0.2FERROR = 1.5HOME = 0HOME_OFFSET = 0HOME_SEARCH_VEL = 0.0HOME_LATCH_VEL = 0.0HOME_FINAL_VEL = 1HOME_USE_INDEX = NOHOME_IGNORE_LIMITS = NOHOME_ABSOLUTE_ENCODER = 1HOME_SEQUENCE = 0[AXIS_Z]TYPE = LINEARMAX_VELOCITY = 20MAX_ACCELERATION = 100.0MIN_LIMIT = -50.0MAX_LIMIT = 50.0[JOINT_2]TYPE = LINEARBACKLASH = 0.0000MIN_LIMIT = -50.0MAX_LIMIT = 50.0MIN_FERROR = 0.2FERROR = 1.5HOME = 0HOME_OFFSET = 0HOME_SEARCH_VEL = 0.0HOME_LATCH_VEL = 0.0HOME_FINAL_VEL = 1HOME_USE_INDEX = NOHOME_IGNORE_LIMITS = NOHOME_ABSOLUTE_ENCODER = 1HOME_SEQUENCE = 0# [SPINDLE_<num>] <num>从0开始, 最大为num_spindles-1
# num_spindles由[TRAJ]SPINDLES设置
# 默认情况下, 主轴正转和反转的最大速度约为2147483000RPM
# 默认情况下, 主轴正转和反转的最小速度为0RPM
# 默认情况下, 增量为100RPM
[SPINDLE_0]# 主轴最大正转速度, 单位为RPMMAX_FORWARD_VELOCITY = 1000# 主轴最小正转速度, 单位为RPMMIN_FORWARD_VELOCITY = 0# 主轴最大反转速度, 单位为RPMMAX_REVERSE_VELOCITY = 1000# 主轴最小反转速度, 单位为RPMMIN_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和YTOOL_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