|
发表于 2021-3-18 09:50:47
来自手机
|
显示全部楼层
Live74 发表于 2021-02-21 02:01* ?4 B2 [ [" q7 H' W& b
本帖最后由 Live74 于 2021-2-21 02:03 编辑 7 v* W' ~# ~' k8 B& ^2 A6 @
& h/ ~" ~$ H' z4 |# O" V' ?8 [
一直没冒过泡, 借楼主的贴子, 也说一下mach3没有意愿抬杠, 只是单纯的交流一下
) i9 T* r" l+ r5 A) U0 U8 _# F6 M
/ C! v8 d) A* b- s6 ^
1. 组装机没有任何问题, MACH3不稳定的原因也完全不是组装机, 电脑的运行环境是12V, 内部不存在高压.
& W+ h2 z- {, I
* x2 a; [" W7 n0 h+ ^ Q即便是因为插座地线没接, 外壳带电也完全不会影响到mach3的运行. ! I2 r1 m$ T; f& X
" G) ~3 e s: N) Q( w
同样, 与电脑本身资源有关系, 包括同时开的软件, 看电影什么, 但这个关系几乎可以小到忽略, 至于到底是什么影响最大, 这个一会后文会有说明.
& }2 p" A( q' Q4 _5 y
! x, a. K. u7 p8 Z" n0 l
" ]. a. M4 J8 k* Y! b) f3 L2. 并口和USB确实有一些区别, 但主要瓶颈不在这里, 并且提升有限, 稳定的并口甚至优于USB,
: o% X$ R& P* {2 ~* R
' z7 G3 q$ D, V所谓的USB控制板就是多了一层处理而已.# H) s) D. X" n3 E
8 x3 D, N0 O `, O" n& H& {至于发那科三菱用什么光纤也纯属无稽之谈,
* s( {/ m g( O+ F! I
. w3 }' }% k: y不知各位有没有见过比较早版本的三菱或者发那科, 不支持U盘的, 必须用电脑连着然后用DNC模式在线加工. / ], G* k5 J$ V& A; ^
S. \( u) c; J) O3 L" O& F7 _+ b1 q2 Y
3. 脱机系统与mach3这种类型有本质区别, 一个是RTOS, 一个是借用了缓冲区.
- {( Z8 O t7 Q/ s/ S2 h$ T* E& Z: \: I! ]9 F
, H( H9 u' Q; l4 p a; F8 _. T2 f- s {6 U4 E" O
下面讲一下mach3的问题" Z0 F, z: Q5 Q6 L7 {8 q' n
- F1 Z( i" h/ O) m( H) [mach3, 实际是有三种模式的, 这三种里有完全不同的两种, % d- b' x, N& a; i) f4 o! o
: y0 t; A3 k& G2 G& ?
1. 积分插补1 a. S/ ?3 O0 [
2. 可变时间输出# ]) k' m6 q1 x$ M. Z
3. 完全指令
0 G- a+ w! E1 v9 J& Y/ @( d+ @ i* U+ w% A7 c0 L( ^
木友们使用的, 99%是上面的第一种和第二种.
l( u6 K# O/ x. ^9 \, H/ `4 V( S* C. j! i' L
具体运行逻辑如下:
5 r8 V& q( l- Y/ V1 c8 Q' \# k% }; r# E* _1 g
刀路文件传输至上位机 - 上位机分析刀路 - 构建脉冲环缓冲区 - 控制板从缓冲区中读取并发送脉冲3 c% `; h6 x: g6 Z; L8 {: I) S
1 F) ^$ [& Z3 ^% m7 F0 m1 R
就是一个标准的生产者-消费者模型
, ?* l; a( i' [3 K
; Q7 F) h0 F0 r- }看起来没什么问题, 但windows并不是一个实时系统: r1 I% s1 M8 [ M1 u
5 ?4 M) e, R9 s7 X4 q3 L
就是说你让他延迟50毫秒, 实际并不会是50毫秒, 而是60或者40.
4 [+ y' t- r# I" k- K9 N! A* W! `" l- Y- N
上古时代的工业级和脱机控制器的会在控制板上实现一个缓冲区, 就是说上位机一次性往控制板发送多少条命令, 然后控制板一行一行去跑, 但是mach3不是.4 D5 e4 S4 q5 R
) a( O. k! D5 D7 @" ?
mach3的缓冲区是基于脉冲的, 而不是G代码行数, 而本身插补就要占用缓冲区, 那么问题来了.
' }7 N! T, Z$ p& }3 i1 c4 n. c' U- x+ c6 [
当刀路比较复杂时, 你的CPU在一直往缓冲区里加东西, 然后控制板一直从里面拿数据. 而每个周期, 理论最小值为200us$ I+ m2 G$ d3 _$ z7 j2 f) a
' O+ |& ?6 h) l7 m) }+ U
由于插补需要在上位机计算, 也叫做软插补, 这里面可能会有一种工况, 200us过了, 你新的数据还没进去,
* T5 e9 L+ I$ g1 K" }+ N! k5 z
6 N) o" M5 G6 } m! V导致了消费者吃的太快, 生产者吐的太慢, 这就是为什么工业机不用mach3的原因.
4 ~1 s! s$ g& t w
$ f/ D3 D5 g) n, y4 @用三个字来说, 实时性. 另一种方式的方式的实时性很好, 下面就是详细分析.; G5 u4 m! m! a: ?3 ^6 t% Y: I
0 K7 R. S: y' j3 o" ^$ B
* U; [9 p0 Z4 N* k9 \
下面说另一种模式, 指令输出
3 h! Z# m& A+ Y+ w2 j5 I" }4 H. o
/ u% g4 z+ p2 K; {这种模式下, mach3直接将代码传给下位机, 缓冲区同样在下位机.
1 b- _" U6 w& ?3 }8 K) |: X( z7 W, s' ]3 [
例如G1 X1 Y2 F200 这种代码, 一次性传100行
( Q6 I9 A$ ~" u6 p) h6 q
$ D9 A" X/ g, A9 J! P4 j然后下位机完成解析, 并发送脉冲
: C: v: V$ _' v- p! R6 I) b9 K
1 J" z5 s" s/ G% x# y在这种工况下mach3的工作形式和一些上古时代的发那科没有本质区别, 据我所知nmotion是这种形式
. L5 E" M5 t1 a
9 ] u0 Y5 X4 u. q a% t" z2 M3 E但是问题很明显, 这东西太老了, 上古年代的逻辑了, 现在拿出来用性价比太低了, 并且离完全脱机只差了一层膜, 随便加个什么东西就变成了全脱机模式.
# a% |2 U4 c4 E1 j* _ S6 c. x; M0 F( t
5 _% i$ V, o" H# }1 h# f, r怎么分辨这种控制器, 很简单, 这种控制器上面是带了一颗芯片的. 你看着有个方方的东西, 那就对了8 }4 T4 W1 N& l
: v/ |3 g8 ?: R, e: Q8 ~( Q那就顺便提一提这种存在的问题0 V+ O3 j ] A# Q: j
! m( Z. z. {/ m; a g
很简单, 不够高速, 性价比太低, 本身性能有限, 下面讲一下逻辑 }# I3 L7 ~) p& Z
3 F& P0 j; ?8 [' l% y( w' }
% [5 ^8 o7 d1 ^最后, 虽然我没做过这种东西, 但这种东西的本质十有八九底层都是GRBL, 然后自己写对接mach3的接口和专用IO接口, 当然, 可能有个别G命令需要自己实现. 不过总体逻辑就是这样 $ v; x5 `# J9 \1 J5 U- g7 P2 f4 z
* G/ {# g$ p- H
9 n( X) E! u- h4 v0 Y. ~% j- K* j
/ `& N- z1 c9 c. G& e--------------------
# W! o7 k: D& d$ `4 F' M2 ?3 z% j* ?$ K
5 \& `' h" n y* A* | ~. Y6 p- x3 X* P
写了这么多, 做个总结.
& z% S- V6 C1 Z1 o7 n$ m6 ]3 [* T/ K! @ c+ ]8 A, i. O
1. 几十块钱的mach3卡, 实时性太差, 这里给大家推荐另外一样东西, linuxcnc, 跑在rtlinux的, 那种十几块钱的mach3卡就可以用, 但是效果和mach3天差地别.
0 f& [/ [3 n1 M# c* M- A/ l" ^& S6 `. f, F1 S
2. 脱机控制器, 不管是磁动力还是DDCS还是乱七八糟的小作坊自己做个UI+GRBL的拼凑货, 都比几百的mach3外部控制器要强, 并且还省了电脑钱不好吗
5 x: ~" C: ?2 P8 E+ A; |学习了。 |
|