搜索
bottom↓
回复: 40

研究与探讨一下 mach 软件并口上输出的波形

[复制链接]
头像被屏蔽

出0入0汤圆

发表于 2009-11-10 00:19:59 | 显示全部楼层 |阅读模式
一直以来,我都有留意到PC上运行的 mach 软件,在并口输出步进电机的脉冲信号时,有些比较特殊的地方。将它列出来,大家分析研究一下。

我DIY了一条测试线。 该测试线接PC的并口,不经过任何的电路,将并口的信号引出来:




(原文件名:01.jpg)


(原文件名:02.jpg)

现象1:并口输出的波形不整齐,两个脉冲的间隔不一定相同。但总的脉冲数目是正确的。


在mach 2 软件上,我输入指令,比如 G0 Y100, 让 mach 输出连续的脉冲信号。 (mach 软件的最小脉宽设成是10us)。

用 TEK TDS1012B-SC 示波器观察它的波形,发现与我们想像的不同,并口上输出的脉冲信号竟然是不整齐的,两个脉冲的间隔不一定相同。我刚才在两台 HP 台式机,及一台手提电脑上验证过,均是同样的问题。(mach2 , mach3 均有同样的问题。)   不过,脉宽还算比较准确。




(原文件名:SNAG-0000.jpg)


(原文件名:SNAG-0001.jpg)


(原文件名:SNAG-0003.jpg)


分析: 由于它的输出的脉冲数目是准确的,所以,步进电机运行的精确度没有受影响。 再加上我们的驱动器是8细分,这种不平均的脉冲,理论上却运行没有影响,但可能会导致电机的噪音加大。




现象2: mach 软件上设置脉宽, 用示波器实测输出的情况。 我用 mach 2 进行测试。

mach 软件设置的最小脉宽             用示波器看到的脉宽
--------------------------------------------------------------
   1us                                      2.6us
   2us                                      2.6us
   3us                                      3us
   4us                                      4us
   5-15us                                   对应于5-15us

也就是说,设置成1-2us时,输出均是2.6us.

出0入618汤圆

发表于 2009-11-10 00:26:32 | 显示全部楼层
因为Windows并不是实时操作系统。
Linux上有个开源的CNC软件,类似mach,是要给内核打实时补丁的:http://linuxcnc.org

出0入0汤圆

发表于 2009-11-10 00:28:56 | 显示全部楼层
广告位招租。。。并且来学习下。
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2009-11-10 00:33:01 | 显示全部楼层
【1楼】 gzhuli 咕唧霖
因为Windows并不是实时操作系统。
Linux上有个开源的CNC软件,类似mach,是要给内核打实时补丁的:http://linuxcnc.org
-----------------------------
能解释一下吗?我的概念是:

  DOS是实时操作系统?
  windwos 不是实时操作系统。
  Linux 是实时操作系统。

我知道有一个雕刻软件,是在DOS下运行的,并且是开源的。是否使用这个软件能获得更好的性能?

出0入0汤圆

发表于 2009-11-10 00:41:08 | 显示全部楼层
分析这玩意建议用阿莫的32通道逻辑分析仪

出0入618汤圆

发表于 2009-11-10 00:46:14 | 显示全部楼层
DOS只是“磁盘”操作系统,基本上只负责磁盘操作,对硬件不设防,随便玩。 :)
Windows是分时多任务操作系统,还有HAL硬件抽象层,所以只能自己写驱动,但也不是绝对的自由,而且黑箱操作,比较难。
Linux也是分时多任务操作系统,但开源,有实时内核补丁(来自RT-Linux,实时版Linux),技术上还算好办,但普通用户很难玩得转。

DOS的不妨一试。

出0入0汤圆

发表于 2009-11-10 00:47:52 | 显示全部楼层
WIN98应该就可以吧
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2009-11-10 00:52:20 | 显示全部楼层
【4楼】 h2feo4 无机酸
分析这玩意建议用阿莫的32通道逻辑分析仪
----------------------
逻辑分析仪反而不适合这里。这里需要观察动态的波形。

出0入0汤圆

发表于 2009-11-10 01:28:31 | 显示全部楼层
整到这个份上就有意思有看头了!过瘾!

出0入0汤圆

发表于 2009-11-10 01:59:59 | 显示全部楼层
windows下用并口只能这样,基本无解

出0入0汤圆

