PLC软件的开发管理

2014-10-17 03:57黄一民
机电设备 2014年6期
关键词:数据流程序软件

黄一民

· (海军驻上海704所军事代表室,上海 200031)

PLC软件的开发管理

黄一民

· (海军驻上海704所军事代表室,上海 200031)

针对当前船舶设备PLC程序普遍存在的技术运用不规范现象,本文通过借鉴计算机软件开发的相关标准要求,探讨了规范PLC软件开发过程的工作流程,提出了PLC 软件全生存期质量保证的具体措施。

PLC;可编程控制器;软件开发;软件质量管理

0 引言

可编程控制器,简称PLC,在各种船舶系统和设备中已得到广泛应用,主要原因之一是其拥有高效简便的软件开发环境。PLC的编程环境是标准化的,设计者运用梯形图等图形化语言即可进行程序设计,无需较多的软件知识,非常适合控制技术人员使用。但是随着技术迅猛发展,PLC的应用越来越有替代工业计算机的趋势,PLC软件也逐步体现出通用计算机软件结构复杂的特征。但当前船舶设备PLC程序普遍存在技术运用不规范,不经软件测试直接参与设备运转等现象,显然已不满足日益复杂的船舶设备自控技术的要求。许多设备故障的案例也证明缺乏过程监控,完全依赖设计者个人能力的PLC软件开发模式对船舶安全会构成较大隐患。

PLC软件的问题与早期计算机软件规模化开发过程中遇到的“软件危机”情况类似,通用软件行业借助软件工程学科的研究成果已成功解决了这个问题。因此PLC软件也应该充分应用软件工程的方法,规范软件设计、测试、维护和质量管理过程,切实提高软件的可靠性和安全性。国内在军用计算机软件的工程化管理方面已形成了较为完备的标准体系,本文致力于根据船舶设备PLC软件的特点,通过借鉴计算机软件开发相关军用标准的要求以及作者的理解,探讨了规范PLC软件开发过程的工作流程,提出了PLC 软件全生存期质量保证的具体措施。

1 PLC软件开发的一般要求

1.1 PLC软件开发过程

根据软件工程的理论,软件整个生存期的每个过程必须采用一些系统性、规范化和可定量的方法开展设计或维护工作。文献[1]提出了可供裁剪的26个软件开发过程,由于PLC软件的编程方式和运行环境与计算机软件存在差异,因此作者认为需要关注的过程主要是软件需求分析、软件设计、软件测试、软件质量管理和软件的维护及配置管理,而其他工作可结合整个设备开展。

1.2 PLC软件设计方法

PLC软件实际上是在开发平台上进行二次开发的用户程序,本质上都是进行一些数据变换和事务处理,类似早期的单片机程序。针对这类软件,早期的 GJB 437-88《军用软件开发规范》在技术要求中就规定软件设计必须采用由程序、分程序、模块和程序单元分层结构,即所谓的结构化设计方法,这虽然作为GJB437的替代标准,文献[1]已不作设计方法的规定,但这主要是为了适应通用计算机软件发展的需要,对规范PLC软件的开发过程来说,作者认为采用结构化分层设计仍然是前提和基础。

文献[1]同时规定了“对软件开发的全部活动,开发方应采用文档化的系统方法。”因此PLC用户软件开发各阶段的设计输入和输出、采用的结构化分析和设计技术应该采用规范的开发文档和图表明确表述。这些文档和图表是结构化设计技术的重要组成部分,也是本文所阐述的重点。

2 PLC软件需求分析

软件需求分析是软件设计的准备阶段,即根据技术规格书将设备的控制要求转换成PLC软件的设计输入。PLC软件需求分析主要是形成软件的需求规格说明和接口规格说明两份文档。

软件需求规格说明中需要明确的主要内容是软件需要完成的外部控制功能和内部数据处理流程,这可以用软件数据流图表示。数据流图是通过描述PLC软件中数据流向和对数据施加的变换来规划整个软件的处理过程。需求分析过程输出的数据流图是反映软件满足设备总体功能要求的处理模型。数据流图的样式和表达符号可参照GB1526-89。图1是某船舶空调设备的PLC软件数据流图。软件需求规格说明需要表述的内容还包括适用的设备对象、PLC硬件的型号规格,开发软件的版本、编程语言及其标准等。

图1 PLC软件数据流图

