|
|
发表于 2021-3-18 09:50:47
来自手机
|
显示全部楼层
Live74 发表于 2021-02-21 02:01% m, p! U3 `8 w: i
本帖最后由 Live74 于 2021-2-21 02:03 编辑
7 [# b @/ n/ m& m* n
3 |1 U# U! ]0 ?2 F! q) Y一直没冒过泡, 借楼主的贴子, 也说一下mach3没有意愿抬杠, 只是单纯的交流一下
; u- z( |: ] N) k, x1 ]2 d/ j8 O$ j
& T+ r6 ?4 C6 v6 q6 |3 K Z& R |- k
1. 组装机没有任何问题, MACH3不稳定的原因也完全不是组装机, 电脑的运行环境是12V, 内部不存在高压. 7 I9 P0 s: u$ r2 K* g6 [
+ s8 l' F5 c2 z/ R& B8 R8 o+ Q即便是因为插座地线没接, 外壳带电也完全不会影响到mach3的运行. 9 M$ u/ _0 C. N3 A' p
# o9 c( \7 E1 ?( f同样, 与电脑本身资源有关系, 包括同时开的软件, 看电影什么, 但这个关系几乎可以小到忽略, 至于到底是什么影响最大, 这个一会后文会有说明.* A: p/ \! `# x C
: e- q6 k5 q& q. U, t" S+ O, d/ ` x, u, F9 {( z" h/ {6 b3 V" l
2. 并口和USB确实有一些区别, 但主要瓶颈不在这里, 并且提升有限, 稳定的并口甚至优于USB, ) m0 Q; R7 O! N2 c8 J( x0 O
' m/ y( Z+ Q8 ] N! u
所谓的USB控制板就是多了一层处理而已.% y1 [! g, M# q4 T% v
# D# w; [1 r: o
至于发那科三菱用什么光纤也纯属无稽之谈, & ?* {8 b4 w- h, J! g4 K
- T( f# ]7 Q. q% D* V$ v9 D
不知各位有没有见过比较早版本的三菱或者发那科, 不支持U盘的, 必须用电脑连着然后用DNC模式在线加工. 7 w+ H7 H( ]: e- K7 V
4 p$ a J& b x" M
, r' c! c# Q3 D. R; F3. 脱机系统与mach3这种类型有本质区别, 一个是RTOS, 一个是借用了缓冲区.
! i; V3 h! y+ b# w% ?# I! X
4 a' m9 ] b% M; q9 P" n8 J N, r8 ~; G# v. x
' s# n0 n+ J V5 Q1 p' W下面讲一下mach3的问题. p* l. H( g1 l Y; k
* m3 O1 I8 k$ F! p
mach3, 实际是有三种模式的, 这三种里有完全不同的两种,
) `2 H0 m) ^* [+ a5 t) B- ~( W4 v4 w# h* z8 W
1. 积分插补
. e; I3 p4 M7 {' B, ~2. 可变时间输出$ y; v+ t3 s7 h, Y
3. 完全指令. Y, R3 ^ u- F/ g3 P
' M+ z8 D& R6 o. u- U# s3 }8 k& E
木友们使用的, 99%是上面的第一种和第二种.
" k7 U1 O1 s# c7 |
# d- r& d$ P. K; G( F- n具体运行逻辑如下:
* l& ?* i6 q6 b; s# P6 A6 C+ F
2 U7 B, U% g( z2 V7 m刀路文件传输至上位机 - 上位机分析刀路 - 构建脉冲环缓冲区 - 控制板从缓冲区中读取并发送脉冲# h" d$ y3 g* f; s
4 g' x. Z7 g" P& S- I
就是一个标准的生产者-消费者模型
, z: e: o' {# w3 v" S1 Q1 l+ k* D7 p7 C) f! B! B
看起来没什么问题, 但windows并不是一个实时系统
% ?' v: U7 p( ~; ` w" w" f
+ W' ~. @2 G) L, s$ Y0 `1 ?就是说你让他延迟50毫秒, 实际并不会是50毫秒, 而是60或者40. ?+ B3 a1 s: D2 j0 U. `* s
# ] K$ i/ U* Y上古时代的工业级和脱机控制器的会在控制板上实现一个缓冲区, 就是说上位机一次性往控制板发送多少条命令, 然后控制板一行一行去跑, 但是mach3不是.
# ]2 C8 |1 @/ Q: s C+ C. [' D& m, m: u2 y0 n
mach3的缓冲区是基于脉冲的, 而不是G代码行数, 而本身插补就要占用缓冲区, 那么问题来了.
, Y$ H" |4 t, z8 l% Y* P$ j7 j% o+ J- x& U
当刀路比较复杂时, 你的CPU在一直往缓冲区里加东西, 然后控制板一直从里面拿数据. 而每个周期, 理论最小值为200us
# b9 x* W$ B9 j. {
- y# g" U7 [3 _. q* ?0 c# u由于插补需要在上位机计算, 也叫做软插补, 这里面可能会有一种工况, 200us过了, 你新的数据还没进去, * S+ X6 H9 U, Y! W) ]
8 N7 n' g. H; ^8 C8 T导致了消费者吃的太快, 生产者吐的太慢, 这就是为什么工业机不用mach3的原因. P3 o0 W/ i9 y" i' V" M, D
( u( {$ Z/ t0 d, B
用三个字来说, 实时性. 另一种方式的方式的实时性很好, 下面就是详细分析.
( R& k2 d& y& {. ?+ |8 r) c; a# H
) S Y3 H: U0 k# I: E6 y( R2 q3 G
下面说另一种模式, 指令输出* w: q7 R9 L$ @! j$ W
: @/ l5 x6 f G% H这种模式下, mach3直接将代码传给下位机, 缓冲区同样在下位机.
a5 ^9 h5 p, h# G
3 v' S% r2 V) n+ o( F# X" ]& m例如G1 X1 Y2 F200 这种代码, 一次性传100行
4 n7 j! W6 k: a9 [( G; G0 j U$ j
, e' H& j# d* ]然后下位机完成解析, 并发送脉冲, H5 i# ~9 c o8 z4 }: B
: O* Y) F: y" @! w在这种工况下mach3的工作形式和一些上古时代的发那科没有本质区别, 据我所知nmotion是这种形式
4 U/ d4 B6 |6 J6 x
; O) u1 k9 k3 Q& J; w; R* s4 k" {8 o但是问题很明显, 这东西太老了, 上古年代的逻辑了, 现在拿出来用性价比太低了, 并且离完全脱机只差了一层膜, 随便加个什么东西就变成了全脱机模式.$ M. r0 ]2 t8 R, Y3 A
* A5 v8 E( @! Y% E, E
怎么分辨这种控制器, 很简单, 这种控制器上面是带了一颗芯片的. 你看着有个方方的东西, 那就对了
0 r' D2 M2 t3 @+ D3 q: W
1 [& I( T( ?2 g7 }# G7 P R- W那就顺便提一提这种存在的问题
: L0 F, G' S& O! m- J7 O/ I* g# ~5 ~- M& r3 s- {7 G
很简单, 不够高速, 性价比太低, 本身性能有限, 下面讲一下逻辑
' u/ A: |8 R$ d/ D+ ?4 V
: {& g/ {- r) D6 D* ^' ^, _! X) \; P' D' u9 ?, P) X
最后, 虽然我没做过这种东西, 但这种东西的本质十有八九底层都是GRBL, 然后自己写对接mach3的接口和专用IO接口, 当然, 可能有个别G命令需要自己实现. 不过总体逻辑就是这样 + T- E0 L- i$ |6 m" Y9 G
5 ?3 e0 {0 o2 y' G4 z5 t
. X d/ R- ^* ^! }) W- D/ z7 }
) N' f t( f2 Q/ R& e; X--------------------, z0 J6 [2 x; V2 Z- T9 U
8 |% D- C! z' }# Z; O
* K/ |! t" P8 L3 Q- d写了这么多, 做个总结.
' t [$ v- O* d6 W0 t. U& a
H( r( z2 b6 U* Z; @6 n1. 几十块钱的mach3卡, 实时性太差, 这里给大家推荐另外一样东西, linuxcnc, 跑在rtlinux的, 那种十几块钱的mach3卡就可以用, 但是效果和mach3天差地别. . Z ~9 s$ ?: h
O( @( Z0 C" l+ [9 X, P
2. 脱机控制器, 不管是磁动力还是DDCS还是乱七八糟的小作坊自己做个UI+GRBL的拼凑货, 都比几百的mach3外部控制器要强, 并且还省了电脑钱不好吗 + J9 z2 y6 ~# K1 J/ F3 q
学习了。 |
|