这个脱机工控系统是在国外的Machinekit开源工控的基础上改的,其实也就是LinuxCNC开源系统的嵌入式版本。LinuxCNC由于历史悠久不断更新加上功能强大可以二次开发,最主要的是开源免费,所以国内外用的人和公司非常多。国外大部分都是直接使用,国内的话基本都是像Mach3一样在其底层源代码的基础上二次开发另做GUI来使用。因为该系统比较复杂,初学者很难上手,所以写这篇帖子来简叙该开源工控的软硬件及入门使用方法。 系统用的硬件是一块叫BeagleBone的开源集成开发板,由TI半导体官方研发生产,价格大概350块左右(http://beagleboard.org/Support/bone101)。CPU为AM3358芯片,主频1G,内存512M,固态硬盘4G,外带HDMI和USB、SD卡等接口,接上一台显示器外加无线键鼠就是一台小电脑了,这配置较之现在市面上的脱机控制器已经强了很多,但跟电脑肯定没法比,好在数控系统对电脑性能要求不算太高,8核的CPU跑Mach3不一定强过老奔腾处理器。之所以要用这块开发板而不选择树莓派香橙派那些更便宜性能更强的开发板是由于两方面的原因:一来该开发板外接管脚非常多适合用来驱动数控系统,二来主控芯片AM3358集成了两个200M频率的PRU,其实就是两个高速单片机,200M的双核单片机是什么概念呢?以nmotion驱动板为例其主控芯片就是200M频率的双核单片机LPC4337,有了这两个单片机不用外加FPAG等驱动芯片就可以很轻松的取得500K以上的驱动速度。综述来讲这款开发板就相当于一台主机外加高速驱动板,但体积仅有一张银行卡大小。这块开发板可以像GRBL用的Aruduno开发板一样直接外接线控制电机等驱动,但更保险的做法是外接隔离光耦加上隔离电源以防烧机。 有了硬件还需要软件,整个LinuxCNC系统的编译还是非常麻烦的,需要编译安装Linux系统、实时内核再加上LinuxCNC这个软件,好在已经有了编译好的现成映像可以直接下载烧录。在如下地址:https://elinux.org/Beagleboard:B ... _Revs.29_Machinekit下载映像文件(8.7版本),然后用Etcher软件做成SD烧录卡,最后将SD卡插入BeagleBone开发板就可以自动装系统烧录了。烧录完成后上电开机进入Linux系统,然后选择LinuxCNC软件的快捷方式即可进入该数控软件,基本上跟windows电脑端操控Mach3是一样的。不同的是各参数配置上,Mach3的配置可以在GUI各种下拉菜单中完成,LinuxCNC则必须通过用脚本语言配置ini文件和hal文件来完成。其中ini文件主要用来设置系统各轴行程、速度、加速度、回零等参数,hal文件主要用来配置各轴STEP/DIR、限位、STOP/暂停、主轴PWM等外接管脚。至于具体这两个文件脚本语言的写法需要仔细阅读LinuxCNC_Integrator_Manual.pdf和LinuxCNC_HAL_Manual.pdf这两本官方手册,更简单和偷懒的方法是直接拿系统中已经配置好的现成文件来用就行。 最后再讲一下大家普遍感兴趣的五轴RTCP功能,LinuxCNC不仅能实现摇篮、摆头等各种结构的五轴RTCP功能,由于支持九轴还能实现对DETA结构、机械臂等各种非笛卡尔特殊结构机床的控制。以五轴摇篮结构的RTCP功能为例,首先需要了解其空间坐标转换的算法,具体算法参考如下地址:http://www.linuxcnc.org/docs/ja/ ... xis-kinematics.html。然后根据坐标转换的算法用C语言编写坐标转换的程序,最后再将该程序编译进LinuxCNC系统就行了。其它的摆头结构和机械臂等特种结构也是如此,当然嫌麻烦的话也可以直接用系统中已经编译好存在的各种摇篮、单双摆头、机械臂等结构。用LinuxCNC还有一个好处就是可以直接用Mach3的后处理,因为Mach3底层代码都是LinuxCNC的,所以两者支持的G代码基本一致,故后处理基本也可以通用。 宣传一下我的QQ群:1001482975 欢迎各位大佬小白加入讨论!
|