计算机应用
COMPUTER APPLICATIONS
1999年 第19卷 第10期 Vol.19 No.10 1999



柔性生产线动画监视界面的实现
李秀　沈晶　姜澄宇　王宁生
　　摘　要　本文介绍了某企业柔性生产线信息管理系统监视界面的动画制作，将动画技术加入系统，可以实时仿真生产线运行情况，使之更具有生动性，为生产线的监视带来很大的便利。本文主要介绍了应用可视化编程语言VB及图像处理软件实现动画的主要技术。
　　关键词　Visual basic，仿真，柔性生产线
1　前言
　　我校CIMS实验室与某企业合作开发生产线信息管理系统，该系统在网络和分布式数据库支持下，基本实现资源、信息和人的集成。管理系统信息集成包括：接收MRPII的生产计划、完成任务令的优化调度、实现生产线监视、品质管理、完成统计查询信息，其中的生产监视在工业生产中应用十分广泛。
2　生产线结构简介
　　某电源产品的制造工艺主要包括单板准备、装配、灌胶、恒温固化、老化、检测及包装等各工序的任务如下：
　　单板准备：　包括单板功能检测和调测，其中调测主要是根据检测结果对电阻进行调整。
　　装配：　将绝缘片和制成板放进外壳，由于某系列产品的外壳侧面有一些内凹的筋用于防止制成板被拉出来，在装配时，需要有一机械手用点力将制成板压入。对于双面制成板产品，还需要在放入制成板之前先灌部分胶，另有部分产品装配时需要打螺钉。
　　灌胶：　根据产品的不同要求，分全灌封和点胶两种方式，灌胶速度为平均每个工件10秒以内。某些系列模块直接用胶封装，还有其它系列模块在局部地方点胶。
　　恒温固化：　在恒温箱内，60～70℃温度下恒温固化。经试验，约需30分钟。
　　老化：　工件恒温固化后，插入老化板上送进恒温老化箱中老化，老化时间初步定为8小时。
3　动画设计
3.1　动画基本原理
3.1.1　调色板动画
　　通过直接访问调色板，可以生成某种类型的动画，这种动画不需对显示的位图作真正变化。通过这种技术，有时称其为颜色循环，能模仿出流动的水、空气效果、亮度变化，甚至无需众多资源的移动物体和多帧动画。
3.1.2　子画面动画
　　子画面动画的原理如电影动画制作类似，一个达到应有长度的动画电影需要上千张画。每秒需要12张图像（在大部分动画中，每一帧被拍摄两次以达到电影的标准速度每秒24帧）。但每一帧中的大部分东西并不移动。因此只画一次背景。然后，人物就画在透明的胶片上，摄像师将其和背景放在一起组成一帧。
　　在计算机动画中，“电影胶片”就变成了子画面，位图图形对象和背景在屏幕上独立地移动――对象之间也是相互独立的。子画面使得生成实时计算机动画成为可能。
3.1.3　帧动画
　　帧动画的原理，在分开的纸上画上每一帧图像，然后用计时器在屏幕的相同地方显示每一帧。
3.2　透明图形的实现方法
　　在编写应用程序时，有时要在窗口移动一个小小的图形（响应鼠标动作或用Windows 定时器自动移动它），如果图形是矩形，只要调用BitBlt用SRCCOPY光栅操作码在窗口的每个新图形位置显示包含图形的位图。窗口有一致背景颜色时，不管图形形状如何，也可以用这个方法显示图形。
　　但通常需要在包含不同颜色的窗口动画非矩形图形，而BitBlt函数总是传送图形的矩形块。源位图中图形周围的图案会覆盖屏幕上的现用图素，从而出现难看的矩形“光环”。
　　在VB中可以有两种方法实现前景与背景的融合，从而实现透明图形的效果。
3.2.1　使用WINDOWS API
　　生成两个源位图：掩膜位图和图形位图。在掩膜位图中，图形为黑色，背景为白色。而在图形位图中，图形为正常色，背景为黑色。
　　下图所示为一设备的掩膜和图形位图。

