叶志明
(广东正业科技股份有限公司,广东 东莞 523808)
对于设备的用户而言,都追求高性价比,希望用一定的钱购买到高稳定性、高精度、高速度的设备并获得生产厂商的优质的售后维护升级服务。对于PCB(印制电路板)的加工与检测设备行业而言同样如此。
设备的稳定性、精度、速度除了与设备的机械、电子、零件、组装等因素有关之外,作为设备“大脑”的软件控制系统起着至关重要的作用。看如下情况:
有许多设备因为软件控制的原因,导致停机,达不到精度,甚至某些软件错误引起设备的损坏;
在遇到设备错误时,无法重现错误和追索错误原因;
在设备硬件更换(这里的设备硬件是指需要与软件通讯的设备硬件,例如运动控制卡, 工业相机等)时,牵一发而动全身,整个软件代码都要修改一遍和测试一遍;
客户的需求有变动(例如测试数据报表的格式变动)时,引起一种报表格式就有一个软件版本;
针对上述情况,本文从整体的角度对PCB加工与检测设备的软件框架进行分析及设计。通过使用该软件框架来减少或者避免上述情况的发生,从而加快软件的设计、实现、测试、维护及升级等整个软件过程。
软件框架(Software Framework)是软件系统的整个或部分的可重用设计,它规定了软件的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象构件及构件实例间交互的方法。通常,某个软件框架(应用框架)实现了某应用领域通用完备功能(除去特殊应用的部分)的底层服务,使软件的开发人员可以在一个通用功能已经实现的基础上做具体的系统开发。
采用框架技术进行软件开发的作用有[1]:领域内的软件结构一致性好;代码重用率大大提高,从而提高软件的生产效率和质量;软件开发的分工更加明确和协调,使各自的开发人员更加专注本领域需求的实现;软件原型能快速建立。
首先使用PCB加工与测量设备的目的是为了对PCB产品的快速加工和精准测量,所以注定该类设备有如下特点:
(1)自动化或半自动化。通过自动化来减少人为错误,提高生产效率。
(2)高精度。精度到达微米级甚至是纳米级的,加工或测量的结果稳定,重复精度高。
(3)快速。作为生产设备,快速是必须的。
(4)用户重视加工、测量数据。随着管理水平的提高,用户对产品的加工数据和测量数据越来越重视。
(5)用户重视操作权限管理。用户通过操作权限管理来控制操作权限,避免无权限人员对设备造成损坏。
(6)需要对PCB行业的相关图形文件解析。主要有gerber文件、CAD文件、cam文件等等。
PCB加工与测量设备的这些特点确定了其硬件机构和软件功能。其中特点A,B,C需要通过运动控制来实现;特点B需要使用工业相机来进行精准定位;特点D、E、F则需要通过软件功能来实现。
软件整体框架如(图1)。
图1 软件整体框架模块组成图
该软件框架由10个模块组成。其中模块1是主模块,其他的都是辅助模块。主模块调用其他辅助模块完成其对应的业务流程。在辅助模块中,模块2、3、4是外围设备模块,是实现自动化,高速度,高精度的基础;模块6、7也是核心模块,但具有通用性;模块5、8可以说是一种功能扩展模块;模块9日志模块,记录软件运行过程,维护和排错使用。
4.1.1 主业务逻辑模块
该模块是软件的业务核心,负责总的业务流程的实现和其他模块的调用。
例如,在PCB检孔机上,负责实现检孔流程、扫描样板、检查孔径、分拣等;UV激光切割机上负责实现切割流程、加载切割图形、分割振镜栅格、控制激光、批量切割等;在字符喷印机上负责实现喷印流程、加载图形、转化图形、控制碰头、固化等。
除了实现业务核心之外,还要控制其他通用辅助模块,实现不同的用户需求。
4.1.2 外围设备模块
外围设备模块主要是一些控制硬件设备的模块有:2运动控制模块,3工业CCD控制模块和4外围I/O控制模块。
模块2用于控制运动平台的精确运动;模块3用于控制工业相机,抓取要加工或者要测量的样品的图像使用图像算法进行定位或者测量,保证了加工与测量的准确性和稳定性;模块4用于其它的控制,例如气阀、光源、开关等。
4.1.3 模块5图形解析与模块6图像处理
模块5和模块6是两个比较通用的模块,PCB加工与测量设备都需要使用。例如加工或者测量样品的定位,首先使用模块5加载样品的图形文件(gerber文件、dxf文件等),然后根据图形文件的信息选定定位孔,使用模块3进行样品图像的抓取,最后使用模块6对图像进行处理找出样品的正确位置。这个过程PCB加工与测量设备几乎都要使用。
4.1.4 功能扩展模块
模块7用户管理用于对设备操作人员的权限管理,控制和记录操作人员对设备的使用情况。模块8数据管理用于对加工数据进行和测量数据进行记录,统计等。这样的功能对加工和测量都没有很大的影响,然而作为扩展模块,它们可以提高设备的使用体验,更加贴近用户的需求。
4.1.5 运行日志模块
运行日志模块用于记录设备的运行情况,例如在设备发生异常时,通过运行日志,最大限度的找出异常发生的原因,方便维护人员对设备的维护。
4.2.1 高内聚与松耦合
该软件框架对于PCB加工与测量设备有一定的通用性,在软件实现要保证这种通用性必须遵循“高内聚、松耦合”原则,因此在软件实现时,通过正确分析出各个功能模块来实现模块的高内聚,各个模块通过接口的形式来提供给其他模块使用来实现模块的松耦合。
图2主业务逻辑模块对工业CCD控制模块的调用。从图2中可以看到,工业CCD控制模块把具体的型号的CCD与主业务逻辑模块隔离了,主模块并不知道具体型号的CCD,主模块它只需要知道怎样调用工业CCD控制模块的“图像抓取”接口完成自己的功能即可,而工业CCD控制模块对外只管提供其接口给其他模块使用,对内控制好各种类型的工业CCD即可。各施其职,各取所需。对于其他模块也是一样的情况。
4.2.2 各个模块提供的主要接口(图3)
各个模块的接口需要根据实际的应用需求来确定,接口确定后,不应该随便修改。
4.2.3 应用举例
现在假设需要开发某一种PCB测量设备,我们把软件框架应用到软件的开发中,可以有这样的步骤:
(1)根据实际的需求,使用该软件框架中的模块,在主模块周围添加需要的模块;
(2)在确定模块后,根据主模块需要的功能来固定各个模块的接口;
(3)各个模块的接口固定后,各个模块继承各自的接口,实现各自的接口;
(4)模块实现后进行模块的单元测试,而且各个模块的实现和测试可以并行进行;
(5)最后各个模块合并到主模块中,进行集成测试;
(6)如果某模块需要升级,我们只需要对该模块的内部实现进行修改即可。
图2 主业务逻辑模块对工业CCD控制模块的调用
图3 各个模块提供的主要接口
步骤A和B体现的是可以快速建立软件模型,从而可以快速的确定需求分析的正确性。
步骤C、D、E体现的是各个模块的独立性,使得我们在实现各模块时能更专注模块本身的功能和细节,而且各模块的实现和测试可以并行进行,提高开发效率。
步骤F体现的是软件框架结构合理,接口正确性和固定,保证了软件需求变更的快速升级,避免了牵一发而动全身的情况发生。
PCB加工与测量设备的基础框架可以根据实际需求来修改。通过该框架可以快速建立软件模型,并行实现和测试各个模块,方便单元测试和合并软件,提高了开发质量和效率。在多款PCB加工与测量设备的软件上得到很好的应用和体现。
[1]温昱.软件架构设计[M]. 北京:电子工业出版社,2007:37-43.