GB/T 33863.10-2021 OPC统一架构 第10部分:程序.pdf

  • GB/T 33863.10-2021  OPC统一架构 第10部分:程序.pdf为pdf格式
  • 文件大小:27.8 M
  • 下载速度:极速
  • 文件评级
  • 更新时间:2022-01-04
  • 发 布 人: 13648167612
  • 文档部分内容预览:
  • GB/T 33863.10-2021  OPC统一架构 第10部分:程序

    为程序定义的标准的基本状态集作为程序有限状态机的一部分。这些状态代表在客户端观察 实例上程序可存在的阶段。该状态是程序的当前状态。所有的程序应支持此基本状态集。程序可 也可不要求客户端动作来导致状查改变。状态的正式定※见奏2。

    用来描述程序的状态集可被扩展。可以对基本状态定义程序子状态,以便为过程提供更多解决方 案,并描述附加转换的原因和影响。标准机构和行业组织可扩展程序有限状态模型,以符合行业模型, 比如,Halted状态可以包含子状态“Aborted”和“Completed”来表示在转换Halted状态之前该功能是 否已经取得成功。又例如,转换状态,诸如“Starting”或“Suspending”,也是运行状态的扩展

    为程序有限状态机定义了标准的状态转换集。这些转换依据初始状态和结果状态来定义到程序当 前状态的有效改变。转换的正式定义见表3

    给水排水标准规范范本4.2.5程序状态转换原因

    4.2.6程序控制方法

    客户端通过调用方法来管理程序。方法通过导致特定的状态转换来影响程序的行为。状态转换指 示程序执行的动作。本部分定义了一组标准程序控制方法。这些方法为客户端提供了足够的手段来运 行一个程序。 表4列出了一组定义的程序控制方法。每种方法都引起从特定状态的转换,并当程序处于那些状 态之一时,应调用该方法。 各个程序可选择地支持程序控制方法的任何子集。如,某些程序可能不会允许暂停,所以其不提供

    Suspend和Resume方法。 程序支持其他的用户定义方法。用户定义方法不应改变基本有限程序状态机的行为

    程序控制方法包括被该程序使用的变元(argument)。如,一个Start方法可能包含某个选项变元, 该变元规定用来决定一些程序行为的动态选项。每个程序类型的变元可以是不同的。 GB/T33863.4一2017中5.11规定的方法Call服务定义了返回状态。这种返回状态表明了程序控制方 法的成功或失败原因

    4.2.7程序状态转换影响

    程序的状态转换通常不仅具有某个原因,也产生某个影响。这种影响是程序状态转换的产物,可被 客户端用来监控该程序的进展。影响可以是内部或外部的。状态转换的外部影响是事件通知的生成。 每个程序状态转换与惟一的事件相关联。这些事件通过其一组定义的状态,来反映程序的进程和轨迹, 状态转换的内部影响可以是一些程序动作的执行.如数据的生成

    4.2.8程序结果数据

    结果数据通过运行程序产生。结果数据可以是中间的或最终的。结果数据可能与特殊的程序状 换相关

    4.2.8.2中间结果数据

    中间结果数据是暂时的,并由该程序结合非终点状态转换一起来生成。结合特定程序状态转换来 定义构成中间结果的数据项。它们的值只与转换相关。 每个程序状态转换都与不同的结果数据项有关。此外,一组状态转换可以共享某个结果数据项。 完成百分比是中间数据结果的示例。当状态转换发生且对客户端可用时,生成完成百分比的值。 客户端通过订阅程序状态转换事件获得中间结果数据。事件对每个状态转换指定数据项。当状态 转换发生时,生成的事件将所捕获的结果数据值传递给订阅的客户端。如果没有客户端正在监控该程 序,则该中间结果数据可丢弃

    4.2.8.3最终结果数据

    最终结果数据是当程序终止运行时产生的最终数据。最终结果的示例是总执行时间、产生的小部 件(widgets)数量和出现的故障条件。当程序进入最终状态时,这个结果数据能通过转换事件传递给客 户端。在程序停止后,最终结果数据在程序内也可以由客户端来读取。这种数据一直保持到程序实例 再运行或删除为止

    4.2.8.4监视程序

    客户端监视与程序执行相关的活动。这些活动包括管理方法的调用、结果数据的产生和程序经历 其状态的进展。为方法调用和状态转换提供审计事件。这些事件允许由与任何程序交互的客户端来维 护的记录以及由该交互导致的程序状态转换

    4.2.9程序生命周期

    程序可以有不同的生命周期。有些程序可能始终存在于服务器上,而其他的程序被创建和删除。 创建和删除可由客户端控制或受限于本地手段。 一个程序可以被客户端创建。着程序通过客户端创建,那么客户端可把程序添加到服务器。在 GB/T33863.3一2017的5.5.4中定义的对象创建方法用于创建程序实例。程序的初始状态可以是 Halted或Ready。例如,某些程序要求资源在创建后且运行前即可用。在这种情况下,程序初始化为 Halted状态,当资源已被分配时,转换到Ready状态。 一个程序可被客户端删除。若程序是通过客户端删除,那么客户端可从服务器中删除程序实例。 GB/T33863.4一2017中5.7定义的节点删除服务用于移除程序实例。程序应在Halted状态时被删 除。一个程序也可自动删除。当执行终止时,一个可自动删除的程序会删除它自己

    4.2.9.2程序实例

    程序可是多个实例的或单一实例的。如果这些程序实例可以并行运行,则服务器就可以支持程序 的多个实例。例如,程序可以定义Start方法,该方法有一个输人变元,用于规定其功能对哪个资源起 作用。然后,每个程序实例开始指定使用不同的资源。客户端可以发现在服务器上运行的所有程序的 实例。每个程序实例在服务器上都被惟一标识并由客户端独立管理

    4.2.9.3程序循环利用

    程序可运行一次或多次(循环利用)。运行一次的程序一且已经运行,就会无限期地保持在Halted 状态。通常的做法是在检测到其最终结果后删除程序。 可循环利用的程序可以具有有限或无限的循环计数。这些程序从Halted到Ready状态可能需要 重置步骤来转换。这允许在重新起动该程序之前补充资源或初始化参数。程序控制方法“Reset”触发 状态转换和任何相关的动作或影响

    5.2程序类型(ProgramType)

    图4程序类型(ProgramType)

    在表5中列出了组成程序类型的附加特性和组件。对基本对象类型或有限状态机类型属性或特 有分配程序类型的特定语义

    5.2.2程序类型特性

    Creatable特性是一个布尔值,用于规定此程序类型的程序调用是否由客户端来创建。如果该特性 为FALSE,则这些程序调用是持久的或只能由服务器来创建。 Deletable特性是一个布尔值,用于规定此程序类型的程序调用是否由客户端来删除。如果该特性 为FALSE,则这些调用程序只能由服务器来删除。 AutoDelete特性是一个布尔值,用于规定在执行终止时,此程序类型的程序调用是否由客户端来 删除。如果该特性为FALSE,这些调用程序保存在服务器上,直到它们被客户端删除为止。当调用程 序被删除,任何与实例相关联的结果数据也会被删除, RecycleCount特性是一个无符号整数,用于规定此类型的程序调用已被循环利用的次数或从其起 点(非重新恢复点)已被重新启动的次数。 注:可能需要复位方法来准备重新启动的程序。 MaxRecycleCount特性是一个整数,用于规定此类型的程序调用可以被循环利用的最大次数或从 其起点(非重新恢复点)重新启动的最大次数。如果该值小于0,重启的次数没有限制;如果该值为0,程 序不可能被循环利用或重新启动。 去十 准

    InstanceCount特性是一个无符号整数,用于规定当前存在的该类型的程序调用数。 MaxInstanceCount特性是一个整数,用于规定在服务器上可以同时存在的该类型程序调用的最大 数。如果该值小于0.则没有限制

    .2.3程序类型组件(ProgramTypeComponents)

    程序类型组件由一组对共同定义该程序有限状态机(FSM)的StateTypes、TransitionTypes、Event Types和Methods的对象实例的引用组成。 图5示出了定义两种程序类型状态:Ready和Running之间关系的组件引用。为简化说明,已省略 补充的引用类型

    5.2.3.2程序类型状态

    Halted状态是程序的空闲状态。它可以是初始状态或最终状态。作为初始状态,由于服务器的条 件限制,程序调用还不能启动执行。作为最终状态,Halted状态可以表示失败程序或完成的程序。下 状态或结果可用来区分终止的性质。Halted状态引用四种转换对象,它们标识从Halted到Ready 以及从Ready、Running、Suspended到Halted所允许的状态转换。 Ready状态表示程序准备开始执行。准备开始的程序依据其创造可以立即转换到Ready状态。 Ready状态引用四种转换对象,它们标识从Ready到Running和Halted以及从Halted、Running到 Ready所允许的状态转换。 Running状态表示程序正在主动执行它的功能。Running状态引用五种转换类型,它们标识从 Running到Running和Halted、Ready和Suspended以及从Ready和Suspended到Running所允许的 状态转换。 Suspended状态表示程序已终止执行其功能,但保留了在执行暂停点恢复其功能的能力。 Suspended状态引用四种转换对象,它们标识从Suspended到Ready、Running和Halted以及从 Running到Suspended所允许的状态转换

    5.2.3.3程序类型转换

    HaltedToReady转换规定了从Halted到Ready的状态转换。它可能由Reset方法引起。 ReadyToRunning转换规定了从Ready到Running的状态转换。它由Start方法引起。 RunningToHalted转换规定了从Running到Halted的状态转换。它由Halt方法引起。 RunningToReady转换规定了从Running到Ready的状态转换。 RunningToSuspended转换规定了从Running到Suspended的状态转换。它由Suspend方法 引起。 SuspendedToRunning转换规定了从Suspended到Running的状态转换。它由Resume方法引起 SuspendedToHalted转换规定了从Suspended到Halted的状态转换。它由Halt方法引起。

    5.2.4程序类型原因(方法)

    程序类型包括特定程序状态转换原因的引用。这些原因涉及方法实例。不支持程序控制方法的程 字,从程序类型引用中省略了到方法的原因引用。如果一个方法的原因引用被从程序类型省略,那么客 户端不能导致关联的状态转换。程序类型引用的方法实例标识调用该程序类型的程序调用(Program nvocations)的方法所需的InputArguments和OutputArguments。表8列出了定义为程序类型原因 的方法。图6示出了将组件、方法的特性和事件与程序转换关联起来的引用

    态转换。 Reset方法引起HaltedToReady程序转换

    5.2.4.2标准属性

    图6程序类型原因和效果

    可执行的方法属性指示某个方法当前是否可执行。对于程序控制方法来说,这就意味着拥有的 具有一个支持该方法所引起的转换的CurrentState

    5.2.4.3标准特性

    5.2.4.3.1概述

    方法可以引用一组InputArguments。对于每种程序类型,可定义一组InputArguments用于所支 持的程序控制方法。这些变元中传输的数据补充该程序执行其功能所需要信息。对于该程序类型的每 个程序调用,所有程序控制方法的调用应传递指定的变元。 方法可以引用一组OutputArguments。对于每种程序类型,可定义一组OutputArguments用于所 支持的程序控制方法。对于该程序类型的每个程序调用,所有程序控制方法的调用应传递指定的变元。

    5.2.5程序类型影响(事件)

    件或拥有(owning)对象的EventNotifier,或服务器对象可能提供该通知。 ProgramTransitionEventTypes在每个已定义的程序状态转换中为订阅的客户端传送结果数据和 证实状态转换提供手段。AuditProgramTransitionEventType允许对程序状态的改变结合客户端方法 调用一起进行审计。

    5.2.5.2ProgramTransitionEventType

    ProgramTransitionEventType是TransitionEventType的子类型。它被程序用于获取中间或最终 结果或其他转换状态相关联的数据。对于任何转换,程序可以有惟一的ProgramTransitionEventType 定义。每个ProgramTransitionEventType针对该程序类型的指定状态转换规定IntermediateResult数 据。每个转换可产生不同的中间结果数据。表9规定了ProgramTransitionEventType的定义。 表1o标识了为程序类型规定的ProgramTransitionEventType。

    表9ProgramTransitionEventType

    TransitionNumber标识触发事件的程序转换。 FromStateNumber标识程序转换前的状态。 ToStateNumber标识程序转换后的状态。 IntermediateResult是一个聚合了一组变量的对象,这些变量的值与相关转换瞬时的程序有关。对 于IntermediateResult的对象类型使用一组HasComponent引用来规定变量收集

    TransitionNumber标识触发事件的程序转换 FromStateNumber标识程序转换前的状态。 ToStateNumber标识程序转换后的状态。 IntermediateResult是一个聚合了一组变量的

    5.2.6AuditProgramTransitionEventType

    表11AuditProgramTransitionEventType

    5.2.7最终结果数据

    个HasComponent,HasComponent用于每个变量含有FinalResultData的变量类型。

    5.2.8程序诊断类型

    程序诊断类型提供可用于帮助诊断程序同题的信息。这种对象包含记录程序调用活动的变量集。 表12规定了组成程序诊断类型的变量

    CreateSessionId包含发出对创建方法的调用以创建程序调用的会话的Sessionld。 CreateClientName是创建调用程序的会话客户端的名称。 InvocationCreationTime标识程序调用被创建的时间。 LastTransitionTime标识最后程序转换状态出现的时间。 LastMethodCall标识在程序调用上所调用的最后的程序方法。 LastMethodSessionld包含发出对程序调用的最后程序控制方法调用的会话的Sessionld。 LastMethodClientName是完成对程序调用的最后方法调用的会话客户端的名称。 LastMethodInputArguments保留在最后程序方法调用时输人变元的值。 LastMethodOutputArguments保留在最后程序方法调用时输出变元的值 LastMethodCallTime标识对程序调用的最后方法调用的时间。 LastMethodReturnStatus为此程序调用所要求的最后程序控制方法保留返回状态(ReturnStatus)值

    这个案例阐明了使用一个OPCUA程序来管理域下载到控制系统,如图A.1所示。下载要求将 操作数据从辅助存储设备分段传输到控制系统的本地存储器中

    该域下载有一个源地址和一个目标地址,它们在下载开始时被标识。每次成功传输该域的一个 分段,客户端被通知并且通知已被下载的数据量。当下载完成的时候,客户端也会被通知。当继续下载 时,会定期报告接收的总数据的百分比。如果下载失败,则需要报告失败原因。当下载完成时,性能信 息被保存在OPCUA服务器中,

    建设工程标准规范范本OPCUA客户端使用“域下载”程序去管理和监控OPCUA服务器上的域下载

    在图A.2中说明了域下载程序的基本状态模型。这个程序有三个主要状态:Ready、Running、 Halted,这三个状态与某个程序类型的标准状态是一致的。另外,域下载类型通过给程序的Running 和Halted状态定义从属的状态机来扩展OPCUA程序类型。该从属状态更详细地描述了下载的操 作,并允许OPCUA客户端以更好的解决方案来监控该下载活动

    每次下载被执行时,由客户端创建一个域下载程序的实例(程序调用)。该实例会一直存在直到客 户端明确地删除为止。该程序的初始状态为Ready,而最终状态为Halted。该域下载可以暂时停止,然 后恢复或中止。一旦停止了,该程序可能无法重新启动。

    图A.2域下载状态图

    状态转换的顺序如图A.2所示。一且启动下载,程序状态进入Opening状态。在打开数据源后, 在Sending状态下发生一系列传输。当传输结束时,对象被关闭在Closing状态中。如果在所有数据被 下载完之前传输终止或者遇到一个错误,则下载被停止,并且程序会转换到Aborted状态;否则,程序停 止在Completed状态。表A.1中列出了状态与状态转换

    在表A.1中指定了为域下载程序规定的有效状态转换。每一个转换定义了转换的起始和结束状 态并且每一个转换由惟一的编号标识。其中五个转换来自基本程序类型,并保留为程序指定的转换标 识符编号。附加的转换在基本程序状态与为域下载定义的从属状态之间建立了联系。这些状态已经被 分配了惟一的转换标识符编号,以区别于基础程序转换标识符。在转换发生在子状态与程序基本状态 之间的情况下,指定了两种转换。一种转换标识了基本状态改变城市道路标准规范范本,另一种标识了子状态的改变。例如, ReadytoRunning和ReadytoOpening同时发生。 该表也指定了定义的状态,转换的原因以及每一个转换的影响。OPCUA客户端使用程序控制方 去来“运行”域下载。该方法引起或者触发指定的转换。转换影响是指定的事件类型,它通知程序活动 的客户端

    ....
  • 相关专题: 程序  

相关下载

常用软件