HAL文件配置
针对
machine.hal
的(硬件抽象层)配置说明,这里仅汇总了日常使用中常用的配置,更多配置请查阅 LinuxCNC官方配置文档。
loadrt
用于加载一个实时HAL组件,通常用于加载一些对精确时序有要求的组件。
loadrt <component> <options>
参数 | 说明 |
---|---|
component | 组件的名称 |
options | 组件的配置选项 |
# 调用`ini`文件中的实时组件配置
loadrt [KINS]KINEMATICS
TIP
其中[KINS]KINEMATICS
是从ini
配置文件中的[KINS]
部分获取的KINEMATICS
值,即机器的运动学HAL实时组件。
# 加载一个内置实时组件
loadrt debounce cfg=1,5
TIP
其中debounce
是要加载的组件的名称,cfg=1,5
是传递给debounce
组件的配置。
3、加载一个自定义实时组件。
# 加载一个自定义实时组件
loadrt arisc pwm="p,p,p,p,p,f" in=PG7,PG6 out=PA13,PF4
TIP
其中arisc
是要加载的自定义组件的名称,pwm
、in
、out
为arisc
组件的配置。
loadusr
用于加载一个非实时HAL组件,通常用于加载一些对精确时序要求不高的组件。
loadusr -W <component> <options>
参数 | 说明 |
---|---|
-W | 等待组件准备好 |
-Wn name | 等待一个特定名字的组件准备好 |
-w | 等待程序退出 |
-i | 当与-w 一起使用时,忽略程序的返回值 |
-n | 为组件重命名 |
component | 组件的名称 |
options | 组件的配置选项 |
# 加载名为halui的组件
loadusr halui
# 加载名为gs2_vfd的组件,并为它命名为spindle。并且使用-Wn选项等待这个组件(名为spindle)准备好
loadusr -Wn spindle gs2_vfd -n spindle
# 加载名为lcec_conf的组件并向组件传入配置文件xml的路径
loadusr -W lcec_conf ethercat-conf.xml
addf
用于将函数添加到实时线程中。
addf <function> <thread>
参数 | 说明 |
---|---|
component | 组件的名称 |
thread | 指定线程base-thread或servo-thread |
position | 指定线程中的位置 |
WARNING
如果指定了position
,那么函数会被添加到线程中的特定位置。负数表示相对于线程末尾的位置。例如,1表示线程开始的位置,-1表示线程的末尾,-3表示从线程末尾数的第三个位置。
# 将debounce.0这个函数添加到base-thread线程
addf debounce.0 base-thread
# 将lcec.read-all这个函数添加到servo-thread线程
addf lcec.read-all servo-thread
net
用于在信号和一个或多个引脚之间建立连接。
net signal-name pin-name <arrow> <pin-name>
参数 | 说明 |
---|---|
signal-name | 信号名称 |
pin-name | 引脚名称 |
arrow | 可选的方向箭头<= ,=> ,<=> |
pin-name | 可选的第二引脚名 |
net xStep stepgen.0.out => parport.0.pin-02-out parport.0.pin-08-out
WARNING
创建或使用一个名为xStep
的信号,将其连接到stepgen.0.out
(这是信号的源头或输出),并将这个信号的值同时发送到两个目的地引脚parport.0.pin-02-out
和parport.0.pin-08-out
。箭头=>
表示数据的流向,即从stepgen.0.out
传输到两个目的地引脚。
net home-x joint.0.home-sw-in <= parport.0.pin-11-in
WARNING
将joint.0.home-sw-in
与parport.0.pin-11-in
连接到名为home-x
的信号。其中,joint.0.home-sw-in
是一个方向为IN的引脚,而parport.0.pin-11-in
是一个方向为OUT的引脚。这里的箭头<=表示信息流的方向,从parport.0.pin-11-in
传输到joint.0.home-sw-in
。
setp
用于设置引脚或参数的值。
setp <pin/parameter-name> <value>
参数 | 说明 |
---|---|
pin/parameter-name | 引脚/参数名 |
value | 指定的引脚或参数设置值 |
# 将parport.0.pin-08-out引脚值设置为TRUE
setp parport.0.pin-08-out TRUE
# 将arisc.pwm.1.pos-scale的值设置为INI配置文件中的[JOINT_1]SCALE值
setp arisc.pwm.1.pos-scale [JOINT_1]SCALE
sets
用于设置信号的值。
sets <signal-name> <value>
参数 | 说明 |
---|---|
signal-name | 信号名 |
value | 信号值 |
net mysignal and2.0.in0 pyvcp.my-led
sets mysignal 1
WARNING
先使用net
命令连接信号mysignal
到and2.0.in0
和pyvcp.my-led
,然后使用sets
命令将mysignal
信号值设置为1
。