EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
虽然CAM系统在PCB业界中不断增加,但是为甚么还有很多厂商不愿意把工序自动化呢?
6 Y+ K- ? \8 a4 N9 \有些相信他们现有的CAM软件已可达到要求、并不需要自动化。其它的则缺乏重点,无法界
$ I- b3 I+ a+ A! E, k6 k定甚么工序需要自动化,或者无法产生他们所需要的自动化软件。 无可置疑,一些走在前端的厂商已正在享受工序自动化带来的极大的好处,包括提升产能、增进数据质量和缩短培训时间。 第一个问题要问的是:为甚么需要自动化?为甚么CAM系统就不能配备所有所需的自动化功能,而我只需要按正确的键钮来达到自动化?要答复这些问题是很容易的。世上没有一个人( w, l% d% T& S
是用同一样的方法来做同一件事的。每一个厂商都用很不同的方法来使用CAM系统。举个例
' Y7 v. ^- M% x, c, n子:在排板的时候,每一个厂商都用很不同的符号、靶标、字符等,放在不同的板边位置。9 v6 Y7 n0 h. i( b1 w5 P. A
这就是为甚么CAM系统只能提供基本的功能,让用户加入这些数据而没有自动化的功能。
, \& ^0 }2 x1 l8 O3 Q2 [CAM工序自动化所带来的好处( _/ Y b$ V/ T7 d% h
• 提升产量:无论有多少层的排板,自动化可以把一小时的排板时间缩短到三分钟。. I6 c' @# G. B4 }
• 资料质量:所有数据都用同一种方法来处理。
0 B9 Q# m# b, v. A$ |3 U) s0 G • 操作者的培训:当大部分的工序已经自动化时,培训一个新的操作人员是一件很容易的事
7 _, i+ W5 J, [" c# X; s. G$ p. y情。工作流程和工序都已在软件内定义好,操作人员只要作出几项决定便可完成复杂的工
8 Z: c* [6 I, S0 O5 P序。 一个好的自动化需要甚么样的条件呢?明显的,如果CAM系统提供script 功能的话,我们便
5 a V+ E1 a& S, s( P& O) Z1 w能完成基本的自动化。自动化可以达到甚么样的程度,完全依赖CAM数据库内所能储存的资0 C+ X; G; h- J/ L7 q/ C
料质和量。例如要写出把某个钻孔层内的资料分为导通孔和非导通孔的话,只要数据库内已! r4 k3 H) i& P- u7 |/ n8 f" N% |
能把导通孔和非导通孔分类,这就变成易如反掌。只要把script 写成为把所有导通孔从该钻孔. U9 T! n) B* H. t7 t" S, i
层拷贝到新的导通孔层便可。这步骤可以重复用在产生非导通孔层上。 一个好的CAM系统可以让用户为钻孔和其它数据定义成不同的参数,好像孔径、坐标等。它更可根据不同的客户名称、操作人员或时限来区分不同的料号。这些都是一个好的自动化程
) T2 W9 t' w5 b6 y; F式必备的数据,自动化程序员可很容易从数据库内得到正确的数据。 Script 是怎样工作的? 最容易的方法是用line-mode 指令;文字形式的指令已能代替CAM 系统内每一个鼠标的动 Z" Z7 E1 t+ P$ e
作。 如要打开一个料号的话,可用COM open_job,job=12022 便成。第一部分内的 “COM
1 U; \' L" S: copen_job” 告诉系统要怎么做(在这例子代表打开料号) 。第二部分内的告诉系统要处理甚么资: T( P S: z- a8 Y1 h6 S
料 (在这例子代表料号名称为12022) 。同样的道理,如要在坐标 (4.6; 4.4) 加上100mils 的圆 A( F/ I9 \( q/ G" _* ?, Q5 {+ @
盘,可用指令:COM add_pad,x=4.6,y=4.4,symbol=r100,polarity=positive 来实现。为了帮助自$ k9 n8 w4 z) i$ N5 @; [- f+ _5 {
动化程序员从几千个CAM系统所提供的指令中找出所需的功能,指令记录功能可记录所有执5 i- @4 ~, g9 M- D! I6 N- W- K
行过的动作,继而把它们变成line-mode 格式,程序员就可以运用把它们 化为自动化的内容。7 s9 Q- k7 J0 W6 Q
图一、Genesis 指令记录器
$ m# g; @7 D- O `5 x* v 现在你已有指令可以在script 内执行。这个script 只有对这一个特定的料号有效;这时,你需要产生一个在每一个料号都可以用的script。1 ?$ n3 m' L& a# J
这就是script 语言产生的原因。你需要建立一些变量、做一些计算、写一些if-then-else 的句子; 还有产生一些循环、目录、列阵种种。举一个简单的用C-Shell script 语言写的例子,可
0 W6 I# b4 [5 d7 j3 K# E" P让大家了解一下: j) `# j4 |/ g* d/ G9 {
图二中的程序可从数据库读进排板大小,然后在每一层的左下角和右上角距离0.5mil 板边的地方放一个100mil 的圆盘。5 \: ]' y% h e. J! e
DO_INFO -t step -e $JOB/$STEP ## 从数据库中读取有用的数据
7 K9 D2 Q7 m5 U8 v# O" e( Y0 C# R& ^. dMATH x1 = $gPROF_LIMITSxmin + 0.5 #### 计算X 和Y 坐标 ; q6 m8 B- B9 Y. i, J) m+ d9 A
MATH y1 = $gPROF_LIMITSymin + 0.5 #### 在Xmin 和Ymin 加上0.5 g4 ], ` T0 |9 P( e5 r; ~
MATH x2 = $gPROF_LIMITSxmax - 0.5 #### 在Xmax 和Ymax 减去0.5 * t4 j4 q3 m$ I# _
MATH y2 = $gPROF_LIMITSymax - 0.5 #### 结果存在x1, y1, x2 和y2 变数中
% D# M; H; C! D* @+ @4 s/ y### 显示每一层和在已计算的坐标上
3 ^% u7 j% e3 B6 ~9 z1 N7 Q7 H0 N### 加上100 mils 的圆盘
0 v( P1 M3 v& }; P! z+ kforeach layer ($gLAYERS_LIST) # @3 H: O' w' s3 \6 ^! C
COM display_layer,name=$layer,display=yes,number=1 ' v# K8 ?# _! A
COM work_layer,name=$layer
4 ]0 E/ i, `8 E$ U& L: m* I: ~COM add_pad,x=$x1,y=$y1,symbol=r100,polarity=positive " U7 h) H+ P# @' a6 Y9 t- k% k
COM add_pad,x=$x2,y=$y2,symbol=r100,polarity=positive ! d" }; R- z& i3 P
end 3 N0 i! u6 P8 s
图二:C-shell Script 例子 " X8 H% W3 c" k
该用哪个script 语言?
" v2 s/ S. _; O: H" f9 {你可以用任何一种程序语言来作为script 语言。但最被普遍接受的是通译程序而不是需要被编) D: Y& x2 ^: I2 Z7 r6 h( {
译的程序。通译程序可直接被执行;但是编译程序(像C、C++、Java 等) 必须在被执行前 先被翻译(编译)成机器语言。它们比较难学,没有line-mode 编辑器,故此是一种难以引起大家 兴
* r4 a0 ?: }2 S6 D2 }% @: Z趣的script 语言。
9 @% }7 W) t7 i" |市场上你可以考虑用不同的script 语言:C-shell, Tcl/Tk, Perl 和Python (还有很多其它的语5 U9 X' G4 g @! A0 g
言 ,在此不作探讨)。C-Shell 是被公认为最容易学的语言。它拥有非常简单而有限的指令,
. b- }( o3 Y" P足够 让你可以写出大部分的自动化程序。偶尔你需要其它的小工具awk 或sed 来帮忙,但整- J& v4 F2 g- L* r ^6 t
体来说,C-Shell 的标准工具已能符合一般要求。你更可以用Genesis 的表格功能和内含的" @% S* B, X% c0 i
GUI来设 计用户接口。' }, u$ J) ^8 Z
其它的程序语言,好像Perl, Python 和Tcl/Tk,具备更强大的功能,每一个都提供类似的工* M8 Q3 f1 x" h' m0 S6 j
具 和能力。我可以再写十页来比较它们的优缺点,但这只会令我们迷路;在CAM自动化程
5 V6 b4 u3 N) ] u% t* ]: b式语言中,它们都是大同小异。这三种语言提供比较好的工具:好像列阵和子程序、还可产. }, R# D/ X3 Q) I
生用户接口,让用户预先输入参数和选择 (请参考图三)。
, D% ^% s: T% b0 k B
$ W* I; T& B& O+ g1 t. v. Z$ {甚么工作可被自动化?
! i' J1 D7 U9 V# N3 D* Z理论上,你可以把CAM从输入到输出的每一步都可以自动化,问题是当中需要考虑的事情实- W/ i) w; O3 g* }
在太多。制程常常在被改变、输入数据变化无常、更甚者常常会有特殊情况出现,而这一切
$ d& Q8 N0 `/ d4 d都末在当初写程序时考虑到的。
* ^# c. {# M+ k. C" E第一步最容易自动化的是重复的工序,它们可被定义成流程图,配上固定的步骤和怎样执行. |% {$ Z2 i% z1 p9 o' L2 Z# G
每一步便可。典型的步骤包括:
9 c- G6 j2 g) r8 K `• 生成排板
1 {; k: G! A. C5 z- m$ |• 计算铜面积6 e: l: h* I3 r R0 ]
• 产生覆盖层
5 w) X( X7 |. p- w• 层内分析 (为报价或量产)( ?$ A' }- F3 ^! }& J7 d
• PCB编辑
$ p2 D9 ^2 ?! f- {• 网络比较
! M+ H8 k, C( f* U# w( U• 输出至不同格式) E7 o) B4 O0 \: B+ i
• 数据库管理及其它 为了简化程序,你可以从CAM流程中的单一的script 开始。然后把每一个小script 连系在
+ P* m3 j3 C' k0 { q: S! A! V+ {workflow上,CAM 工程师只需按正确的次序执行便可。你更可以防止他们在错误的时候按错' b6 ]8 l3 N1 q# j, i( Y- }
误的键。就算有些工序需要手动处理,script 也可以预先打开正确画面及显示相关层的数据。& ^& g/ c' t! ?4 e/ Q' M0 L
当手动处理完成后,script 只需要跑一个检查程序去确认手动处理没有造成新的设计和网络问
8 \. M' ~) Q6 M+ ^+ V题。
: x8 y, P5 Q! t5 Q& p! L& _以下例子(图四) 是典型的CAM料号输入流程。左边的按钮是操作人员必须执行的动作,这动# J7 d7 \. s0 W- o
作被连系到script 去执行所需的介入或非介入工序。当完成工序后,该按钮的底盘颜色会改, l. c8 t" V+ E( p' ~+ e# j
变,操作人员的数据和执行时间都被自动记录在案。你可以用Genesis 的workform来设计用
9 |6 s% U* _2 Z( P* A, @8 b# `; p户接口或沿用Tcl/Tk 的接口设计工具亦可。
/ e4 X9 Y9 X" n/ c3 B2 N6 N4 p: W; i7 n0 z6 w; B. ~
图四:输入流程例子2 Y$ _6 j2 G0 u. C
挂接程序9 X2 p C6 F; y/ ]8 g
Script 可连系到每一个被执行的指令,这些小script 名为挂接程序。它们可被特殊指令激活8 a4 K4 \0 y; a
(好像:打开料号、加图盘或储存料号等) ,这些挂接程序可改变指令的行为。例如我们可以
3 j% o7 R& Z, A% p/ F' `把一个要求操作员输入密码的script 挂在打开料号指令上,这就可以控制操作员在打开料号时
6 E5 w; ^( k$ Z的权限。$ ]4 D6 L$ e! E
另举一例:一个跑网络检查的小script 可以挂接在储存料号指令上,这便可保障该料号在储存
- w8 I4 T; C' L1 _前网络是正确的。如果网络出现偏差,系统会拒绝储存指令,要求操作员去检查网络。
+ ~, A# n( Z/ K' ?4 L: v7 X总结- E6 N; d$ v7 n
很多PCB制造商已经成功的完成了绝大部份CAM制程的自动化。每一天,他们还是继续投, A$ N' x. X1 e) ?6 |4 H1 v
资在自动化上。在程序人员的培训和自动化维护的投资,都已回报在显著增加的生产量,继8 Z5 @/ w+ f+ T/ f4 U- B
而引发出更好、更快、更精确的CAM制程和产品。
" f% M8 ?6 u- J( g9 C* \2 Q/ \ e
. q8 @6 z% m$ i( h |