没有合适的资源?快使用搜索试试~ 我知道了~
linuxcnc关于HAL部分的中文粗略整理
5星 · 超过95%的资源 需积分: 47 102 下载量 198 浏览量
2019-01-10
15:17:21
上传
评论 10
收藏 303KB DOC 举报
温馨提示
试读
21页
本文档只是对HAL的部分内容进行中文的粗略的整理 有些我还觉得不重要的没有整理 后期如果整理 我会零分贴上来
资源推荐
资源详情
资源评论
14.1.2 HAL concepts
这部分主要是关键的 HAL 条目。
Component:
传统硬件设计指的是各个部分。HAL 等价于一个 component 或者是 HAL
component(本文档通常情况下用 component,但是如果和其他的 component 模
糊不清的地方就用 HAL component)。一个
HAL component
就是 一个 软件 , 定义
好输入输出以及
behavior ,能够被安装以及
interconnected 。
Parameter;
许多硬件组件都有预留可扩展接口,即使并没有连接到其他的组件,但是
任然必须留出来。例如伺服放大器经常有 trim pots,允许 tuning adjustments,或
者是 testpoint 允许连接一个 meter(仪表)或者是显示器来观察 tuning 结果。
HAL component
也有这样的一些 条目 ,被称作
parameters 。 这样的 parameters(参
数)有两种类型:输入参数相当于 trim pots-这些值可以被 User 调整,并且已经
修改即 fixed。输出参数不能被 adjusted,相当于 Test point 允许内部信号被监测。
Pin:
硬件组件有他们互联的终端。在 HAL 里面相当于一个引脚 Pin 或者是 HAL
pin(在避免混淆的时候用 HAL pin)。所有的 HAL pin 都是有名字的。当他们互
连(interconnect)的时候就是用的是名字。HAL 是软件实体(entities)只存在
于电脑内部。
Physical pin:
很多 IO 都有真实的物理引脚或者是终端以连接外部硬件。例如并口的引脚。
为避免混淆,被称作物理引脚。
Signal:
在物理机器中,real 硬件组件你通过 wires( 线 ) 连接 的。 HAL
中 等价的 是
一个
signal
或者是
HAL signal 。HALsignal
连接
HALpins 。HALsignals 能被断开
或者是重连即使机器在运行。
Type:
当你用硬件,你肯定不会将一个 24V 的继电器(relay)输出连接到一个+-
10V 的伺服放大的模拟输入。HALpins 也有这样的限制(restrictions),这些都
是基于
他们的类型。Pins 和 signals 都是有类型的,也只有相同的类型的可以被连接,
目前是四种类型:
• bit - a single TRUE/FALSE or ON/OFF value
• oat - a 64 bit oating point value, with approximately 53 bits of
resolution and over 1000 bits of dynamic range.
• u32 - a 32 bit unsigned integer, legal values are 0 to
4,294,967,295
• s32 - a 32 bit signed integer, legal values are -2,147,483,647 to
+2,147,483,647
Function:
Real 硬件 component 倾向于对输入做出立即的响应。例如伺服放大器对
输入的电压会自动的做出响应。然后软件 component 是不会自动响应的。每
一个 component 都有特定的代码无论这个 component 用来干嘛。在有些情
况下,这些代码只是作为 component 的一个部分运行。但是在大多数情况下,
特别是在实时 component 下, 代码必须要以特定的顺序和特定的间隔运行。
例如,输入应该在输入数据被计算之前被读出来,输出不能被写知道计算完成。
在这些情况下,代码是以一个或多个函数提供给系统。每个函数都是一个代码
块并且表现一个特定的动作。系统集成可以用线程(threads)去规划一系列
函数,以特定的顺序和特定的间隔运行。
Thread;
一个线程(Thread)就是一系列函数以一个实时任务的特定的间隔运行。
当线程被创建时,有一个特定的间隔,但是没有函数,函数可以被添加到线程,
每次线程被执行时都会以一定的顺序执行。
一个例子:我们有一个 component 命名为:hal_parport。这个组件定义了
很多 pins FOR 每个物理引脚。并且每个 pins 都在文档中做出了描述,名字以
及相关联的物理引脚,是否倒置,是否能改变极性等。但是仅靠这一点不能讲
数据从 HAL 引脚传输到物理引脚,需要代码来做这个工作,这就是函数的作用。
这个 parport 组件需要至少两个函数:一个是读取这个物理引脚的数据并更新
HAL 引脚,另外一个是从 HAL 引脚拿数据并传输到物理引脚。
14.1.3 HAL components
每个 HAL 组件都是定义好输入输出以及 behavior 的,并且能互连的软件。这个
部分列举了一些组件以及一个简单的说明。详细的说明在文档后面会有的。
14.1.3.1 External Programs with HAL hooks
motion
iocontrol
classicladder
halui
14.1.3.2 Internal Components
stepgen
encoder
pid
siggen
supply
14.1.3.3 Hardware Drivers
14.1.3.4 Tools and Utilities
14.1.4 Timing Issues In HAL
14.2 Basic HAL Reference
14.2.1 HAL 命令
更多详细的信息可以在 halcmd 手册上找到:在一个终端窗口上运行:man
halcmd
用 HALconfiguration 窗 口 ( onthemachinemenuinAXIS ) 可 以 查 看
HALconfiguration 以及检查引脚以及参数的状态。
14.2.1.1 loadrt
命令 loadrt 加载一个实时的 HAL 组件。实时组件函数(functions)。实时组件需
要被加载到线程上以线程的速度进行更新。不能将用户层组件加载到实时空间。
语法实例:
loadrt mux4 count=1
14.2.1.2 addf
将函数 functname 添加到线程 threadname。默认的是按照在文件中的顺序进行添
加。如果指定了位置,将函数添加到线程的那个 spot 即可。负位置表示线程尾
部的位置。例如 1 是线程的开始,-1 是线程的结束,-3 是第三从尾部开始算起。
一些函数有必要按照一个特定的顺序如 parport 读写函数,加载。函数名字通常
是组件的名字加上一个数字。下面的例子,组件 or2 备件在,show function 显
示了 or2 的名字
$ halrun
halcmd: loadrt or2
halcmd: show function
Exported Functions:
Owner CodeAddr Arg FP Users Name
00004 f8bc5000 f8f950c8 NO 0 or2.0
通常情况下有两种线程:有些组件用浮点,需要被添加到一个线程(支持浮点
运算的)。FP 表明此线程是否支持浮点。
base-thread(高速线程):这个线程处理需要高速响应的条目。比如产生步进脉
冲,或者是读写并口。不支持浮点
servo-thread ( 低 速 线 程 ) : 可 以 处 理 一 些 稍 慢 的 响 应 条 目 , 比 如 运 控 器 ,
Classicladder 以及运动命令处理并且支持浮点
语法实例:
addf mux4.0 servo-thread
14.2.1.3 loadusr
命令 loadusr 加载一个用户层的 HAL 组件。用户层的程序是他们自己分开的进
程,有选择性的跟你其他 HAL 组件通过引脚和参数进行通信。 不能将实时组
件加载到用户层。
标志如下;
-W 等待组件准备,组件假设和命令的第一个参数名字一样
-Wn<name> 等待组件,给定名字
-w 等待程序退出
-i 忽略程序并返回 value
-n 命名一个组件
语法实例:
loadusr halui
loadusr -Wn spindle gs2_vfd -n spindle
14.2.1.4 net
命令 net 创建一个连接 signal-------一个或多个 pins。如果 signal 不存在,net 创
建一个新的 signal。可选的箭头方向:<= => 和 <=>,很容易掌握这种逻辑当读
取一个 net 命令行。方向箭头与引脚名必须要用空格分开。
语法实例:
net signal-name pin-name <optional arrow> <optional second pin-name>
net home-x joint.0.home-sw-in <= parport.0.pin-11-in
对上述实例的解释:
剩余20页未读,继续阅读
资源评论
- rookie_always2019-05-07中文的,不錯!
- cscheng79072019-01-30很不错,看这个基本自己都要按照说明整理一下笔记的aha_shameless2019-02-27多交流啊 我看做这个的人都没有 大家都隐姓埋名
aha_shameless
- 粉丝: 5
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功