如何做好基于状态的控制

在本系列以前的博客中, we discussed what state-based control is and how it works; its advantages and disadvantages; and how it all fits in the hierarchy of automation. 本系列的第四篇也是最后一篇博客讨论了用于实现基于状态的控制的方法和方法.

在当今竞争激烈的环境下, 每个人都想要更快, Cheaper, 和更好的, 这可以看作是约束条件:

  • Time
  • Cost
  • Quality

通常, 在一个项目中做到这三点是不可能的, 但是,我们可以在不同的阶段战略性地关注每一个领域,以实现这三个目标. 同样的道理, 高效和有效的基于状态的控制(SBC)工作流程有三个关键要素:

  • 敏捷方法
  • 面向对象编程
  • 迭代测试

敏捷编程方法

敏捷方法 uses a set of principles or value comparisons as a guide to help speed us through; thus, 重点是更快. 敏捷宣言如下:

个体和相互作用 流程和工具
工作软件 Over 全面的文档
应对变化 遵循计划
客户协作 合同谈判

虽然列在右边的物品有价值,但列在左边的物品更有价值. 每一种都有时间上的结果.

个人和交互优先于过程和工具

当项目限于详细的过程或使用特定的工具和方法生成所有工作时, 我们发现80/20法则在起作用——80%的工作需要20%的时间, 而另外20%的工作却要花费80%的时间. 为了更好地处理这20%的工作, 我们可以通过团队互动让个人拥有决策权.

工作软件胜过全面的文档

SBC项目经常在文档中陷入困境. 虽然我们想要准确和完整,但我们需要了解如何做到这一点. 随着战略发展的细节越来越多, 我们就越会发现自己在走兔子的路. 这是人性. 我们用图画来思考. 如果我说“狗”,你不会想到D-O-G,你脑海中会出现狗的形象. If I say, “敏捷的棕色狗,图像变得更加清晰, 但那是因为一张图片胜过千言万语. 所以,我们必须更多地关注工作软件,看看这个程序是怎么做的.

对变化做出反应,而不是遵循计划

现在我们看到了一般的概念,让我们应用80/20规则. 因为变化发生了, plans change; thus, 我们可以看到,不断地修改计划是如何消耗时间的,而拥有一组护栏是如何节省时间的.

客户协作优先于合同谈判

由于SBC项目的复杂性,对它们进行评估是具有挑战性的. 在合同中详细说明所有细节是很费时间的. 通过合作和设定界限,我们可以应用80/20法则.

在这样做的过程中,我们受益于三个限制中的第一个,即时间.

面向对象编程

SBC适合面向对象编程. 基本智能被内置到模板(库对象)中,然后通过为每个特定用途实例化这些对象来加以利用. Thus, 每个设备都具有来自其库对象的基本智能和来自其连接逻辑的特定智能.

例如,可以从模板库中调用模拟输入对象来构建关卡对象. 该模板将包含允许各种级别的警报(高级别)的配置, low, 高了, low-low), 以及仪器故障和停机计算. 通过这种方式,可以配置模板对象以匹配它们所表示的字段设备. 一个标准对象可以实例化(通过以每个特定设备命名来重用), 如LT-10101)重复.

然后,每个单元都成为智能对象的集合, 每个都包含自己的信息和说明.

在这个例子中,我们还有一个带有step对象的SFC(步骤图). 步骤中的信息可用于操作单元中的其他对象,来自其他对象的信息可用于转换步骤.

代码可能看起来像这样:

Step.加热IF RxLt.meas > RxLt.AlmL_Sptp AND步骤.fill
MixerDO.cmd IF.混合而不是RxLT.almLL

步骤转换对象从Level对象获取信息, 即其测量值和低报警设定值. 这告诉进程从填充步骤移动到加热步骤. 一旦过程达到温度,它从加热到混合. 混合器看到步进移动并且反应器低-低电平报警未打开并自行打开.

面向对象编程:

  • 模块化代码,使其可重用
  • 允许使用模板和库
  • 允许智能内置到设备、设备和单元中

这些属性有利于我们的第二个约束,即成本.

迭代测试

迭代测试使用分层循环概念. 分层检测,使产品具有独立的保护层,提高产品质量. 这需要模拟. 具有动态响应的中等保真度仿真,例如基于设备动作的仿真反馈信号和过程值就足够了. 例如, 计算水箱的液位, 你累积流入和流出之间的差异, 每个流量取决于控制它的阀门的位置.

测试的第一层是初始调试,程序员通过步骤(状态)来修复任何编程问题. 下一层测试是与生产代表一起进行,以确定需要进行哪些更改以适应工厂的需求. 前两层中的每一层都可能需要几个周期才能完成. 最后一层是细化程序的操作.

可以而且应该在启动期间进行额外的修改, 正如我们经常发现的那样,我们认为我们想要它做的和我们实际想要它做的并不总是一样的. 这种迭代或多层循环的测试方法允许:

  • 需要修复的bug
  • 意图有待澄清
  • 程序的完善

这些属性有利于我们的最后一个约束,质量.

竞争优势

以国家为基础的控制项目很快就能收回成本, 通过更好的资产利用率和改进的质量和安全性,为您提供竞争优势. 使用敏捷方法的三阶段方法, 面向对象编程和迭代测试可以使一个惊人的项目按时完成, 物美价廉.