软件的接口说明是用于表述PLC软件完成功能需要处理的输入输出对象,根据类型可划分为模拟量信号、开关量信号和通讯接口。一般在接口说明文件中以表格型式明确接口名称和代号、输出或输入性质、接口类型、接口的电气规格及其代表的物理量程,接口地址、采样周期、通讯接口应用层协议格式等。

3 PLC软件设计

3.1 软件结构设计

在明确了软件的功能和接口要求后,就进入了软件的结构设计,也称为软件的概要设计,完成的主要工作是确定软件的模块组成和模块定义。

在设计软件结构之前,首先需要将软件数据流图细化,即在前阶段数据流图基础上把内部进行的信息处理过程全部表达出来。有了完整的数据流图,可判断软件的处理模型是变换型还是事务处理型,复杂的软件也可能是两种类型的组合。根据类型采用不同的方法可以把数据流图划分成几个部分,并进一步分解形成软件初步的模块结构图。为了提高执行效率以及便于后续的测试和维护,必须对软件模块结构进行优化,最终形成与软件实体对应的模块结构图。有关数据流图的划分和分解方法以及结构优化原则可参考文献[2-3]。

完成结构设计后,PLC软件功能分配以及模块间的关系已经确定,各模块的定义也应相应明确。模块定义的内容包括每个模块的功能说明,输入输出变量的数据类型和取值范围,数据处理的数学模型(算法)。

软件结构设计建立了PLC软件需求和软件单元之间对应关系,是构建整个软件的最关键步骤,也是后续工作的基础,该阶段的设计结果以软件设计说明(SDD)的形式输出。图2是图1项目最终的模块结构图。

图2 PLC软件结构图

3.2 软件详细设计

在结构设计后可以开展PLC软件的详细设计,首先确定模块内部数据处理模型,并以程序流程图或逻辑图的型式表示。

程序流程图,又称程序框图,是运用一组规定的图形符号来表达程序的逻辑控制结构。程序流程图的三种基本控制结构为“顺序”、“选择”和“循环”,软件设计者应先确定模块总的控制结构,再展开设计内部单元的流程。程序流程图一般用于表达数据变换、计算和顺序执行等数据处理模型。程序流程图的图形符号规则同样参照GB1526-1989。

逻辑图,是采用二进制逻辑单元图形符号绘制的一种工程图,适用于表达复杂控制系统中各种开关动作的先后次序、逻辑约束条件和因果关系。PLC软件中具有大量处理开关信号的程序,可以用逻辑图表示此类程序单元的执行过程。逻辑图的制图规则和符号参照国家标准 GB/T 6988.7-1986。图3是图2中“数字滤波”模块的流程图,图4是图2中“风机控制”的逻辑图。

图3 “数字滤波”模块流程图

图4 “风机控制”模块的逻辑图

在完成模块的逻辑或流程设计后,即可逐个进行编码工作。程序代码的语句构造应简单直接,并保持结构化的特征。除此以外,应特别注重对源代码的注释、数据说明等,对输入输出参数应设置数据边界和合法性检查,这些在目前的船舶设备PLC程序中往往被忽视。

4 PLC软件测试

PLC软件测试包括设计过程测试和联机功能测试。设计过程测试是指PLC软件在编码阶段,根据软件结构图和模块的定义,选定一组能反映被测代码所有处理功能的数据输入程序并运行,检查输出数据是否符合功能目标。该方法属于黑盒测试法,即只对某段程序的接口数据进行符合性检查,不考虑中间处理过程。

设计过程测试需要经历单元测试、集成测试和软件合格性测试。单元测试针对软件模块进行,主要用于发现模块内部处理逻辑的错误。集成测试则是根据模块结构图,从主控模块出发沿着调用路径把模块逐个组装起来,对模块间接口进行测试。以上两种测试可以使用开发环境中的仿真插件结合起来进行。软件合格性测试是将整个软件下载到PLC上,用模拟的方式连接PLC的外部接口信号,逐个测试PLC软件的控制功能。联机测试则是指结合设备出厂试验对PLC软件功能进行专项测试。

每一种测试都需要事先编制测试计划,应明确测试目的、被测程序单元标识、测试用例(输入数据、预期结果和评价准则)、测试方法和工具,需要编制软件纠错和验证表。软件测试结果不合格应即时修改,修改后应进行回归测试,即重复发生错误或相关联的测试,直至结果正确。测试错误的分析、纠正措施和回归测试结果记入软件纠错和验证表。

5 PLC软件质量管理

5.1 软件质量保证的策划

