OPCUA 学习笔记:程序模型

2024-03-08 07:28

本文主要是介绍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 的机制。

这篇关于OPCUA 学习笔记:程序模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/786423

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

java连接opcua的常见问题及解决方法

《java连接opcua的常见问题及解决方法》本文将使用EclipseMilo作为示例库,演示如何在Java中使用匿名、用户名密码以及证书加密三种方式连接到OPCUA服务器,若需要使用其他SDK,原理... 目录一、前言二、准备工作三、匿名方式连接3.1 匿名方式简介3.2 示例代码四、用户名密码方式连接4

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Python程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结