找回密码
 注册

快捷登录

楼主: a67540

关于数控系统的一点见解

[复制链接]
发表于 2019-11-20 07:16:24 来自手机 | 显示全部楼层
LvSoft 发表于 2019-11-20 02:09
9 L+ K* @8 D  P) p7 c; Z本帖最后由 LvSoft 于 2019-11-20 02:10 编辑
3 O0 P2 S$ ?% A2 E$ P: `  g4 h
( }  `" }- P' @3 r
3 V0 D+ j) ?" x3 n- P$ t" t# n你玩过不等于你了解具体的算法和硬件实现细节,至少在我看来你这些说法都相当的外行。比如在旁边电焊不影响什么的跟维宏还是mach3没一毛钱的关系,只是接口板保护隔离有没有做到位罢了。* e$ N3 j2 S- T1 B+ ?5 z

6 Q& B, E, u, D6 d$ H* X) L& J$ i" }7 |  a0 n: X, m0 i
说到mach3,首先要知道mach3是什么,起什么作用。& Y  ], }" x3 {% _( ]0 X
9 f# ]3 J2 R- d/ q
mach3是做一个运动控制的功能。也即解析gcode,并把gcode所描述的路径轨迹解析成实时的位置脉冲发送给步经/伺服。这个脉冲的实时性是极其重要的,如果实时性不佳,反映到电机上就是控制速度会有起伏(抖动,甚至丢步);反映到多轴上就是无法同步(画圆不圆之类的)。然而其实pc的实时性能力是极差的。所以为啥mach3需要用并口,需要找老主板,需要跑xp这种老系统。那是因为并口就是gpio,是仅有的cpu直接操作的外设(但现代cpu也挪到南桥上了),xp这种老系统也更简单一点,对cpu的打断也稍微少一点。但不管怎么搞,windows系统本身的实时性撑死了就到1毫秒,也许能整进0.5毫秒吧。总之我对windows没太多研究,不是很感兴趣。windows下有高实时性的专业解决方案,是IntervalZero的RTX。性能跟我后面要说的实时linux相当,但要钱的。反正mach3肯定不是用这种专业解决方案的。+ Z# w$ J& z$ a% r+ a' b6 `* n
* X7 r* U: \! E9 w; ]; ]
然后是mach3 + usb cnc,这里问题就来了。usb是比并口延迟更大更不可控的接口。usb最快也就是用usb2.0,跑在480M高速带宽下有个125us的微帧模式,也即不管你怎么实时,pc发的指令一定按照125us对齐到板卡的。这个还是理想情况,实际上我猜测usb板卡应该是走的HID设备,那这个指令还是按照1ms对齐的。当然,这个问题到了usb3.0是不存在的(但市面上也并不存在usb3.0的usbcnc板卡)。所以有些usb板卡上面是有fpga的,fpga是运动控制的终极形态之一(另一个是dsp),他们能产生实时性极高的脉冲(抖动在10纳秒级),但这里先不谈后面再细说。当然更多的还是便宜的usb板卡,本质上就是一个usb形态的并口,依然由mach3靠cpu负责产生脉冲信号,这种基本上就是最差的解决方案没有之一了。
  W1 k  j) N5 v, B1 `# u5 {7 X9 m( j4 U% @4 ]3 h3 W. W9 |. c
另一方面,说说mach3基于cpu实现的优势,那就是cpu能力极其强大,所以你不用担心各种功能实现。什么加速度,加加速度,你想要多少阶的加速度计算,理论上mach3都可以很简单的实现,只要你觉得有必要都没啥难的。所以虽然我不太喜欢mach3,并且也不知道mach3的具体实现复杂度如何(也许mach3就是实现的很简单),但至少这些并不是必须要维宏或者其他专业板卡才会有优势的地方。此外我曾经某个老外的论坛看到一个说法,说mach3用的也是grbl的内核,grbl的代码我大致看过,也确实做的挺简单的。
: ^! g, C2 F5 W! l2 P+ z& }" \
下面说说fpga方案。fpga就是把mach3在cpu里面做的需要高实时性部分的事情承担了。但在fpga上实现功能是远比在cpu做要麻烦的,所以虽然我现在用的是fpga的usbcnc板卡,但我也并不清楚丫到底把哪些部分挪进了fpga。比如可能是只把直线运行挪进了fpga,复杂的多轴曲线指令全部在mach3端转换成线段等等。这块才是各家体现技术实力和专业性的地方,并且也是运动控制最有技术含量的部分。据我所知国内虽然有几家在做的,但跟国外对比应该依然是有不小差距的。所以我不认为国内市场会有非常专业的解决方案,也不认为维宏能代表专业,充其量摸到专业的门吧。$ y7 D9 {, |# B% M  `
" N! L+ `, X! ^
最后,还是回归本源,说说diyer适合的方案。除了mach3之外,基本上只有2个方案可以考虑。一个是linuxcnc(改名为emc2),另一个是grbl。linuxcnc的做法和mach3完全一样,也是用cpu来实现运动控制的计算和脉冲控制。不同之处在于linuxcnc基于打了实时补丁的linux系统,实时性最好可以达到10us左右,但这个实时性一样跟采用什么主板,什么外设等等有很大关系,并且也还是需要并口才能发挥这个实时性,所以linuxcnc存在和mach3类似的问题,主板都很老很不好选。现在国外很多基于linuxcnc的diy机器都是基于mesa卡的,这套卡是pci/pcie的fpga板卡。但linuxcnc的系统理念上并不支持把运动控制转移到fpga上,所以这些fpga只做最底层的脉冲控制和io扩展,只能说是解决了新机器没有并口的问题。但新机器要跑好linuxcnc也相当不容易,因为linuxcnc采用的实时补丁的linux系统又是比较老的,新机器用老内核不一定能很好的支持,而新内核的实时性补丁虽然也有,但实时性指标都不如老版本做的那么高(因为新版本的linux也越来越复杂了)。总之linux的实时性方面的话题可以写一篇跟本文一样长篇幅的帖子了,我就不展开了。- f7 [$ L% C" {* ]. [

6 q" W5 t% g4 C1 _$ I8 ~$ C另一条路grbl,这条是我目前最看好的路线,我下一台cnc也会基于grbl做。grbl只是一套开源的gcode解析器,所以grbl被各种运动控制器广泛使用,然后随着开源的3d打印机的推进,grbl的运行环境也有了很大的改善。grbl跑在pc上,由于pc固有的复杂性,实时性撑死了就是linuxcnc的程度,极限就是10us上下了(最少有人做到过4us)。但如果在嵌入式mcu里面跑,情况就不同了。嵌入式mcu硬件上没pc这么复杂,软件上也没windows/linux这么复杂的操作系统,所以实时性是高度可控的。比如stm32的典型ping-pong中断响应大概就是几百纳秒。同时现在的mcu性能也不弱,编程难度跟cpu差不多,所以一样很容易搞出高复杂度的功能。最重要的是开源,想加什么可以自己搞。
+ w7 }9 v% H7 M4 P- z/ N( x5 L+ _0 t% {+ {  r) h, P+ h
具体来说,大部分3d打印机都是用avr这种8位mcu跑grbl,虽然已经最大化的挖掘了avr的潜力,但8位mcu毕竟还是太落后了一点,我目前比较看好基于grbl的smoothieware。这个是跑在32位mcu上的,这款mcu有100Mhz主频,性能比avr强了不少,据说可以达到200Khz的闭环控制能力(也即最差也得有<5us的实时性),虽然还是弱于专业方案,但也相当接近专业级了。我目前准备把smoothieware迁移到目前最快的mcu上,大概有600Mhz主频,这样性能应该还能翻个几倍,这样基本上就和比较弱一点的FPGA专业方案相当了。同时功能方面也不会有短板,自动换刀什么的都可以有,搞并联轴,delta, scara,6轴机械臂什么的也都没问题。并且源代码开放,比如我需要搞双y轴重心驱动,这些都可以自己加上,而且代码量也不大。

. ]5 ]2 R' T; a你字多你是对的。
 楼主| 发表于 2019-11-20 09:16:12 | 显示全部楼层
