该用哪个script 语言?
9 X+ H' v) k+ I* O' p; Y 你可以用任何一种程序语言来作为script 语言。但最被普遍接受的是通译程序而不是需要被编译的程序。通译程序可直接被执行;但是编译程序(像C、C++、Java 等) 必须在被执行前 先被翻译(编译)成机器语言。它们比较难学,没有line-mode 编辑器,故此是一种难以引起大家 兴趣的script 语言。
2 c/ `% c4 s2 k4 z, | 市场上你可以考虑用不同的script 语言:C-shell, Tcl/Tk, Perl 和Python (还有很多其它的语言 ,在此不作探讨)。C-Shell 是被公认为最容易学的语言。它拥有非常简单而有限的指令,足够 让你可以写出大部分的自动化程序。偶尔你需要其它的小工具awk 或sed 来帮忙,但整体来说,C-Shell 的标准工具已能符合一般要求。你更可以用Genesis 的表格功能和内含的GUI来设 计用户接口。
, Z/ G1 ?6 L( W6 ]% ~ 其它的程序语言,好像Perl, Python 和Tcl/Tk,具备更强大的功能,每一个都提供类似的工具 和能力。我可以再写十页来比较它们的优缺点,但这只会令我们迷路;在CAM自动化程式语言中,它们都是大同小异。这三种语言提供比较好的工具:好像列阵和子程序、还可产生用户接口,让用户预先输入参数和选择 。
甚么工作可被自动化?+ m+ i; p" r, _( F5 B
理论上,你可以把CAM从输入到输出的每一步都可以自动化,问题是当中需要考虑的事情实在太多。制程常常在被改变、输入数据变化无常、更甚者常常会有特殊情况出现,而这一切都末在当初写程序时考虑到的。
$ p5 M: o) A w" N 第一步最容易自动化的是重复的工序,它们可被定义成流程图,配上固定的步骤和怎样执行每一步便可。典型的步骤包括:
9 C, X( e( g3 O b5 A生成排板) k- I. Y4 |: x- I
计算铜面积
1 E4 m5 z! F! B* w产生覆盖层
. m' M# m. m0 Y8 M; c j层内分析 (为报价或量产)2 M. ]; \# o# o% m, _: V
PCB编辑- O; O# f5 _/ [+ M
网络比较0 H: S8 j) Z O
输出至不同格式
9 z5 X( K! T' R: @数据库管理及其它
为了简化程序,你可以从CAM流程中的单一的script 开始。然后把每一个小script 连系在workflow上,CAM 工程师只需按正确的次序执行便可。你更可以防止他们在错误的时候按错误的键。就算有些工序需要手动处理,script 也可以预先打开正确画面及显示相关层的数据。当手动处理完成后,script 只需要跑一个检查程序去确认手动处理没有造成新的设计和网络问题。" E# A4 L8 F# S5 R
以下例子是典型的CAM料号输入流程。左边的按钮是操作人员必须执行的动作,这动作被连系到script 去执行所需的介入或非介入工序。当完成工序后,该按钮的底盘颜色会改变,操作人员的数据和执行时间都被自动记录在案。你可以用Genesis 的workform来设计用户接口或沿用Tcl/Tk 的接口设计工具亦可。
挂接程序. u0 h5 ]$ }) s$ q- O; J! }+ [) ?1 V
Script 可连系到每一个被执行的指令,这些小script 名为挂接程序。它们可被特殊指令激活(好像:打开料号、加图盘或储存料号等) ,这些挂接程序可改变指令的行为。例如我们可以把一个要求操作员输入密码的script 挂在打开料号指令上,这就可以控制操作员在打开料号时的权限。
0 [4 a$ S) x4 A4 z- x) A$ a 另举一例:一个跑网络检查的小script 可以挂接在储存料号指令上,这便可保障该料号在储存前网络是正确的。如果网络出现偏差,系统会拒绝储存指令,要求操作员去检查网络。+ d$ q4 b% m+ w/ X/ x( _/ H
总结
" l& v: ?/ s( f; h5 w9 t5 H5 R 很多PCB制造商已经成功的完成了绝大部份CAM制程的自动化。每一天,他们还是继续投资在自动化上。在程序人员的培训和自动化维护的投资,都已回报在显著增加的生产量,继而引发出更好、更快、更精确的CAM制程和产品。