|
发表于 2021-2-21 11:32:59
来自手机
|
显示全部楼层
Live74 发表于 2021-02-21 02:01- i3 y7 z* a. {. ?. B
本帖最后由 Live74 于 2021-2-21 02:03 编辑
/ ?9 w" q/ v& M6 h; Q: a+ d. c8 t
- m, \+ E; h! B5 A# W一直没冒过泡, 借楼主的贴子, 也说一下mach3没有意愿抬杠, 只是单纯的交流一下( S- G" h- U! c
1 `" B2 i0 b, z6 u8 U
7 V; B7 n3 q3 @7 q; G6 O/ e1. 组装机没有任何问题, MACH3不稳定的原因也完全不是组装机, 电脑的运行环境是12V, 内部不存在高压. % c, A3 Z0 k9 Y
3 q4 M# s, {. o( W* `+ K% u- {7 @' E% t即便是因为插座地线没接, 外壳带电也完全不会影响到mach3的运行.
: c; o' x0 c, S& @, S. e; ^* C" P2 d0 ]8 T; \
同样, 与电脑本身资源有关系, 包括同时开的软件, 看电影什么, 但这个关系几乎可以小到忽略, 至于到底是什么影响最大, 这个一会后文会有说明.: G; g: f; o8 Y$ |" `0 t8 v A: s
/ h, N3 O- T( @6 B* D% k% ~4 J5 z1 ~2 u& j% |" J
2. 并口和USB确实有一些区别, 但主要瓶颈不在这里, 并且提升有限, 稳定的并口甚至优于USB,
- n0 o5 W! U- Q( Z8 N; i( B! O4 p0 o& P5 o
所谓的USB控制板就是多了一层处理而已.: {- W5 i4 n# s
3 p7 l% K7 G* I1 y. U) u至于发那科三菱用什么光纤也纯属无稽之谈, 1 b$ P. A% n5 F; O8 e. P
4 p0 a& X5 d& l) {3 x& {2 r b. M
不知各位有没有见过比较早版本的三菱或者发那科, 不支持U盘的, 必须用电脑连着然后用DNC模式在线加工. + j2 |6 g* Q1 m8 w8 M
2 R! d; @4 f* M
* ]( m7 y: F+ y6 ?, Y* l3. 脱机系统与mach3这种类型有本质区别, 一个是RTOS, 一个是借用了缓冲区.6 M3 ]- S; V1 s' b0 p& j- P
7 U* d g+ C/ b1 Z
- W% Y% K/ a: o( `
+ p! c9 R- z$ N! H3 f$ I下面讲一下mach3的问题
; L% }1 s/ @! q% V9 d/ u! H1 { B# |- C4 y. n
mach3, 实际是有三种模式的, 这三种里有完全不同的两种,
) q# K# {- @$ Z3 x% B* h! [' C# K0 R r& I6 w4 }* {
1. 积分插补# o/ k4 n3 d1 H& T9 V
2. 可变时间输出$ }/ E" R- Q6 D( |6 q
3. 完全指令( B3 W, F- L# l
" M! `) e) c6 _( L( P
木友们使用的, 99%是上面的第一种和第二种.
" H) P. C: t: Y8 x3 ^
% d' y9 t( w/ }具体运行逻辑如下:
. G& @4 j# C7 u- v* q
2 C. x5 B& b0 e, P刀路文件传输至上位机 - 上位机分析刀路 - 构建脉冲环缓冲区 - 控制板从缓冲区中读取并发送脉冲* c f6 T) `* c" }, @( l
9 B" G% ~( W2 J- G( f
就是一个标准的生产者-消费者模型: _- F7 s/ R0 @3 [" ^
5 Z! w: ~; O3 [" Z! v& ?( @
看起来没什么问题, 但windows并不是一个实时系统" l9 {$ |' _& f5 x& }* b+ a
4 i5 J; L" y+ H
就是说你让他延迟50毫秒, 实际并不会是50毫秒, 而是60或者40.
1 R8 j- c3 k) [5 E, A/ V9 O5 `9 i- ~$ b2 x
上古时代的工业级和脱机控制器的会在控制板上实现一个缓冲区, 就是说上位机一次性往控制板发送多少条命令, 然后控制板一行一行去跑, 但是mach3不是.
3 d, v% S' ~! o, ^; r* a
: `' F! Q( s. i, O) q5 wmach3的缓冲区是基于脉冲的, 而不是G代码行数, 而本身插补就要占用缓冲区, 那么问题来了.2 f8 t2 t$ p) B6 s, p+ L
[# V$ g4 ~% r. b$ \- o/ L/ X
当刀路比较复杂时, 你的CPU在一直往缓冲区里加东西, 然后控制板一直从里面拿数据. 而每个周期, 理论最小值为200us$ J' | @. c& \3 r* ~2 l) c. l
, U7 W, m+ j, Q& F' U
由于插补需要在上位机计算, 也叫做软插补, 这里面可能会有一种工况, 200us过了, 你新的数据还没进去,
) ~. f A1 K& J- }0 K+ ~8 t; ]
8 ?2 ~/ c: E9 ?8 W导致了消费者吃的太快, 生产者吐的太慢, 这就是为什么工业机不用mach3的原因.
. [& F/ P7 Y+ c9 G* y
2 {1 J" I3 f- ^1 _用三个字来说, 实时性. 另一种方式的方式的实时性很好, 下面就是详细分析.! t1 F$ p8 [8 p: O7 e2 M( f
) F& U; n, _+ G. L
) u2 c' {, s2 @% X- x( B
下面说另一种模式, 指令输出 I( M4 u5 d) n
' E8 N) U8 [( \/ W这种模式下, mach3直接将代码传给下位机, 缓冲区同样在下位机. B( R9 p; [) J! B; {: D9 ^6 _
9 R. R5 O* l/ E3 d例如G1 X1 Y2 F200 这种代码, 一次性传100行0 e2 G1 D1 z' J) d6 B- c% f
, {5 u" m" f+ ~* T% D0 E然后下位机完成解析, 并发送脉冲
) y1 P: p2 v e, y: g
! C9 o* b5 W( ~在这种工况下mach3的工作形式和一些上古时代的发那科没有本质区别, 据我所知nmotion是这种形式, c1 Q! V! o4 p: L/ ^9 k/ M
; L( A; z1 o2 I' ?' r# a
但是问题很明显, 这东西太老了, 上古年代的逻辑了, 现在拿出来用性价比太低了, 并且离完全脱机只差了一层膜, 随便加个什么东西就变成了全脱机模式.
( X$ y2 H! M R. G
3 B* r* d% d$ |# F: x( j% ~' W$ T怎么分辨这种控制器, 很简单, 这种控制器上面是带了一颗芯片的. 你看着有个方方的东西, 那就对了) \' h5 P" L& O0 ~
3 O% G ]( k W$ `
那就顺便提一提这种存在的问题 S5 Z9 j+ J! E7 a
1 k1 z% }. C" Y0 \( ]6 T1 y8 L很简单, 不够高速, 性价比太低, 本身性能有限, 下面讲一下逻辑
* _* } u' m" t* B# Q7 l% l; a+ f. o* t+ u
& C7 X+ u) s4 \ r* D" @, Q最后, 虽然我没做过这种东西, 但这种东西的本质十有八九底层都是GRBL, 然后自己写对接mach3的接口和专用IO接口, 当然, 可能有个别G命令需要自己实现. 不过总体逻辑就是这样
6 A3 A& `) U5 \% \2 e! N# ?) p# m4 l0 m
$ H( c. ]0 x: s2 B0 w6 ~4 _' N
1 H$ b$ [. F# p! m
--------------------8 x/ p6 ]% ^/ o' k2 ~2 M/ r
/ V$ O4 B6 G8 Q% `$ l1 I( `; I& ~ J" E+ }( @! _
写了这么多, 做个总结.5 f8 @% S. W% N# U5 m0 P
; e7 ?% j$ K) b6 o! Q7 w3 q5 [" i1. 几十块钱的mach3卡, 实时性太差, 这里给大家推荐另外一样东西, linuxcnc, 跑在rtlinux的, 那种十几块钱的mach3卡就可以用, 但是效果和mach3天差地别.
0 n/ e, H3 h' L7 A3 y% X
' P f" [, L# {% I- a6 P9 f3 F1 k2. 脱机控制器, 不管是磁动力还是DDCS还是乱七八糟的小作坊自己做个UI+GRBL的拼凑货, 都比几百的mach3外部控制器要强, 并且还省了电脑钱不好吗 @3 H' j0 Y" V! {( i; T4 D
这个写的专业 |
|