LvSoft 发表于 2019-11-20 02:09
+ ]7 N; v$ O4 y2 j7 ~2 x, E+ @4 W- ]你玩过不等于你了解具体的算法和硬件实现细节,至少在我看来你这些说法都相当的外行。比如在旁边电焊不影 ...
. r6 y  o7 p, F
如果系统那么简单的话,为何国内那么多加工中心都是国外的系统,可见数控系统不是简单的东西。如果您真有实力,且不说 法兰克 新代 什么 我希望出个系统先干翻维宏,维宏五轴带rtcp报价可是3万67 \) @9 M+ L1 N
发表于 2019-11-20 10:21:10 来自手机 | 显示全部楼层
伊娃之剑 发表于 2019-11-19 09:16
, ?, l& T* W$ c8 _; q6 V维宏有一点不太好.就是刀路里如果有好几种刀的话.无法选择单个刀具加工.比如加工要用5种刀只能做5个文件了...以前精雕的控制系统非常好,软件很小可以选择刀具加工,还可以用鼠标框选个别刀路单独加工,还自带很多优化,比如下刀后停顿一下再走可以很好的保护刀具...可惜没有D版机器用那个系统

- c5 T4 }4 p% S, q/ G请问你说的是那个参数实现是,我用的正版维宏,不知道你说的是该改那几个参数,谢谢
发表于 2019-11-20 10:55:36 | 显示全部楼层
a67540 发表于 2019-11-20 09:16
7 Q/ O2 G6 j+ A5 @5 G2 Z% H如果系统那么简单的话,为何国内那么多加工中心都是国外的系统,可见数控系统不是简单的东西。如果您真有 ...

