首页 >> 气动钉

面向数控设备的实Linux系统构建与应用0手机连接器

文章来源:兰恒五金网  |  2022-11-18

面向数控设备的实Linux系统构建与应用

面向数控设备的实Linux系统构建与应用 2011年12月04日 来源: 随着嵌入式系统的迅速发展和广泛应用,嵌入式Linux以其强大的性能和开放性,越来越被开发人员所推崇。以CAI、IBM等公司和组织所建立的Embedded Linux Consortium(ELC)的成立更标志着嵌入式Linux已经走向标准化阶段。现在,各种基于Linux的嵌入式系统已被用于各行各业中。基于源代码完全开放的优势和可以与商业操作系统相媲美的良好性能,人们对基于嵌入式实时Linux平台的开放性的数控系统展开了很多的研究和探讨。国际上一些组织和研究机构在利用嵌入式Linux方面构建中高档数控方面已经取得了一些实质上的突破和进展[6]。系统构建方法与策略目前,作为世界上最大的开源项目,Linux技术取得了飞速的发展,在桌面应用、海量运算、消费类电子及工控产品等领域都有着广泛的应用。由于具有非常重要的实际价值,微型Linux系统构建一直被当作嵌入式领域的一个研究热点,也取得了一些研究成果,如基于软盘的小型Linux系统(floppy disk Linux project)、自启动U盘Linux项目(tiny Linux system with flash card)等等[1]。基于实际系统开发的需要,在借鉴国际上一些优秀的开源项目的基础上,本文作者给出了一整套构建专用实时数控系统平台(Real time numerical control system platform -RCNCP)的方案和策略。构建该实时数控系统平台的两个主要目标分别是:为达到验证应用程序接口的目的,研发一整套能实现所有数控模块功能的软件;建立一个媒介平台,在此基础上进行二次开发,可以方便的实现对机床、机器人、坐标测量机等自动化设备的实时控制[2]。基于RCNCP作为一个控制系统软件平台特性,笔者着重从是实时内核裁减与构建、Linux系统整合等两个方面。实时内核裁减与构建考虑到源代码的开放性及实时LINUX系统的迅速发展,笔者采用了REALTIME-LINUX作为 RCNCP控制系统的底层平台。具体适用版本Rtlinux-3.1和Linux核心2.4.16。具体实现步骤如下:获得需要的源代码文件:Linux-2.4.16.tar.gz Linux核心Rtlinux-3.1.tar.gz Rtlinux源代码patch_rtl-2.4.16、patch_rtlinux-3.1 补丁文件解压缩源代码并给打补丁tar-zxvf /tmp/rtlinux-3.1.tar.gztar zxvf /tmp/linux-2.4.16.tar.gzpatch p1root(hd2,0)Filesystem type is ext2fs, partition type 0x83grub>setup (hd2)Checking if“/boot/grub/stage1” exists... yesChecking if“/boot/grub/stage2”exists... yesChecking if“/boot/grub/e2fs_stage1_5”exists... noInstall /boot/grub/stage1(hd2)/boot/grub/stage2/boot/grub/grub.conf... succeeded Done.grub>quit这样就成功的把GRUB引导程序安装到CF卡上了,CF卡也成为可独立启动的媒介了。文件系统建立作为对嵌入式Linux系统支持的一个重要部分,笔者采用BusyBox来这一小巧工具来完成这一功能。其实现方法也很简单:tar-zxf busybox-0.60.5.tar.gz;cd busybox-0.60.5;make;make install然后把BusyBox安装到Compact Flash:上cp-r install/*/mnt/flash;安装完成之后,就可以使用BusyBox提供系统支持了。具体应用考虑到数控设备行业系统软件应用特点,基于分布式控制的思想,在已经构建的实时Linux系统基础上,采用组件化设计方法,整个控制系统软件按其功能分类可以划分为四个部分GUI(Graphical User Interfaces)人机界面、动作控制器Motion Controller(MOT)、输入输出控制器Discrete I/O Controller(IO)和任务指派器Task Executor(TASK),其系统工作流程图如图1所示。

图1 RCNCP 数控系统软件工作流程图

下面分别介绍这几部分的工作原理:GUI(Graphical User Interfaces)人机接口作为数控系统和用户的直接接口,必须能准确反映数控装置目前的状态,如各个坐标轴的位置,加减速设定、可编程IO地址等。同时也必须能及时响应用户的请求,到达指定的目标位置,这些都对GUI程序的编写提出了较高的要求。Motion Controller(运动控制)运动控制器MOT是数控系统中最重要的组成部分。它肩负起四个主要的实时任务:对所控制的轴进行位置采样,如果是伺服电机则从输入端口采样,如果是步进电机则用计数器累计出电机的当前位置;计算运动轨迹上的下一个点;在现所在点和下一个轨迹点之间进行插补运算;计算出对电机的控制输出,对于伺服系统,输出基于PID调节算法,对于步进电机,由于开环,控制脉冲输出与否取决于指定位置与累计位置的差是否大于一步。它还实现了许多其他控制功能,包括,可编程软件行程限制,硬行程限制和复位开关的接口,支持FF0、FF1、FF2三次前馈的伺服PID补偿,最大跟随误差的设定,可选择的进给速度和加速度,三种各轴独立的进给方式(连续、增量和绝对),线性和普通圆弧的混和顺序移动,可编程的正向和逆向运动计算等。MOT是用C编写的,因此具有很好的移植性。系统参数的设置采用类似windows下ini配置文件的方式设定,在程序启动和运行中读取。在配置文件中可以设定轴数量、轴类型、轴单位及其与回馈设备单位的比例,增益大小,调节补偿和轨迹计算的运算周期等大部分软硬件参数。而复杂的运动学算法可以按已规定的函数接口,用C编写好并连接,取代缺省的XYZ笛卡儿坐标的运动学算法。与硬件交互的硬件接口部分代码也可以用所提供API方便的重写,驱动不同的硬件设备,而无需改动其它部分。I/O Controller(输入输出控制器)输入输出控制器是用C++编写的,使用了RCS Library。它基于一个继承自NML_MODULE基础类的层次结构,其所有通讯都使用NML。考虑到输出控制器兼容性低,通常不能通过ini配置文件定制IO系统功能。在输入输出控制器和硬件之间设计了有一个用C语言写的API。通过它可以方便的驱动不同的硬件,而无需重写核心部分代码。TASK (任务控制器)任务控制器是整个系统的核心部分。任务控制器类似于输入输出控制器,都使用了RCS Library和ML_MODULE。它接受来自GUI或其他外部程序的G和M系列机械代码,解释成规范的命令,按顺序逻辑向两个控制器发出命令。图1示出了工作流程图。图2为系统运行界面。

图2 RCNC系统运行界面

结语随着信息产业的迅猛发展,后PC时代已经提前到来。在可以想象到的将来,嵌入式Linux必将在各个领域取得广泛的应用。笔者也在研究目前嵌入式Linux系统基础上,提出了一种新型实时系统架构,并应用于实际数控设备开发。在嵌入式Linux这一极富研究价值的领域,做出了有益的探索。(end)

郑州外阴瘙痒医院

成都哪家医院做包皮手术好

重庆白斑病医院哪家正规

曲靖祛痘

成都看抑郁好的医院