找回密码
 注册
关于网站域名变更的通知
查看: 517|回复: 1
打印 上一主题 下一主题

CAM工序自动化

[复制链接]
  • TA的每日心情

    2019-11-20 15:22
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-5-22 13:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    虽然CAM系统在PCB业界中不断增加,但是为甚么还有很多厂商不愿意把工序自动化呢?
    # ^2 j" q, ^" O3 M* B& t; B& r- I有些相信他们现有的CAM软件已可达到要求、并不需要自动化。其它的则缺乏重点,无法界& G- I- \7 h. g# c" G9 `+ Q
    定甚么工序需要自动化,或者无法产生他们所需要的自动化软件。
           无可置疑,一些走在前端的厂商已正在享受工序自动化带来的极大的好处,包括提升产能、增进数据质量和缩短培训时间。
           第一个问题要问的是:为甚么需要自动化?为甚么CAM系统就不能配备所有所需的自动化功能,而我只需要按正确的键钮来达到自动化?要答复这些问题是很容易的。世上没有一个人
    ! @2 D; I( |9 R8 d是用同一样的方法来做同一件事的。每一个厂商都用很不同的方法来使用CAM系统。举个例: N! o3 {/ I5 m: d
    子:在排板的时候,每一个厂商都用很不同的符号、靶标、字符等,放在不同的板边位置。) W6 v/ T' m$ I! j
    这就是为甚么CAM系统只能提供基本的功能,让用户加入这些数据而没有自动化的功能。6 |, {8 @6 b; R- o6 ~
    CAM工序自动化所带来的好处  m' H' i  Z6 i7 o* n
         • 提升产量:无论有多少层的排板,自动化可以把一小时的排板时间缩短到三分钟。
    & F. i7 G8 E4 _2 X$ d/ D' a% i  f     • 资料质量:所有数据都用同一种方法来处理。
    8 J2 X8 e) J! V; d+ c) a3 w     • 操作者的培训:当大部分的工序已经自动化时,培训一个新的操作人员是一件很容易的事5 z$ E/ k6 o' z; \7 k! i
    情。工作流程和工序都已在软件内定义好,操作人员只要作出几项决定便可完成复杂的工: E5 j* U2 b, X) T, Z7 f2 E4 s- N
    序。
           一个好的自动化需要甚么样的条件呢?明显的,如果CAM系统提供script 功能的话,我们便& ]6 U- g. j: q/ ^' D
    能完成基本的自动化。自动化可以达到甚么样的程度,完全依赖CAM数据库内所能储存的资
    8 E' S7 K+ R; J% l料质和量。例如要写出把某个钻孔层内的资料分为导通孔和非导通孔的话,只要数据库内已
    % ?' Y) e8 K- z7 V) I; M能把导通孔和非导通孔分类,这就变成易如反掌。只要把script 写成为把所有导通孔从该钻孔- H1 Z% u) b- M- u- ^3 M- ^
    层拷贝到新的导通孔层便可。这步骤可以重复用在产生非导通孔层上。
            一个好的CAM系统可以让用户为钻孔和其它数据定义成不同的参数,好像孔径、坐标等。它更可根据不同的客户名称、操作人员或时限来区分不同的料号。这些都是一个好的自动化程
    ' M& Y4 ], e' H! J1 A5 q式必备的数据,自动化程序员可很容易从数据库内得到正确的数据。
            Script 是怎样工作的?
            最容易的方法是用line-mode 指令;文字形式的指令已能代替CAM 系统内每一个鼠标的动/ R, @1 x& y+ a
    作。 如要打开一个料号的话,可用COM open_job,job=12022 便成。第一部分内的 “COM
    3 X, w9 r% N' {2 V% H" kopen_job” 告诉系统要怎么做(在这例子代表打开料号) 。第二部分内的告诉系统要处理甚么资
    : E% m% H# L- j5 }料 (在这例子代表料号名称为12022) 。同样的道理,如要在坐标 (4.6; 4.4) 加上100mils 的圆$ a8 h. L% X" Z# O9 z
    盘,可用指令:COM add_pad,x=4.6,y=4.4,symbol=r100,polarity=positive 来实现。为了帮助自
    8 S3 M% j+ ^% h" Y4 t动化程序员从几千个CAM系统所提供的指令中找出所需的功能,指令记录功能可记录所有执
    + c; {4 k4 m+ W7 G" ]* l! |/ |9 ]行过的动作,继而把它们变成line-mode 格式,程序员就可以运用把它们 化为自动化的内容。: i) D% d! C) o! ^9 [% A3 O) b6 ~
            图一、Genesis 指令记录器# M0 y9 f5 u) [* [. {" K* E) X# y
            现在你已有指令可以在script 内执行。这个script 只有对这一个特定的料号有效;这时,你需要产生一个在每一个料号都可以用的script。
    ) @, y9 r# H9 T% ^& S6 \; e% c        这就是script 语言产生的原因。你需要建立一些变量、做一些计算、写一些if-then-else 的句子; 还有产生一些循环、目录、列阵种种。举一个简单的用C-Shell script 语言写的例子,可
    5 o% L9 t# e  o$ O让大家了解一下:$ ]8 h9 }" P0 ?8 R
            图二中的程序可从数据库读进排板大小,然后在每一层的左下角和右上角距离0.5mil 板边的地方放一个100mil 的圆盘。
    ! S. v! o( M$ t) w4 w( ]) v8 |DO_INFO -t step -e $JOB/$STEP ## 从数据库中读取有用的数据  3 v6 j4 B& @, y# o
    MATH x1 = $gPROF_LIMITSxmin + 0.5 #### 计算X 和Y 坐标  # j2 S7 k5 T- `7 p. o: R3 n, u2 H
    MATH y1 = $gPROF_LIMITSymin + 0.5 #### 在Xmin 和Ymin 加上0.5   % [. s% }$ i+ s
    MATH x2 = $gPROF_LIMITSxmax - 0.5 #### 在Xmax 和Ymax 减去0.5   
    2 z" L: X* G6 TMATH y2 = $gPROF_LIMITSymax - 0.5 #### 结果存在x1, y1, x2 和y2 变数中  $ M6 b* X3 G" V) |
    ### 显示每一层和在已计算的坐标上  # m; b& v) w, z* b/ M. {
    ### 加上100 mils 的圆盘  
    ! }  O8 H+ x$ e+ A. V0 T$ hforeach layer ($gLAYERS_LIST)   + A- T* h3 D5 ?2 @5 L/ W
    COM display_layer,name=$layer,display=yes,number=1   
    ) V! ^7 `, o, b! F# A& @0 A6 lCOM work_layer,name=$layer   # @: k7 Y2 T8 X# k4 P' t$ q" {+ Z
    COM add_pad,x=$x1,y=$y1,symbol=r100,polarity=positive   9 K0 ], {0 l; {
    COM add_pad,x=$x2,y=$y2,symbol=r100,polarity=positive   ; `: }5 R9 q4 k' h4 z3 G
    end   & @7 l8 G$ \6 X6 F& Q# _8 W
    图二:C-shell Script 例子  5 X/ r: z1 D* _4 b9 _- F5 G0 I6 _- r* ^
    该用哪个script 语言?7 F' {' G8 k' i1 k" G# S8 i& V& v
    你可以用任何一种程序语言来作为script 语言。但最被普遍接受的是通译程序而不是需要被编/ p7 s* ?+ L% K, W4 m
    译的程序。通译程序可直接被执行;但是编译程序(像C、C++、Java 等) 必须在被执行前 先被翻译(编译)成机器语言。它们比较难学,没有line-mode 编辑器,故此是一种难以引起大家 兴4 U; C  I% u1 n$ g" u) ^
    趣的script 语言。
    - B, X2 i, {) I2 J  t4 V* {! D/ \市场上你可以考虑用不同的script 语言:C-shell, Tcl/Tk, Perl 和Python (还有很多其它的语
    ! C0 D+ O/ _0 O5 h: @& Z言 ,在此不作探讨)。C-Shell 是被公认为最容易学的语言。它拥有非常简单而有限的指令,# z7 p8 p, `+ k# W
    足够 让你可以写出大部分的自动化程序。偶尔你需要其它的小工具awk 或sed 来帮忙,但整# X: D5 Y% K. E. B, D
    体来说,C-Shell 的标准工具已能符合一般要求。你更可以用Genesis 的表格功能和内含的. g( \) S* U. R! ?
    GUI来设 计用户接口。  R# w2 x" a- V! z
    其它的程序语言,好像Perl, Python 和Tcl/Tk,具备更强大的功能,每一个都提供类似的工( ~7 G+ k% N2 H+ i  S
    具 和能力。我可以再写十页来比较它们的优缺点,但这只会令我们迷路;在CAM自动化程' T) p6 Q& ]( }7 h# V4 i
    式语言中,它们都是大同小异。这三种语言提供比较好的工具:好像列阵和子程序、还可产
    " P& W' R* ?9 z: V$ J生用户接口,让用户预先输入参数和选择 (请参考图三)。
    " c9 i8 k" D- K, l) ~
    ( [; \- T8 p9 h6 I甚么工作可被自动化?
    7 `5 P8 ^7 d* L( P: H理论上,你可以把CAM从输入到输出的每一步都可以自动化,问题是当中需要考虑的事情实
    ) L$ s  x" ]* H2 a在太多。制程常常在被改变、输入数据变化无常、更甚者常常会有特殊情况出现,而这一切
    3 ]) {" Y3 \6 u' G; J+ w都末在当初写程序时考虑到的。
    0 {' I$ U- I$ Y  `# X第一步最容易自动化的是重复的工序,它们可被定义成流程图,配上固定的步骤和怎样执行
    # N( m- C) i5 g$ f! s每一步便可。典型的步骤包括:4 [3 Q! m; [+ x0 B) y0 y8 g
    • 生成排板
    # e9 M1 j% |% j$ h7 E8 [/ i6 f3 P9 D• 计算铜面积
    - m6 m7 S$ ]0 |# N* N4 ^$ ^5 X• 产生覆盖层9 p( F( ]4 D2 x# ^5 T: W9 s( X$ ?
    • 层内分析 (为报价或量产)
    ' W0 z( {3 p' t0 u8 Z8 r$ n: S& ^• PCB编辑! q$ n2 D6 L3 x! A4 b7 Y3 |
    • 网络比较7 m, |% r+ i& _/ T" D" z9 f
    • 输出至不同格式- [* U6 f4 _, z7 g
    • 数据库管理及其它
    为了简化程序,你可以从CAM流程中的单一的script 开始。然后把每一个小script 连系在
    * \) s; E$ L8 {workflow上,CAM 工程师只需按正确的次序执行便可。你更可以防止他们在错误的时候按错
    9 |# U( l. X& g, h0 o; n误的键。就算有些工序需要手动处理,script 也可以预先打开正确画面及显示相关层的数据。/ [5 R9 Q2 A8 @/ e
    当手动处理完成后,script 只需要跑一个检查程序去确认手动处理没有造成新的设计和网络问
      w3 n& V& e" D6 |4 c: B0 p" x题。; h! ~, J5 Y: |
    以下例子(图四) 是典型的CAM料号输入流程。左边的按钮是操作人员必须执行的动作,这动1 C* b# u$ X7 {6 W1 _: t" C
    作被连系到script 去执行所需的介入或非介入工序。当完成工序后,该按钮的底盘颜色会改- h$ _  V: C& Y6 ^2 T9 `
    变,操作人员的数据和执行时间都被自动记录在案。你可以用Genesis 的workform来设计用
    9 {: F* O- [3 w户接口或沿用Tcl/Tk 的接口设计工具亦可。1 s  H& a, X% H# u& J

    + B3 @( G! |- V& n. l: o8 Y图四:输入流程例子- K+ e2 z: V9 B) ~" f
    挂接程序/ v9 o+ W& o: i; q0 q
    Script 可连系到每一个被执行的指令,这些小script 名为挂接程序。它们可被特殊指令激活
    . ^6 p+ B0 o* e% Z. t; u6 g(好像:打开料号、加图盘或储存料号等) ,这些挂接程序可改变指令的行为。例如我们可以
    $ w8 D0 C* c7 F  P% O3 u把一个要求操作员输入密码的script 挂在打开料号指令上,这就可以控制操作员在打开料号时
    - F: b2 V& l2 h# _$ @的权限。
    & J9 v4 r, f, I另举一例:一个跑网络检查的小script 可以挂接在储存料号指令上,这便可保障该料号在储存
    9 A8 l& j3 G" ~0 o- x, x前网络是正确的。如果网络出现偏差,系统会拒绝储存指令,要求操作员去检查网络。
    . n" S0 y0 @6 v- }总结
      A: d! B; U5 E& y. |- G很多PCB制造商已经成功的完成了绝大部份CAM制程的自动化。每一天,他们还是继续投6 u5 ^% O* O( c4 G& Y# \
    资在自动化上。在程序人员的培训和自动化维护的投资,都已回报在显著增加的生产量,继! _6 h+ E+ C( A  F1 B- ~  m" a
    而引发出更好、更快、更精确的CAM制程和产品。
    2 w' h# r9 ~5 B: N1 _
    ' x0 ~" k- o3 F! X

    该用户从未签到

    2#
    发表于 2020-5-22 14:32 | 只看该作者
    CAM工序自动化
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-30 03:04 , Processed in 0.078125 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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