图1　铣床的掩膜和图形位图
　　为在窗口特定位置显示图形，要调用两次BitBlt。第一次用SRCAND光栅操作码，传送掩膜位图；第二次用SRCINVERT光栅操作码，传送图形位图。
　　首次调用BitBlt显示黑色图形，不影响图形周围窗口背景上的现有图形，第二次调用BitBlt将彩色图形传到窗口，也不影响现有图形。总的结果是非矩形在窗口显示，周围是原窗口图形。
　　Declare Function BitBlt Lib "GDI32" (
ByVal hDestDC As Long, 　　′目标设备上下文句柄
ByVal X As Long, 　　　　　′目标图左上角X坐标
ByVal Y As Long,　　　　　　′目标图左上角Y坐标
ByVal nWidth As Long, 　　　′图像宽度
ByVal nHeight As Long, 　　′图像高度
ByVal hSrcDC As Long, 　　　′源设备上下文句柄
ByVal XSrc As Long, 　　　′源图左上角X坐标
ByVal YSrc As Long, 　　　′源图左上角Y坐示
ByVal dwRop As Long) As Long
3.2.2　利用PhotoShop
　　制作有透明效果的GIF图形文件。 操作步骤如下：
　　. 用图形工具画出图形，以单一颜色作为背景色。
　　. 用PhotoShop调入该图形文件，将其图形模式改为Indexed Color。
　　. 输出GGIF文件图形，同时可消除背景色。
　　在VB中使用Image控件，调入做好的透明图片，此时无须调用BitBlt函数，就可以实现透明图形在屏幕上的移动。但这种方法有一些限制，在VB中只有Image控件可以用该法实现透明图形。
3.3　程序实例
　　创建一个工程，程序中用到的控件及其属性有：
　　窗体：Name 为Demo
　　图片框：
　　　Name　　　picCopy　picMask　　　　PicSprite
　AutoRedraw　　　True　　True　　　　　　True
　AutoSize　　　　True　　True　　　　　　True
　Picture　　　　None　MillerMask.bmp　　Miller.bmp
　ScaleMode　　　pixel　　　pixel　　　　　pixel
　Visible　　　　False　　　False　　　　　False
　　定时器 Name: TimerDemo　Interval:200
　　程序中使用了几个全局变量，NewX,NewY,PicWidth,PicHeight。
　　NewX,NewY用于确定目标的位置，PicWidth,PicHeight用于确定图像的大小。(限于篇幅，代码模块程序表单略)
3.4　生产线监视动画显示
　　生产线分为上料区、ATE检测区、接驳区、灌胶区、下料前区、下料区、恒温区和老化区几个部分。
　　程序设计采用面向对象的程序设计方法,对于生产线的各个区分别采用一个定时器事件来处理其动作:
　　程序中使用了五个定时器事件:
　　　上料区　　　　tmrLoad
　　　ATE检测区　　 tmrCheck
　　　接驳区　　　　tmrBuffer
　　　灌胶区　　　　tmrDrop
　　　下料前区　　　tmrUnload
　　　下料区tmrUnload
　　五个区动作逻辑如下：
　　. 上料区
nAction=0 从无到有上料直至有两块PCB板进入检测区
nAction=1 进两个PCB板及其外壳
nAction=2 进一个PCB板外壳
nAction=3 进两个PCB板外壳
nAction=4 进两个PCB板
　　. ATE检测区
nAction=1 ATE开始检测,机械手回至原位(第一条轨道)
nAction=2 进两个PCB板及其外壳
nAction=3 检测后两块PCB板均坏
nAction=4 检测后第一块坏,第二块正常
nAction=5 检测后第一块正常,第二块坏
nAction=6 两块均正常
nAction=7 只进两块PCB板,机械手回至原位
nAction=8 只进两块PCB板外壳
nAction=9 只进一块PCB外壳到机械手位置1
(当第二块PCB板坏)
nAction=10 只进一块PCB外壳至机械手位置2
(当第一块PCB板坏)
nAction=11 只进两块PCB板
nAction=12 机械手回至原位
　　. 接驳区
nAction=0 清空接驳区
nAction=1 进两块PCB板
nAction=2 从位置1进一块PCB板
nAction=3 从位置2进一块PCB板
　　. 灌胶区
nAction=0 当接驳区有六块PCB板,进六块PCB板
nAction=1 开始灌胶
nAction=2 当接驳区有七块PCB板,进六块PCB板 
　　. 下料区
　　nAction=0 进六个PCB板到下料前区
nAction=1 排齐PCB板(九个一组)
　　定时器事件模拟了生产线上的PLC控制器,对于每一个定时器,首先给出其动作类型,相当于PLC调用不同的程序,然后启动定时器,相当于PLC被触发。
　　每一个定时器须要满足一定的条件才能被启动,相当于PLC必需满足一定的条件才能被触发。
　　因此程序中采用一个定时器tmrControl来监控整个生产线的运作,由它来整体协调其它定时器的动作序列。
　　此外,tmrControl同时也处理装绝缘纸机械手的动作,移动坏PCB板,将排列好的PCB板从下料前区移至下料区。
4　结语
　　将动画技术加入系统，可以实时仿真生产线运行情况，使之更具有生动性，为生产线的监视带来很大的便利。应用可视化编程语言VB及图像处理软件可以方便地实现动画效果。
作者简介：李秀　博士研究生。
沈晶　硕士研究生。
姜澄宇　教授，博士生导师。
王宁生　教授，博士生导师。
作者单位：南京航空航天大学CIMS中心 江苏.南京（210016）
参考文献
［1］　（美）Noel Jerke，等著. Visual Basic 5开发人员指南. 机械工业出版社，1997,10
［2］　冷向君，著. Visual Basic入门与提高.北京：清华大学出版社
［3］　胡晓峰，等. 多媒体系统原理与应用. 人民邮电出版社，1995
［4］　M.Regelski，等著. 多媒体程序设计技术(第一版).　谢　东，韩凡右，译. 西安交通大学出版社，1995，11
收稿日期:1999-05-16