PLC软件质量保证应贯串软件生存期的全过程,质量管理活动应该在配套产品的质量保证大纲中作出专项规定,内容可根据相关规范,如GJB 439-88 的规定作相应裁剪,至少应包括对软件设计文档、软件技术和质量评审、软件纠错、质量记录和软件配置管理的规定。

5.2 技术和质量评审

PLC软件的技术评审指对软件设计各阶段的工作内容和输出文件进行评估,可结合产品的技术评审工作进行,但应该提出专项评审意见和整改要求。

PLC软件需求评审结合产品设计输入评审进行,评审要点是提出的软件功能需求是否满足了产品技术规格书的要求。

概要设计评审可结合产品方案设计评审进行,评审要点是软件所有处理环节是否已有详细合理的实现途径,软件模块结构是否给出且模块定义是否明确。

详细设计评审可结合产品施工设计评审进行。评审要点是软件各模块数据处理逻辑或流程是否确立,源代码及注释是否完成,测试计划是否已给出,测试用例是否完整充分等。

完成联机测试后,可结合产品出厂质量评审对 PLC软件进行质量评审。质量评审分为功能审查和物理审查。功能审查主要检查软件测试结果是否能够证明已完全满足需求规格说明中的全部功能,所有测试中的错误纠正是否已验证且有记录。物理审查主要检查PLC软件的配置和相关文档是否完整齐全,软件文档的描述是否与实际的功能特性一致。

5.3 软件维护和配置管理

PLC软件测试完成后即有了第一个配置完整的构建版。此后软件随设备投入航行使用不可避免地要经历修改,此类维护工作必须有一个完善的纠正措施系统进行管理,否则将给设备和船舶带来安全隐患。首先受项目级以上控制的软件单元的更改必须进行技术评审,评审对象包括问题描述、纠正措施、测试和验证计划。更改实施后应进行回归测试,结果应证明问题已解决,同时未影响原正确的功能。软件更改完成后应形成报告记录更改过程,最后应将更改报告、测试报告、软件纠错和验证表以及修改好的软件文档和源代码归档。

软件形成第一个构建版后,经历更改即产生了后续的构建版,为保证技术状态的可追溯性,必须实施配置管理,即固化各版本配置项(模块组成和硬件设置)的技术状态。

首先开发单位应有一套软件版本标识方案,对软件的每一个构建版给予标识,包括所有的配置项。其次应该建立软件的归档制度。 归档内容应该包括该版本的设计说明文件、配置项及版本说明、测试计划和测试报告、纠错和验证表、问题/更改报告和源代码。另外,对因更改而产生的配置更新应加强控制。配置控制指在项目管理中根据重要度分别对软件配置项确定控制等级和工作规程。一般控制等级分为作者、项目和需方三级,工作规程包括各等级对软件配置更改和批准的权限,同时应包括配置更改的申请和批准、更改后的配置审核、更改后的软件归档以及保留旧版本等一系列规定。目前,船舶设备PLC程序的配置管理是突出的薄弱环节,必须引起开发单位的高度重视。

6 结语

PLC的应用为实现船舶机电设备的信息化和智能化提供了便捷的途径,但不能忽视因软件开发导入的风险因素。采用结构化分析和设计技术规范PLC软件的开发工作,并在此基础上实施软件的质量管理可系统地控制技术风险,有效提高设备的安全性和可靠性,这一点无论在军用还是民用船舶领域都具有重要的现实意义。

[1]GJB 2786A-2009《军用软件开发通用要求》

[2]张海藩.软件工程导论(修订版)[M].北京:清华大学出版社,1992.

[3]萧蕴诗,严隽薇.集成化系统开发的技术基础[M].北京:清华大学出版社,2002.

Development Management of PLC Software

HUANG Yi-min
(Navy Representative Office Stationed in No.704 Research Institute,CSIC,Shanghai 200031,China)

Aiming at the present situation of no-specification in marine equipment PLC software development,with the reference to the relevant contents of computer software design standard,the paper discusses the standard process of PLC software development,and put forward specific measures for PLC software quality assurance in the whole software lifecycle.

PLC; programmable controller(PLC); software development; software quality assurance

U665.13

A

黄一民(1968-),男,高级工程师。主要从事船舶电气研究。

猜你喜欢
数据流程序软件
禅宗软件
汽车维修数据流基础(下)
试论我国未决羁押程序的立法完善
软件对对碰
一种提高TCP与UDP数据流公平性的拥塞控制机制
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
基于数据流聚类的多目标跟踪算法
创卫暗访程序有待改进
即时通讯软件WhatsApp