. w# E" M; l6 W8 O我没说过数控系统简单啊,运控是机器人三大核心技术之一。cnc的运控虽然没机器人复杂,但5轴联动需要处理的问题也是一样的。' T& K: \9 U( W
另外3.6w对个人来说贵,对公司来说大概就是36块钱的概念。我也对做运控不感兴趣,现在早就不是做这个的好时间点了。) v  Y% d: F$ s$ s
发表于 2019-11-20 11:40:07 来自手机 | 显示全部楼层
我个人认为m3这个算是新手级的系统,也可以叫玩具级的,但是我觉得少了它还不行,刚接触cnc的新手 我倒是认为m3是首选,正是因为它有这样那样的毛病  才能让新手在短时间内成为老手  。我倒觉得一开始就一帆风顺的未必是好事   总得磨练磨练吧等把这个系统搞的差不多了   才接触别的东西  一但出现啥问题  也能迎刃而解不是?
发表于 2019-11-20 11:41:21 来自手机 | 显示全部楼层
这贴说得真好,有得必有失,本人维宏和MACH3一起用,
发表于 2019-11-20 14:31:07 | 显示全部楼层
玉雕师傅 发表于 2019-11-20 10:21
( g( Q) l( _; b! f+ \: Q" D" e请问你说的是那个参数实现是,我用的正版维宏,不知道你说的是该改那几个参数,谢谢
# T1 s6 o: L6 \9 k9 K! p$ I
我用的是D版老版本的没得改...,如果你是正版的应该可以打电话去维宏公司咨询下.
/ L4 d! F5 j& g. b+ \' N# ?1 M& ^8 A
头像被屏蔽
发表于 2019-11-20 22:14:12 来自手机 | 显示全部楼层
辛亏没用m3
发表于 2019-11-22 13:41:55 来自手机 | 显示全部楼层
% `: H: v8 D6 M3 T( J" S( z5 i9 j
你这系统不便宜啊
发表于 2019-11-24 16:32:27 | 显示全部楼层
个人进cnc世界时间短短,从一个完全小白进入这个世界需要许多这方面的资讯,但在版块也不见一些入门解说,今天看了这一整编真是大有收获,之前问了也不见有人原意回,但看了这样一来一回的解说才更深入知道些cnc的知识,谢谢大家啊,cnc水深或许大家都像瞎子摸象,摸到什么就以为是什么了,但引来更专业的回贴更是让人惊喜啊。
发表于 2019-11-25 10:39:55 | 显示全部楼层
LvSoft 发表于 2019-11-20 02:09
, X: ?9 }/ z& n8 ^4 k9 n+ |你玩过不等于你了解具体的算法和硬件实现细节,至少在我看来你这些说法都相当的外行。比如在旁边电焊不影 ...

4 m5 r7 Z& L( E2 o0 W关于M3我们的理解都是一样的,受电脑系统的影响,软件不可能直接中断硬件进行操作,使用一般情况下M3也只能凑合用一下吧% |$ F$ @: h/ g0 q
关于USB控制卡,我不是专业的,我认为有以下几种5 }4 f9 g* Q7 W+ r  ~9 }

. d! i: c7 f0 P. O8 q' E& LUSB--MODBUS    利用M3自带的MODBUS协议进行转换以USB的形式在板上进行信号发生与整理,输出,这个总应该是最简单稳定性最差的,板上只有单片机的可能用的这个方式。
# T( Y: `( ?: d7 j9 b% u; r( jUSB+MCU+FPGA    板上有MCU和运动控制芯片的大概是这种,市场上的主流,千元左右。这个需要专用的插件与M3配合,使用专用协议,M3发送每一行G代码给MUC进行解释,将每轴信号发给运动控制芯片进行脉冲发生输出,MCU同时负责外围IO的响应,输入输出。USB信号负载低,性能好,主要问题的延时。由于MCU需要给M3返回响应信号所以可以热插拔,断开M3就暂停,接上就可以从断开出继续运行,实际运行延时是很大的,所以这类卡都把自动对刀端口定死了,只能接专用口上。我用的佳门卡就是这类,速度200K,我光轴机57电机能上F8000,机架不好意义不大,实际使用F1500。
6 h/ c8 j8 O! e7 c' `% ?grbl,我不认为M3是使用grbl内核,M3出现的早,grbl流行的晚,只能说可能算法大致一样。grbl是流行在3D打印机之后的,一般使用的16位-32位的MCU,3D打印使用也是G代码,grbl项目可能是把3D打印的核心移植强化而来的,我认为可以直接用3D打印模块就够雕刻机使用。现在市场上1000-3000元的脱机控制器可能就是使用grbl移植的STM32F107或者407(内部没见过,只是揣测)。0 N7 L  O1 Q* a& k" l

) c# B2 V: Y1 g+ j7 f0 c4 B/ N
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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