5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 2816|回复: 3
打印 上一主题 下一主题

mach3的稳定性分析

[复制链接]
跳转到指定楼层
楼主
发表于 2011-5-9 06:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
文章引至互联网,不是我写的,我也不明白。
    Mach3 CNC控制软件 是由美国ArtSoft公司开发,功能通过计算并口控制步进或伺服电机,从而实现控制数控机床,本软件支持所有国际标准G代码。
    Mach3 控制软件自推出已来受到全球千万爱好者的使用,原版并口版在大家使用中很是不稳定,大家给它的评价是:界面好,功能强,好用易学,唯一的是不太稳定!我公司结合多年对MACH3软件的研究与二次开发,特作详细分析如下:
    首先我们讲讲Mach3软件的组成:

    Mach3软件有四大部份组成:1,图型GUI处理,2,插件与外部VB处理,3,程序代码处理,4,设备驱动输出。

    1:图型GUI处理:是软件整个界面的显示与解译外部屏幕文件(如1024.set文件)此模块大约40ms执行一次,占用内存很少。图型显示在有3D图时会占用60-200M的内存,所以大家在打开大文件时,含有并口驱动的Mach3会显示很慢!

    2:插件与外部VB处理:对外的接口,包括所有的外设,如MODBUS等。

    3:程序代码处理:这是Mach3软件核心之一,主要解释程序代码,处理刀补与坐标系等一切前期处理,内含6000多个参数。处理好的数据在软件运行的内存中,绝大多数的参数变量可读与写,您在做二次开发时这些是很重要的。所有处理好的数据送到下级处理输出。

    4:设备驱动输出:是Mach3软件核心之重点,所有的数据要这个模块运算输出,包括插补运算。这个模块的驱动是“ Mach1/2 pulsing engine”,是利用电脑主机的硬件时钟来参考进行工作的,因实时性高很占用电脑资源。

    “为什么安装完成后您需要对系统进行测试,如上面所讲到的 Mach3并非独立程序,它的运行需要 Windows给出足够的空间,也就是说由于某些因素它不是在所有的系统中都
能运行………..因为这些因素的存在,当您检测程序是否安装好或发现问题时都有必要测试您的系统,虽然不是强制性的但也非常重要,双击您创建的 DriverTest 图标,将出现如图3.2所示的界面”。

    上面这段话就是来自“中文说明书”中,“DriverTest”程序就是脉冲设备驱动,这个是很关键的东西,如果您把“ Mach1/2 pulsing engine”,这删了保证没脉冲输出。

    并口的Mach3绝大部份的稳定性由“ Mach1/2 pulsing engine”的稳定性来决定,打开控制面板双击“系统”(System) 选择硬件点击“设备管理”(Device Manager),您可以看到一列设备以及他们的驱动程序,Mach3脉冲程序(Mach3 Driver)就在 Mach1脉冲调制装置(“Mach1 Pulsing Engine”)里面。

    “有些系统带有APIC(高级程序中断控制器)计时器,但是它的基本输入输出系统代码并不能利用它,这也将干扰 Mach3的安装,这个时候您需要 SpecialDriver.bat这样一个批处理文件,您可以通过 Windows资源管理器找到这个文件,并双击运行这个文件,这样 Mach3就可以使用老的 i8529中断控制器。当您下 载并安装了更新版本时,因为特殊驱动程序被新版本中的原始驱动程序替代,你需要重新运行这个批处理文件。”

    前面这段话也指的是“ Mach1/2 pulsing engine”所要运行的环境,简单的说就是它运行的参考时钟,一个不稳定的时钟,必带来“ Mach1/2 pulsing engine”的不稳定,而“ Mach1/2 pulsing engine”又是脉冲输出的主模块,所以我们要获得稳定的输出,那么必须要给“Mach1/2 pulsing engine”良好的运行的环境。

    我们在“配置”**框中选择“内核速度”指的就是给于这个设备的参考时钟,“内核速度”越大电脑要求越高,Mach3软件3.0版本最大的改进就是“Mach1/2 pulsing engine”的变化。

    上面这些微薄探说,您应该大概知道MACH3软件的工作原理,大部份的实时性与可靠性出在“Mach1/2 pulsing engine”,如下图:

我们要完全改变MACH3的命运,只能给它做手术了,那就是二次开发!!

接下来我们说说MACH3的外部运动控制器。

    Mach3软件是开放源代码的软件,说是开放但也不完全开放!很多东西不是很明瞭!Mach3软件可以二次开发按三种方式把脉冲输出交给外部运动控制器,1:积分插补器,2:可变时间输出,3:完全指令法。

    1:积分插补器:这种只符合G100上运行,好像非正常的算法。

    2:可变时间输出:这种很符合大部份按时间来定量输出的设备,您的设备如果是0.001ms的频率,那么在插件中指定外部设备频率,Mach3就会按此输出每个运算的数据到您的外部设备,当时间越小时数据量越大,数据解析越精,最小可按位输出,这时您就可以通过USB或PCI等接口获得数据的输出,处理后在到每个脚输出。

    3:完全指令法:是指MACH3只对程序进行解释不做任何运算处理,完全交有外部运动控制器处理,如“G01X100F1000”这行代码,MACH3只会把“100”的数据按放在X轴的缓冲,交由外部运动控制器去插补运算,这时的MACH3软件时最轻松的了。这时为什么呢?如果我们把“100”改成“1000”那么MACH3就要休息1分种再干活了,全部交由外部运动控制器去插补运算了。

    以上是对MACH3软件的内部工作方式及稳定性影起的因素,片面的探讨及说明,您在看到本文时您也可试着对MACH3软件进行二次的开发,进行外部运动的控制。由此来获得更高的实时性与稳定性!接口方面您可以用USB,PCI,CAN TCP/IP等计算机外设接口!USB时请最好不要使用HID类的设备驱动,因此类大多应用在鼠标、键盘、等外设驱动,另外最好不要使用前面两种输出方式,因那样还是占用了很多MACH3的时间,最好用第三种方式,但这样会增加您的硬件成本,据市场了解最便宜的运动控制芯片也要400多元,另外这种方式下开发难度也最高,因任何一却的事务都交由外部运动控制器了。

    如果您对单片机很熟借用第二种方式能很快的开发出USB等外设的MACH3接口卡,这里为何说是接口卡呢,主要只是把接口变了而于,大部份运算还是MACH3搞定的。




 

 

欢迎继续阅读楼主其他信息

沙发
发表于 2011-5-9 08:23 | 只看该作者
3
发表于 2011-5-9 08:42 | 只看该作者
宣传USB控制卡,现在感觉是:USB控制卡比并口输出的效果还要好?
4
发表于 2011-5-9 10:11 | 只看该作者
我倒是想到了一种方案  可以使 接口板 即不太贵,又要保持高实时性 ,同时极大地解放电脑,
正在做这方面的研究
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表