HAL文件配置

针对machine.hal的(硬件抽象层)配置说明,这里仅汇总了日常使用中常用的配置,更多配置请查阅 LinuxCNC官方配置文档open in new window

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是要加载的自定义组件的名称,pwminoutarisc组件的配置。

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-outparport.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-inparport.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命令连接信号mysignaland2.0.in0pyvcp.my-led,然后使用sets命令将mysignal信号值设置为1