发表于 2009-11-10 02:16:44 | 显示全部楼层
好仪器派上了好用场!值!

出0入0汤圆

发表于 2009-11-10 03:50:08 | 显示全部楼层
主要是并口中断只能跑这个速度~

出0入0汤圆

发表于 2009-11-10 08:46:04 | 显示全部楼层
图太少,目前只看到图2肯定有问题

出0入0汤圆

发表于 2009-11-10 09:18:53 | 显示全部楼层
【1楼】 gzhuli 咕唧霖
        因为Windows并不是实时操作系统。
--------------------------------------
同意,操作系统的非实时性造成的,要不搞个Vxworks系统来驱动雕刻机,这个应该准吧
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2009-11-10 09:54:34 | 显示全部楼层
【12楼】 s99060
积分:287
派别:
等级:------
来自:
图太少,目前只看到图2肯定有问题
------------------------------------
没有问题。只是统计的时间太短。较长的统计时间,比如8秒,脉冲数目也是对的。 详情请参考: 首次动用三万元级别的LAB6051逻辑分析仪: 探讨不同核心速度下,mach 软件输出的脉冲数目

出10入120汤圆

发表于 2009-11-10 10:31:15 | 显示全部楼层
确实这样,WINDOWS编程其实调用的是API接口,不能直接和硬件打交道,应该在DOS下测试是准确的。

出0入0汤圆

发表于 2009-11-10 10:59:25 | 显示全部楼层
【15楼】 makesoft
确实这样,WINDOWS编程其实调用的是API接口,不能直接和硬件打交道,应该在DOS下测试是准确的。
=========================================================================================

没有这回事,WINDOWS编程当然可以与硬件打交道,直接控制硬件,装一个DDK就可以编写了。你看一下设备管理器中有一个"Mach  X Pulsing Engines",那个就是。

两个脉冲的间隔不一定相同,是因为MACH使用定时器产生中断,由驱动程序生成脉冲,属于软件处理有点时间间隔抖动也是正常的。

出0入0汤圆

发表于 2009-11-10 11:21:26 | 显示全部楼层
主要原因还是Windows不是实时的。当然,即便是实时系统,也只是改善抖动的范围。改善到什么程度,就看应用需求,FPGA应该是尽量精确的方案了。

Windows下,即便是软件调用底层API直接写硬件端口,中间也可能遭遇各种不好严格预测的系统调度,从而导致脉冲不均匀。
IO操作肯定都会被正确执行,也就是说,脉冲数量肯定是正确。
加上驱动应该不是自己拿到时钟中断,节拍还是要经过操作系统走一圈,里外里一折腾,这样的摆动就大了。

VxWorks或者其它实时操作系统,经历各种操作也是难免的,只不过实时性保证处理的时间可预估,可控,这样抖动不会太夸张而已。

出0入0汤圆

发表于 2009-11-10 11:41:42 | 显示全部楼层
这个我也发现了,mach下有个plus engine driver test的程序,显示的脉冲间隔不均匀
Windows下IO操作驱动并口只能这样了

出0入0汤圆

发表于 2009-11-10 18:47:37 | 显示全部楼层
dos开源软件turbocnc,am可以测试一下会不会出现问题,相对来讲,DOS下的软件也会稳定一上,http://www.dakeng.com/turbo.html

出0入0汤圆

发表于 2009-11-11 09:57:28 | 显示全部楼层
windows 下也有实时补丁包,RTX。可凌驾于ring0层上工作。

出0入618汤圆

发表于 2009-11-11 15:55:32 | 显示全部楼层
严格来讲,RT-Linux和RTX都不能定义为补丁了,两者都是凌驾于原操作系统之上的实时内核,Linux和Windows只是提供兼容的应用程序环境而已。

出0入0汤圆

发表于 2009-11-12 09:22:03 | 显示全部楼层
要想脈衝均衡, 可以怎么說,用現任何商用的操作系統都沒法精確做到, 因為任務
的調配是耗時的.有些實時系統可估算出基本的消耗時間, 但在要求連續輸出精密等
頻的脈衝也是不可能做到的,特別是用在運動器. 所以你用WIN 下面的各種CNC并口
軟件驅動電機,你會發現他發出的驅動噪音并不是那么均勻.
為了能做到均勻的理想脈衝, 你還要考慮到G碼解釋消耗的時間.因為G碼解釋消耗的
時間也是一筆不小的開消.其中開消包括數據讀取時間,數據解釋時間.
一個好的運動控制器,要考慮讀取數據所耗的時間,要盡可能的快.否則會造成刀路的運
行速度不均衡.特別用在曲面加工時,不良表現更明顯.嚴重者會造成加工時產生振動而
影響加工的表面質量.好的驅動設計可讓你的機器在任何條件下運行順暢而寧靜,從而
減少傳動衝擊帶來的絲杆磨損.并保證精度. 脈動的均衡性這是運動控制器性能的絕對
重要的指標.

