|
|
发表于 2021-2-21 11:32:59
来自手机
|
显示全部楼层
Live74 发表于 2021-02-21 02:01, j* p y2 X) C* V# b R
本帖最后由 Live74 于 2021-2-21 02:03 编辑
- P" q- h$ @ J' s7 n$ s' \7 }) @# Q9 q
一直没冒过泡, 借楼主的贴子, 也说一下mach3没有意愿抬杠, 只是单纯的交流一下, D7 J2 ]) }: Q7 Z; b$ m, x
. i* F) C5 h; L7 R1 x2 c) M0 o* @8 o6 T9 B
1. 组装机没有任何问题, MACH3不稳定的原因也完全不是组装机, 电脑的运行环境是12V, 内部不存在高压. : x; h& \$ |% y3 p: j/ t! E* G2 E* Y
2 N; y1 i8 N& l$ M/ o% A
即便是因为插座地线没接, 外壳带电也完全不会影响到mach3的运行. 5 i. [+ \% G6 Z1 m1 d w/ ]
3 z; X' ^% E# v7 ?
同样, 与电脑本身资源有关系, 包括同时开的软件, 看电影什么, 但这个关系几乎可以小到忽略, 至于到底是什么影响最大, 这个一会后文会有说明.
; X3 N( D5 }* O0 R$ r# u
. O' P6 U' _6 z, s" \
1 c4 X; G( n$ @& _2. 并口和USB确实有一些区别, 但主要瓶颈不在这里, 并且提升有限, 稳定的并口甚至优于USB,
& ~+ M4 S% m1 O' f* Z$ l7 L8 Y R& H7 Y3 x c/ i( z, }+ ]
所谓的USB控制板就是多了一层处理而已.
& ]+ a4 w) O& M% Z+ y/ @, g; u3 p9 \3 s* B9 z. o
至于发那科三菱用什么光纤也纯属无稽之谈, ' x: ~0 r/ i+ B' [7 x7 c, I
; K$ H" ]* J( C% t- k8 n
不知各位有没有见过比较早版本的三菱或者发那科, 不支持U盘的, 必须用电脑连着然后用DNC模式在线加工.
% a) F- W9 `7 |9 J4 [% B! l) k/ X; H$ k
/ f: | h$ Y# [# i) j* N( }( v' c$ z
3. 脱机系统与mach3这种类型有本质区别, 一个是RTOS, 一个是借用了缓冲区.( z! ]/ G# k3 O5 \
8 @9 K+ V% v! ]) u2 D, `1 {; S
; b* s! \% E% D) I7 f- }: v; S5 q5 o8 H/ r
下面讲一下mach3的问题) H6 h# o9 i! q0 _0 }. n
3 y) N% I# Q& a$ o8 m% hmach3, 实际是有三种模式的, 这三种里有完全不同的两种,
% w8 R( ~/ K! H1 o0 h. Z0 X2 v- a/ B. x# ], u( A0 g
1. 积分插补2 ^% q! V( m, d- M3 v2 ]' x
2. 可变时间输出: @9 [/ j2 k% U& e( L c
3. 完全指令
- J( \& ~! m! C: _% s- j- M, v3 \$ E s* A, |
木友们使用的, 99%是上面的第一种和第二种. 8 j) {3 `8 x6 |, ?7 L2 y
; e) l* e8 T' g( M6 T* r具体运行逻辑如下:5 Q0 ]' d8 S* N# L
# R3 V M1 N5 |. B/ ^
刀路文件传输至上位机 - 上位机分析刀路 - 构建脉冲环缓冲区 - 控制板从缓冲区中读取并发送脉冲; [) Y g5 M: v! ~/ z4 A2 w3 {2 a: r; T
! q, c9 r+ ~7 Y1 P. l+ b
就是一个标准的生产者-消费者模型
: x, y- I9 ~6 F" @5 f. x8 R; A! z# D: \5 H/ F' x, Y8 B
看起来没什么问题, 但windows并不是一个实时系统
1 E: W: \. q% f' @7 x: w: y
( x Z9 ]1 Z9 R6 H$ G$ n" t% E就是说你让他延迟50毫秒, 实际并不会是50毫秒, 而是60或者40.
; J! x3 b2 D! w7 o3 V5 y! G
* v1 }: {* a# l$ w0 \% P上古时代的工业级和脱机控制器的会在控制板上实现一个缓冲区, 就是说上位机一次性往控制板发送多少条命令, 然后控制板一行一行去跑, 但是mach3不是.) j# H# T ~4 Z
* Y" V' D% d% ], X2 e5 P( bmach3的缓冲区是基于脉冲的, 而不是G代码行数, 而本身插补就要占用缓冲区, 那么问题来了.5 Z7 W& D% J+ u
# H, u2 }! w# s8 U6 P1 a* k当刀路比较复杂时, 你的CPU在一直往缓冲区里加东西, 然后控制板一直从里面拿数据. 而每个周期, 理论最小值为200us
5 h1 F8 g7 q$ D, h- u6 P5 p+ m7 N. O0 l5 }
由于插补需要在上位机计算, 也叫做软插补, 这里面可能会有一种工况, 200us过了, 你新的数据还没进去, ; I5 @ J( d8 {6 E
3 D) G G% d# B7 |4 Z
导致了消费者吃的太快, 生产者吐的太慢, 这就是为什么工业机不用mach3的原因. ; e( M/ ^% @. L9 z* q* f1 C
$ u2 e# l4 {' @$ w6 x: @1 X
用三个字来说, 实时性. 另一种方式的方式的实时性很好, 下面就是详细分析.
e% k, p6 Q* x- t! s8 Q Z. u/ S1 v7 N* B: j0 S
8 U8 D4 Q, Z! R; l* t" U. }下面说另一种模式, 指令输出7 {/ f+ z( U' G/ k
/ w" f9 u, a6 S这种模式下, mach3直接将代码传给下位机, 缓冲区同样在下位机.8 ?! f% s* p3 g
0 Y1 i1 p; c. F, H; J5 C. a例如G1 X1 Y2 F200 这种代码, 一次性传100行
* D" b. T$ J4 f/ l4 h9 L& z5 }/ J$ c. `3 i- w( F
然后下位机完成解析, 并发送脉冲
$ }# S6 Z" v" r1 x0 S
2 F1 y) C3 g% `0 D* g在这种工况下mach3的工作形式和一些上古时代的发那科没有本质区别, 据我所知nmotion是这种形式' p1 P3 D/ U0 L6 I; U @1 T& Y4 o+ q
1 F0 ]- G/ S5 f' T" |1 P
但是问题很明显, 这东西太老了, 上古年代的逻辑了, 现在拿出来用性价比太低了, 并且离完全脱机只差了一层膜, 随便加个什么东西就变成了全脱机模式.
: t9 z2 H% w+ ]. X+ R* o! Y+ `+ T; C* v+ s7 ]) s
怎么分辨这种控制器, 很简单, 这种控制器上面是带了一颗芯片的. 你看着有个方方的东西, 那就对了
$ }8 l& D& Y. W8 N2 `( ~+ ~ a# S/ `; L0 F4 D( S! w
那就顺便提一提这种存在的问题
& Z) j2 s( V! k# e& O; q; U9 A$ j2 @, ] Y
很简单, 不够高速, 性价比太低, 本身性能有限, 下面讲一下逻辑, H# S: N; l2 p! h' C
- g+ R6 v7 K' X4 c; M$ {
- n. N1 U5 i1 V. u3 C最后, 虽然我没做过这种东西, 但这种东西的本质十有八九底层都是GRBL, 然后自己写对接mach3的接口和专用IO接口, 当然, 可能有个别G命令需要自己实现. 不过总体逻辑就是这样
- p1 \: y' i9 a) R6 [& T
% i& u# o4 Q4 A* y! r& _- w9 W* R$ b* G/ F; S/ @4 V
& [) L3 h9 r0 L! P1 i8 {* O
--------------------
1 }) X+ O8 _% |; g3 s4 _/ H; ^* R* Y; f N4 x: B! y
! c! Q/ @+ a; o; ^4 ?7 m/ {
写了这么多, 做个总结.
5 i2 c( ] |/ J1 L1 D$ y G" n6 U: v! {
1. 几十块钱的mach3卡, 实时性太差, 这里给大家推荐另外一样东西, linuxcnc, 跑在rtlinux的, 那种十几块钱的mach3卡就可以用, 但是效果和mach3天差地别. 7 {8 B0 ~0 s0 `) S
% | m. m* M$ T/ ]) h3 b5 c2 E3 H% c
2. 脱机控制器, 不管是磁动力还是DDCS还是乱七八糟的小作坊自己做个UI+GRBL的拼凑货, 都比几百的mach3外部控制器要强, 并且还省了电脑钱不好吗 % D3 q$ i, c) G' x
这个写的专业 |
|