面向对象的功能规范是无意外自动化的关键

功能规范有两个主要目的,一是增强工艺和仪表图纸(p&id)上的信息,以满足用户的期望,二是降低工艺自动化系统的总安装成本。未能开发出全面的功能规格说明会使项目管理成为一项非常困难的任务,会使工程师继续……

通过工作人员 一九九八年六月一日
关键字
  • 过程控制和仪表

  • 对象技术

  • 规范

栏:
使用功能规范进行招标
如何开发控制模块对象

功能规范有两个主要目的,一是增强工艺和仪表图纸(p&id)上的信息,以满足用户的期望,二是降低工艺自动化系统的总安装成本。

未能制定全面的功能规范会使项目管理成为一项非常困难的任务,会使工程师在项目上花费的时间比预期的长得多,并可能交付不安全的过程自动化实现。

1988年,英国健康与安全执行局(Bootle, U.K.)对化学加工工业中34起“可报告的”事故进行了调查,结果显示,不合格的规格可能与这些事故的20%(#1原因)有关。

功能规范开发经常被避免,因为人们认为它很耗时,而且无法获取自动化需求的足够细节来确保项目成功。对于每次都从一张白纸开始编写功能规格书的项目,这样的概念可能是正确的。现在,看到许多过程控制制造商将面向对象配置工具作为其产品的组成部分是令人耳目一新的;刷新是因为过程控制一直都是关于对象的。

只要看一眼P&ID,就会发现一系列物体,包括电机、阀门、容器、传感器等,它们都由代表管道的线路连接在一起。为功能规范开发采用基于对象的建模技术可以鼓励创建标准过程对象库,并在功能规范和制造商在其产品中提供的开发工具之间建立更紧密的集成。这些库成为一个不断增长的预开发、预测试、可重用过程控制对象的集合,这些对象只需要在功能规范中引用。这进一步提高了生产力,并鼓励整个企业的一致性。

基于对象的建模技术的两个重要特征是对象以及相关的属性,以及方法或者应用于对象的操作。对象被定义为具有清晰边界的东西,而方法被定义为可以应用于对象的函数或转换。通过将这些定义应用于p&id,对象以泵、阀门、容器等形式出现。标准p&id中缺少的是对象属性和描述如何编排对象以生成所需产品的方法。这些缺失的对象属性和方法描述是功能规范必须提供的细节。

模型、术语可以提供帮助

ANSI/ISA-S88.01-1995,批处理控制第1部分:“模型和术语”标准非常接近基于对象建模的重要特征。S88定义了一个物理模型,相当于对象,它描述了一个过程模型,类似于面向对象技术中使用的方法。不要因为提到了“批处理”,就认为S88是为连续过程开发高效和有效的功能规范的有用工具。S88已被成功地用于定义大量行业中的连续过程。

开发流程设计的实际情况是,有些部分更容易定义,因此可以更快地进行设计。

通常,流程不同部分的p&id处于不同的开发水平。使用S88的模型、方法和术语开发功能规范的一个关键好处是能够使功能规范的开发进度与流程开发的速度相匹配。项目管理特别重视开发模块化功能规范的能力,因为资源可以分配到已经完成设计的部分。

遵循S88模型结构的功能规范可以演进以解决项目的许多附加需求,包括详细设计、系统体系结构、通信需求和信息系统接口需求。虽然功能规范通常不包括测试过程,但满足其需求是测试的全部内容。此外,在许多受监管的行业中,功能规范是完成验证工作的关键文档。

功能规格书可以:

  • 帮助比较来自不同供应商的报价;

  • 缓解人员意外变动对项目的影响;

  • 确保所提出的解决方案将为其他系统提供所需的接口;

  • 帮助建立扩展或修改,以满足未来的需求;

  • 定义一个稳定的变更管理平台;和

  • 让创业更快。

要求清晰、准确

重要的是,p&id和功能规范中提供的信息必须准确和清晰。据估计,在测试期间删除功能规范中的错误的成本要高出10倍,而在安装应用软件并进行启动之后,则要高出100倍。这些估计中不包括发现应用程序软件错误的潜在硬件影响。例如,错误地判断操作员屏幕所需的细节量可能会导致通信吞吐量需求过大,迫使意外的系统升级。一个缺乏细节的功能规范,依赖于“流行”词、首字母缩略词和助记符,会产生一个过于一般化和不完整的文档。

功能规范需要投入大量的时间和专业知识来开发,但它是构建一个无意外的自动化控制系统的基础。如果内部无法获得开发专业知识,请寻找在开发基于对象的功能规范方面有经验的顾问或系统集成商。h

使用功能规范进行招标

评估顾问或系统集成商能力的一种方法是确定其可用于指导功能规范编写的文档和标准化水平。

用户应从未来的顾问和系统集成商那里获得详细的建议,以制定所需的功能规范。提案应该定义要做什么,提供如何完成任务的指南,确定将领导开发工作的人员的专业水平,提出基于里程碑的时间表,并建议开发功能规范的大致成本。在评估和选择顾问或系统集成商时,这样一份详细的建议是很重要的。功能规格书完成后,可用于为实施和启动活动寻求投标。顾问或系统集成商制定详细建议的能力和意愿通常表明了开发人员的专业知识和承诺,以确保按时,具有成本效益,高质量的功能规范。

如何开发控制模块对象

开发控制模块对象需要一个具有足够细节的通用定义,以确保清楚地理解控制模块的属性和方法。下面是控制模块属性的部分示例列表:

“模块名”应该描述控制模块及其一些关键属性(即“PUMP 2-1”)。

“模块描述”解释了控制模块如何执行。每个PUMP 2-1控制模块包括两个离散输出和一个离散状态输入。当联锁条件为真时,泵停止并保持停止状态,直到操作员发出启动命令。

“命令&状态词”定义了操作员用来操作控制模块的命令,状态词表示模块的当前状态(即命令词=停止和启动,状态词=停止和运行)。

“模块模板”为控制模块定义了一个标准的I/O通道分配(即,停止命令:离散输出#1 = 1,离散输出#2 = 0,离散状态输入= 0。开始命令:离散输出#1 = 0,离散输出#2 = 1,离散状态输入= 1)。

“模块符号”定义了放置在图形屏幕上表示控制模块的符号。由于许多控制系统制造商在其产品中包含一个图形符号库,因此在实现过程中只指示一个典型符号并选择合适的符号可能是合适的。

“等待时间”定义了从发出命令到应该读取状态输入之间的等待时间,从而防止了麻烦警报。当模块利用传感器(即速度开关)来指示设备状态时,从启动命令到传感器实际指示运行之间可能需要几秒钟的时间。

“模块符号正常颜色”定义了模块停止和运行的颜色(即,stopped =绿色,running =红色)。

“模块符号告警颜色”定义等待时间超过后,当命令与状态不匹配时的图形符号颜色(即闪烁红)。

根据控制模块类型的不同,属性列表也会有所不同。但是,由于正在开发一个可重用的控制模块库,因此在细节上花费时间和精力是值得的。