OPCUA 学习笔记-程序模型

2024-03-07 20:44

本文主要是介绍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/784770

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac