OPCUA 学习笔记:程序模型

无论是边缘控制器,还是PLC 中,除了信息模型之外,还有应用程序,这些程序可能是IEC61131-3 编写的程序,也可能是其它程序开发的可执行程序。

尽管OPCUA 描述模型能力很强,但是它缺乏算法的描述方式。但是OPCUA 对程序的状态,控制构建了模型,所以OPC UA 中的Program 并不是程序本身,而是程序的模型。本质上是一个有限自动机构成的。

本博文是学习OPC 10000-10: UA Part 10: Programs的笔记

程序模型(Program)

我们知道,在OPC UA 中,Method 是能够被Client 端调用,服务器端执行的,结果立即返回给客户端。而程序是长期运行复杂的功能,并且具有不同的状态。程序可以是一个过程控制程序,或者是一个机床控制程序。程序受客户端控制(例如启动和停止),中间结果通过事件返回给客户端。为 了控制一个程序,需要知道它的状态(它是否已经在运行、中断等)。因此, 程序信息模型使用状态机信息模型作为程序建模的基础。它定义了称为 ProgramFiniteStateMachineType。它是FiniteStateMachineType 的具体子类型。

(在OPCUA 之前的版本中,ProgramFiniteStateMachineType 称为ProgramType)。

所以说,**Program 不是程序本身,而是程序的模型,使用有限自动机作为模型类型。**它包括四个组成部分。

状态机

程序有限自动机的状态如下表所示:

状态转换图

程序状态

状态转移

程序控制方法

程序执行的结果

规范中包括了FinalResultDataType,它们是一组变量。

程序的实例

程序可以有多个实例,或者只有一个实例,它们并行运行。

域下载类型

该类型定义了程序的下载,包含了TransferStateMachine类型

结束语

OPCUA 信息模型中包含了程序的状态,控制,监控,结果,下载的信息模型,它们并不是可执行程序本身,可执行程序是其它程序设计语言编写的。OPCUA 服务器的API 需要支持程序模型的API。开发的应用程序需要与程序模型互操作,才能实现Program 的机制。

相关推荐
吻等离子3 个月前
【保姆级教程】教你手把手搭建一个OPCDA/UA服务器
服务器·opcua·opcda·kepserver安装
Logintern095 个月前
如何使用asyncua模块在opcua的Server端添加值为列表的变量?
python·opcua·asyncua
姚家湾8 个月前
OPC UA 服务器的Web访问
opcua
姚家湾9 个月前
VUE3 中导入Visio 图形
html5·opcua
姚家湾10 个月前
自动化的自动化(1)--OPCUA2HTML5
html5·opcua
姚家湾1 年前
OPCUA 行业配套标准:机器人
机器人·opcua
姚家湾1 年前
TSN -促进IT/OT 融合的网络技术
opcua·工业4.0·tsn