FTPC 状态机(Flexible State Models)

       在离散制造应用中,状态模型由系统定义。您不能添加新状态或删除现有状态,并且更改对象状态的事务是固定的。在流程制造模型中,默认情况下不定义状态。您可以创建自己的状态模型,并使用(FSM)对象在每个状态下选择允许哪些事务。FSM对象允许您在流程制造环境中创建状态转换功能,该功能可以应用于Plant Operations中的特定类。这些类称为有状态类(Stateful Classes)。

注意:当对FSM对象进行更改时,更改不会立即生效。默认情况下,FSM对象每30分钟缓存一次。对象缓存的确切时间取决于应用程序服务器。如果使用集群环境,则只刷新接收FlexibleStateModel.save()事务的应用服务器。要刷新集群中的所有应用程序服务器,必须重新启动集群。

FSM对象

       当创建FSM对象时,需要配置以下内容:

  • FSM States:定义有状态对象的状态,并确定在特定状态下可以调用哪些事务。每个FSM必须配置一个默认状态。
  • FSM Transitions:定义将对象移动到下一个状态时调用的更改的名称。当您调用applyTransition(…)方法时,它将需要转换的名称。在该转换处的转换实例的配置将确定对象的路径。
  • FSM Transitions Instances:为特定转换指定从一个状态到另一个状态的路径。如果在FSM状态下对对象调用FSM转换,则FSM转换实例将确定在执行FSM转换之后的下一个状态。
  • State Transition Attributes(STAs):为FSM创建附加属性。与已命名的UDAs类似,定义STAs允许您在调用applyTransition(…)事务时为ObjectStateHistory记录收集额外的运行时数据。
  • Semantic Properties:定义可以在FSM状态和转换实例上执行的事务。
  • Semantic Property Sets:将语义属性列表组合在一起。语义属性集被分配给FSM对象。

有状态的对象(Stateful Objects)/ FSM关系

       您可以使用FSM选项卡接口将有状态类与特定的FSMs关联起来。关系用于确定特定有状态对象可以使用哪些FSMs。有状态对象类可以有多个与之关联的FSMs。例如,您可以配置一个设备对象,使其在创建后处于两个FSMs的默认状态。

注意:如果一个对象位于多个FSM上,则必须允许在该对象上执行的事务处于该对象位于所有FSM上的状态。例如,您的运营商在两个FSMs (FSM1和FSM2)上处于以下状态:正常和活动。FSM1上的State Normal有sys.allow.carrier。保存分配给它的语义属性,但是FSM2上的state Active没有分配给它的语义属性。当您调用Carrier.save()事务时,事务将失败。sys.allow.carrier.save语义属性必须分配给FSM2上的活动状态,以便事务成功。

FSM工作原理

       通过创建您自己的FSM,您可以定义所需状态(State)数量、这些状态的名称,以及状态之间的转换(Transtion),以便为特定的部署做出适当的调整。FSM的流程是通过配置语义属性来实现的。

下面的示例图像是用于清洁设备的FSM,它有两种状态,Cleaned、Dirty。

  • Cleaned状态是默认状态(由*表示)。当一个对象被放置在这个FSM上时(通过设备/FSM关系自动放置或手动放置),它将在缺省情况下处于Cleaned状态。
  • 可以将设备对象保存在Cleaned状态,因为语义属性sys.allow.Equipment.save与该状态相关联。如果对象处于Dirty状态,则不能执行此操作,因为语义属性与该状态没有关联。
  • 可以使用applyTransition(…)方法来更改对象的状态。
  1. 如果对象处于Cleaned状态,则要应用的惟一有效转换是dirty转换(Transtion)。
  2. 如果对象处于Cleaned状态,则可以应用clean转换,但不会对对象进行更改,默认情况下也不会显示错误。可以编写应用程序代码来显示错误。
  3. 应用此转换时,将评估和处理转换实例的语义属性和传播定义。转换实例的语义属性的一个示例是检查已登录用户是否具有将对象移动到下一个状态的正确访问权限的属性。客户机应用程序可以使用在转换实例中定义的语义属性来执行访问特权。

       每个状态转换都作为一组历史记录来维护,记录对象通过FSM状态的进展。此信息存储在OBJECT_STATE_HISTORY数据库表中。

FSM本地化

       您可以使用分配给FSM对象的Message Pack来本地化FSM状态和转换的名称。与FSMs关联的语义属性名称以及关系名称和类型不支持本地化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章