LinuxCNC的初步了解

LinuxCNC的了解

初步认识LinuxCNC
原名EMC2(Enhanddced Machine Control 2)增强型运动控制器,主要由以下几个部分组成
1 运动控制器 EMCMOT
2 I/O控制器 EMCIO
3 任务调度控制器 EMCTASK
4 用户界面 UI
以上4个模块中只有EMCMOT是实时控制模块,其他三个都是非实时控制模块

在初步了解LinuxCNC的基本组成模块之后,我们需要对其通信模式进一步了解。

模块之间的通信

模块分为实时模块和非实时模块,其中实时模块只有运动控制系统EMCMOT,其余的EMCIO,EMCTASK UI都是非实时模块,因此通信主要集中在非实时模块之间,实时和非实时模块之间。
非实时模块间的通信利用NML(Neutral Massaging Language)通道进行通信
实时与非实时模块之间利用共享存储器或者实时队列(RT-Linux FIFO)机制来进行通信
此外还添加硬件抽象层HAL(Hardware Abstraction Layer)。用于提供硬件驱动模块和功能模块的运行环境

硬件抽象层 (HAL)

正确的链接要求:1HAL模块之间必须通过引脚来链接。2数据类型必须一致(浮点型,有/无符号整数型,布尔型)
此外LinuxCNC还提供两个开发定制HAl模块的工具:Comp和Classicaddr。前者主要用于编译用户自己写的HAL或者安装到LinuxCNC中。后者主要是基于梯形图编程的HAL模块开发工具,还提供Python语言的支持包,可用于非实时模块的开发

下面对LinuxCNC各个模块的介绍
运动控制模块EMCMOT
1、实时并且循环地执行轨迹规划
2、正向反向运动学计算并将结果输出到电机控制子系统中,相应的电机执行。
控制过程主要分为:1位置采样,2计算下个轨迹点,3轨迹点间的插值计算
控制模式主要分为:单轴手动模式,程控模式。

I/O控制器(EMCIO)
主要是与处理机床轴的联动无关的的其他I/O
组成部分:主轴从属控制器,自动换刀从属控制器,冷却剂从属控制器,
辅助功能(E-STOP,润滑)从属器,以及用户定义的从属控制器子系统

任务调度模块EMCTASK
对任务命令进行处理并对G代码进行解释
监视下属模块的状态(EMCMOT和EMCIO)并管理
接受操作者的命令,并解释为NML消息,并依据工作状态把NML消息分派到运动控制器,I/O控制器或者任务调度模块中去

用户界面(UI)
LinuxCNC和用户之间进行信息交流的媒介,
LinuxCNC提供keystick,xeme,tkeme,mini和AXIS,emcrsh等不同的界面。
其中keystick是基于文本的用户界面,不能在X11(X windows system)环境下运行,
但是剩余的其他界面都可以在X11下运行
emcrsh基于Telnet协议,用于远程会话
AXIS是当前最常用的图形用户界面,主要特点是配有一个与用户互动的G代码预览窗口

词语解释

G代码:数控程序中的指令,也称为G代码指令。使用G代码可以实现快速定位,逆圆插补,顺圆插补,中间点圆弧插补,半径编程,跳转加工

轨迹规划:如果是移动机器人则偏向与移动的路径轨迹。如果是工业机器人则是指机械臂末端行走的曲线规划或者臂在运动过程中的位移,速度,加速度的曲线轮廓。常见的工业机器人有点位作业(PTP point to point ),连续路径作业(continues path motion)

你可能感兴趣的:(LinuxCNC的初步了解)