加入收藏
在线咨询 Advisory
热线电话
Hotline

136-2049-9088

教学资料
PCB工程工艺教材

首页 > PCB工程工艺教材

Genesis2000,C-SHELL Script概念,CAM工程培训,CAM培训,CAM工程师培训,Genesis培训,Genesis2000培训,起点CAM培训|PCB培训|PCB工程师培训|PCB抄板培训

C-SHELL Script 概念

Script 是怎样工作的? 

最容易的方法是用line-mode 指令;文字形式的指令已能代替CAM 系统内每一个滑鼠的动作。 如要打开一个料号的话,可用COM open_job,job=12022 便成。第一部分内的 “COM open_job” 告诉系统要怎么做(在这例子代表打开料号) 。第二部分内的告诉系统要处理什么资料 (在这例子代表料号名称为12022) 。同样的道理,如要在座标 (4.6; 4.4) 加上100mils 的圆盘,可用指令:COM add_pad,x=4.6,y=4.4,symbol=r100,polarity=positive 来实现。为了帮助自动化程式员从几千个CAM系统所提供的指令中找出所需的功能,指令记录功能可记录所有执行过的动作,继而把它们变成line-mode 格式,程序员就可以运用把它们化为自动化的内容。 

Genesis 指令记录器 

现在你已有指令可以在script 内执行。这个script 只有对这一个特定的料号有效;这时,你需要产生一个在每一个料号都可以用的script。这就是script 语言产生的原因。你需要建立一些变数、做一些计算、写一些if-then-else 的句子; 还有产生一些循环、目录、列阵种种。举一个简单的用C-Shell script 语言写的例子,可让大 家了解一下:下面这个程式可从资料库读进排板大小,然后在每一层的左下角和右上角距离0.5mil 板边的地方放一个100mil 的圆盘。 

DO_INFO -t step -e $JOB/$STEP ## 从资料库中读取有用的资料 

MATH x1 = $gPROF_LIMITSxmin + 0.5 #### 计算X 和Y 座标 

MATH y1 = $gPROF_LIMITSymin + 0.5 #### 在Xmin 和Ymin 加上0.5 

MATH x2 = $gPROF_LIMITSxmax - 0.5 #### 在Xmax 和Ymax 减去0.5 

MATH y2 = $gPROF_LIMITSymax - 0.5 #### 结果存在x1, y1, x2 和y2 变数中 

### 显示每一层和在已计算的座标上 

### 加上100 mils 的圆盘 

foreach layer ($gLAYERS_LIST) 

COM display_layer,name=$layer,display=yes,number=1 

COM work_layer,name=$layer 

COM add_pad,x=$x1,y=$y1,symbol=r100,polarity=positive 

COM add_pad,x=$x2,y=$y2,symbol=r100,polarity=positive 

end 

C-shell Script 例子 

该用哪个script 语言?你可以用任何一种程式语言来作为script 语言。但最被普遍接受的是通译程式而不是需要被编译的程式。通译程式可直接被执行;但是编译程式(像C、C++、Java 等) 必须在被执行前 先被翻译(编译)成机器语言。它们比较难学,没有line-mode 编辑器,故此是一种难以引起大家兴趣的script 语言。市场上你可以考虑用不同的script 语言:C-shell, Tcl/Tk, Perl 和Python (还有很多其他的语言 ,在此不作探讨)。C-Shell 是被公认为最容易学的语言。它拥有非常简单而有限的指令,足够让你可以写出大部分的自动化程式。偶尔你需要其他的小工具awk 或sed 来帮忙,但整体来说,C-Shell 的标准工具已能符合一般要求。你更可以用Genesis 的表格功能和内含的GUI来设 计用户介面。其他的程式语言,好像Perl, Python 和Tcl/Tk,具备更强大的功能,每一个都提供类似的工具 和能力。我可以再写十页来比较它们的优缺点,但这只会令我们迷路;在CAM自动化程式语言中,它们都是大同小异。这三种语言提供比较好的工具:好像列阵和子程式、还可产生用户介面,让用户预先输入参数和选择。在Tcl/Tk 所产生的用户介面例子。什么工作可被自动化?理论上,你可以把CAM从输入到输出的每一步都可以自动化,问题是当中需要考虑的事情实在太多。制程常常在被改变、输入资料变化无常、更甚者常常会有特殊情况出现,而这一切都末在当初写程式时考虑到的。第一步最容易自动化的是重覆的工序,它们可被定义成流程图,配上固定的步骤和怎样执行每一步便可。典型的步骤包括: 

? 生成排板 

? 计算铜面积 

? 产生覆盖层 

? 层内分析 (为报价或量产) 

? PCB编辑 

? 网路比较 

? 输出至不同格式 

? 资料库管理及其他 

为了简化程序,你可以从CAM流程中的单一的script 开始。然后把每一个小script 连系在workflow上,CAM 工程师只需按正确的次序执行便可。你更可以防止他们在错误的时候按错误的键。就算有些工序需要手动处理,script 也可以预先打开正确画面及显示相关层的资料。当手动处理完成后,script 只需要跑一个检查程式去确认手动处理没有造成新的设计和网路问题。以下例子(图四) 是典型的CAM料号输入流程。左边的按钮是操作人员必须执行的动作,这动 

作被连系到script 去执行所需的介入或非介入工序。当完成工序后,该按钮的底盘颜色会改变,操作人员的资料和执行时间都被自动记录在案。你可以用Genesis 的workform来设计用户介面或沿用Tcl/Tk 的介面设计工具亦可。输入流程例子。挂接程式Script 可连系到每一个被执行的指令,这些小script 名为挂接程式。它们可被特殊指令激活(好像:打开料号、加图盘或储存料号等) ,这些挂接程式可改变指令的行为。例如我们可以把一个要求操作员输入密码的script 挂在打开料号指令上,这就可以控制操作员在打开料号时的权限。另举一例:一个跑网路检查的小script 可以挂接在储存料号指令上,这便可保障该料号在储存前网路是正确的。如果网路出现偏差,系统会拒绝储存指令,要求操作员去检查网路。 

总结很多PCB制造商已经成功的完成了绝大部份CAM制程的自动化。每一天,他们还是继续投资在自动化上。在程式人员的培训和自动化维护的投资,都已回报在显著增加的生产量,继而引发出更好、更快、更精确的CAM制程和产品。