為了提高數據讀取性能有很多方法,最間單是用大內存,用DMA,如果用卡最好用SDIO.

除以上因素會影響脈衝外, 圓插補,直線插補,座標點求值,曲線插補耗時均不同.
這些都要考慮進去.

如果你打算用DOS到運動控制器,你必需也要考慮到,字符和各種中斷造成的影響,所以你
用DOS也很難做出極品控制器.

如果你要設計一個優秀的運動控制器,我認為應該要做到:
1.要自行定做操作系統.把所有對脈衝有影響的因素去掉.(很難)
2.各種插補的耗時要均衡化.

所以用LINIX WINDOWS DOS 設計出理想的并口運動控制器是很有挑戰.
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2009-11-12 09:30:55 | 显示全部楼层
【22楼】 kmingroy说得很有道理。

出0入0汤圆

发表于 2009-11-12 12:34:43 | 显示全部楼层
要提高实时性,还是要靠独立的控制板完成的。版主利用手里的过硬工具,还是给大伙开了眼界,好事情啊!

出0入0汤圆

发表于 2009-11-12 13:32:41 | 显示全部楼层
并口输出脉冲如果时间间隔再分配一下是否有意义?

比如弄个简单的单片机中转电路,缓冲1~2ms左右的脉冲,然后尽量均匀化一下,再转发出去,间隔就变均匀了,数量也对。但是相应地就有2ms的延时了。开环控制来说,这点延时没有什么关系。虽然比不上完全解释G代码的复杂控制器,但是方案简单容易实现,效果能改善,也是值得的吧。

出0入0汤圆

发表于 2009-11-12 14:45:33 | 显示全部楼层
flysolo 飞叟
----------------
好主意,可以用usb 作為數據緩衝的接口.
然后再用分配發出.
這與usb 轉 串口 相似.

出0入0汤圆

发表于 2009-11-12 14:54:57 | 显示全部楼层
【21楼】 gzhuli 咕唧霖

RTX属于独立内核,WINDOWS的timetick必须经过RTX调配。一个简单的例子,windows死了但是RTX还是正常跑,记得只要windows没有导致hardfault,RTX核的程序将正常运行,所以可以判断RTX不依赖于WINDOWS内核,并且RTX程序内不能使用windows API.
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2009-11-12 15:51:27 | 显示全部楼层
【25楼】 flysolo 飞叟
并口输出脉冲如果时间间隔再分配一下是否有意义?

比如弄个简单的单片机中转电路,缓冲1~2ms左右的脉冲,然后尽量均匀化一下,再转发出去,间隔就变均匀了,数量也对。但是相应地就有2ms的延时了。开环控制来说,这点延时没有什么关系。虽然比不上完全解释G代码的复杂控制器,但是方案简单容易实现,效果能改善,也是值得的吧。
-------------------
方法不好。

1. 我在楼主位测试的是标准的稳定连续波形,这个方法好像可以。
2. 但在实际应用中,会有大量的不稳定的不连续波形,使用这个方法反而造成更大的失真。

出0入618汤圆

发表于 2009-11-12 17:21:05 | 显示全部楼层
【25楼】 flysolo 飞叟
并口输出脉冲如果时间间隔再分配一下是否有意义?

比如弄个简单的单片机中转电路,缓冲1~2ms左右的脉冲,然后尽量均匀化一下,再转发出去,间隔就变均匀了,数量也对。但是相应地就有2ms的延时了。开环控制来说,这点延时没有什么关系。虽然比不上完全解释G代码的复杂控制器,但是方案简单容易实现,效果能改善,也是值得的吧。
----------------------------
这个方案不可行。
你这方案其实是一个FIFO,但是FIFO是需要流控制才能正常工作的,在这个场景中,PC输出脉冲你无法让它暂停,往雕刻机输出的脉冲又不能暂停(本身就是要实现均匀输出脉冲的目的),那么FIFO总会有满或者空的一刻,满意味着丢步,空意味着输出不连续。
如果不用mach自己写一个带流控制的上位机,还不如做个直读G代码的脱机控制器?


【27楼】 real_sugar
RTX属于独立内核,WINDOWS的timetick必须经过RTX调配。
----------------------------
正是这样,RTX和RT-Linux都是基于独立的RT内核,Windows和Linux只是这个内核里面的一个进程而已,其实有点像DOS和Windows 98的关系了。
但是我不知道有没有CNC软件for RTX的,有的话应该能改善脉冲输出效果。
当然,单任务的脱机控制器还是最好的选择,只要插补处理能力跟得上,可以把控制做得很流畅。

出0入0汤圆

发表于 2009-11-12 17:21:20 | 显示全部楼层
方法不好。

2. 但在实际应用中,会有大量的不稳定的不连续波形,使用这个方法反而造成更大的失真。

-------------------
如果保证三轴的脉冲次序不变,就不会路径失真,即使时间间隔改变了。

你能不能抓一个典型的走小圆弧和折线转角的波形,同时抓三个轴的数据,发出来看看。

补充:能不能发zla格式的数据?cvs的数据不知道怎么图形化。

出0入0汤圆

发表于 2009-11-12 18:14:52 | 显示全部楼层
數據均勻化,同步算法是最具挑站性,不是間單的FIFO.
這與CD機的抗震緩衝和網絡媒體播放器的緩衝運作機理
還是有很大的區別.
  如果要嘗試去做,可能要把所有的失步規律找出來.
在用算法去處理. 不過這也是紙上談兵,我也沒有試過.
估計要實用化不是一般人能完成.
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2009-11-12 19:04:56 | 显示全部楼层
【30楼】 flysolo 飞叟
如果保证三轴的脉冲次序不变,就不会路径失真,即使时间间隔改变了。
你能不能抓一个典型的走小圆弧和折线转角的波形,同时抓三个轴的数据,发出来看看。
补充:能不能发zla格式的数据?cvs的数据不知道怎么图形化。
-----------------------
呵,你也使用ZLG的分析仪?

我们采购的分析仪,是ZLG最高端的系列,可以连续记录18分钟的并口波形 :)  迟些我们研究运动芯片与设计运动模块时,就会派上用场。

出0入0汤圆

发表于 2009-11-12 19:35:11 | 显示全部楼层
没有,但是我下载了它的软件,看上去似乎可以打开zla格式的文件,也可以输出csv或者bin文件,单不能输入csv文件。

出0入0汤圆

发表于 2009-11-12 20:42:30 | 显示全部楼层
并口输出脉冲如果时间间隔再分配一下是否有意义?
建议在步进电机的轴上绑一个激光笔,8细分的条件下一个一个冲脉冲,看天花板上你会发现电机大小步的问题,TA8435的8细分电机只走4步,就是说由4个脉冲它是不转的,不过1600个脉冲转一圈是不会错的。电机不同,驱动电压和电流不同,机械负载不同,大小步的情况都不一样,理论上可以找到一个组合,均匀的一个脉冲转一下,完美的8细分。有牛人说他的驱动256细分都可以做到没有大小步,别人都认为那是吹牛。
既然电机都在偷懒,并口输出脉冲均匀好像意义不大
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2009-11-12 20:52:00 | 显示全部楼层
【33楼】 flysolo 飞叟
没有,但是我下载了它的软件,看上去似乎可以打开zla格式的文件,也可以输出csv或者bin文件,单不能输入csv文件。
---------------
ZLG的软件写得不错。按某网友的说法:老周的性格不会为人作嫁衣。 所以,ZLG的软件,绝不可以输入CSV格式。

出0入0汤圆

发表于 2010-8-16 16:49:48 | 显示全部楼层
楼上的诸位大侠,怎么解决这个问题啊

出0入0汤圆

发表于 2010-8-20 21:25:27 | 显示全部楼层
回复【29楼】gzhuli 咕唧霖
-----------------------------------------------------------------------

北京精雕用的就是Windows XP+RTX

出0入0汤圆

发表于 2010-10-8 15:58:46 | 显示全部楼层

出0入0汤圆

发表于 2011-5-15 19:03:23 | 显示全部楼层
mark

出15入190汤圆

发表于 2011-5-16 11:13:37 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-30 01:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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