程序组织单元及其组成编程

简介: 程序组织单元及其组成编程

程序组织单元及其组成

1.程序组织单元概述

IEC 61131-3标准很重要的一个目的就是限制块的多样性,并同时隐含块类型的含义,统一并简化块的用法。IEC 61131-3引入构成程序和项目的块,即程序组织单元(Program Organization Unit,POU)。程序组织单元由程序组织单元的说明部分和程序组织单元的本体两部分组成,它对应于传统PLC编程领域的程序块、组织块、顺序块和功能块。程序组织单元彼此之间能够带有或不带有参数地相互调用,程序组织单元是用户程序中最小的、独立的软件单元。程序组织单元的标准部分,如标准功能、标准功能块等由PLC制造商提供。用户可以根据程序组织单元的定义设计用户的程序组织单元,并对其进行调用和执行。


IEC 61131-3将PLC制造商的块类型的种类减少为3种统一的基本类型,它们分别是Function(FUN功能)、Function Block(FB功能块)和Program(PROG程序),如图所示,

1a62bb406755427282a4699133678176.png


它们的含义如表所示。根据IEC 61131-3标准,程序、功能和功能块都被称为程序组织单元POU。

f3003bcc124b4c4a991fe3e89d673d37.png

在IEC 61131-3中,不允许其他高级语言的子程序调用。这样在对一个POU编程后,其名称及调用接口将为此项目中所有的其他POU所认知,也就是说程序组织单元名称总是全局的。程序组织单元的独立性有利于自动化任务的模块化扩展,以及已实现和已测试的软件单元的重复使用。


2.程序组织单元的组成

程序组织单元由3部分组成,即程序组织单元类型和名称、带有变量声明的声明部分、带有程序组织单元指令的主体,其元素构成如图所示。

图 POU元素构成

1ce26e1f754841648dfb789db7448bb1.png


1)声明部分

定义程序组织单元内所使用的变量,应注意区别程序组织单元接口变量和程序组织单元局部变量。在程序组织单元的代码部分,使用编程语言对逻辑电路或算法进行编程。在IEC 61131-3中,变量用于初始化、处理和存储用户数据。在每个程序组织单元的开始部分必须声明变量,变量赋予的数据类型必须是已知的。对不同的数据类型,程序组织单元变量的声明部分分为不同的段,每个声明部分对应于一种变量类型,并可以包括一种或多种变量。


2)接口部分

程序组织单元接口,以及在程序组织单元中使用的局部数据区是借助于在声明块中将程序组织单元变量赋予变量类型进行定义的。程序组织单元接口分为以下几个部分。

调用接口:形式参数(输入和输入/输出参数)。

返回值:输出参数或功能返回值。

全局接口:带有全局/外部变量和存取路径。

调用接口的变量也称为形式参数。调用一个程序组织单元时,形式参数为实际参数代替,形式参数被赋予实际值或常数。


3)代码部分

程序组织单元的指令或代码部分紧接声明部分,它包含PLC执行的指令。可以利用IEC 61131-3提供的5种编程语言来编写代码,根据程序要完成的不同的功能要求和任务特点,合理利用这些编程语言来编写代码,从而完成适合于不同的控制任务和应用领域的程序编写。


3.几种程序组织单元类型的相互调用

根据IEC 61131-3标准,3种类型的程序组织单元可以相互调用,如图所示,但在调用时要注意以下几点。

(1)程序可调用功能块和功能,但功能和功能块不能调用程序。

(2)功能块和功能块可以互相调用。

(3)功能块可调用功能,但功能不能

调用功能块。

(4)3种类型的程序组织单元不能直接或间接地调用它自身的一个实例。

相关文章
|
2月前
|
算法 测试技术 持续交付
软件开发深度解析:从设计到单元构建
软件开发深度解析:从设计到单元构建
60 2
|
8月前
|
存储 安全 项目管理
CMMI—组织级过程定义(OPD)
CMMI—组织级过程定义(OPD)
60 0
|
9月前
|
索引
第五章 作业(149A)【计算机系统结构】
第五章 作业(149A)【计算机系统结构】
92 0
|
10月前
|
Java
程序三大结构-系统学习一
编程从三大结构考虑问题,这样的思考方式、学习方式也有了更加深刻的认识与理解
|
12月前
|
安全 Java API
了解程序运行逻辑的必要性及应用和硬件的关系
了解程序运行逻辑的必要性及应用和硬件的关系
65 0
西门子S7-1200编程实例,组织块如何使用?
本篇我们通过一个实例来讲解西门子S7-1200的组织块如何使用。下面我们做一个组织块的使用练习,使用循环中断产生一赫兹的时钟信号,在Q0.0输出。先来分析一下,一赫兹的时钟信号周期为一秒,高低电平各持续500毫秒交替出现,因此每隔500毫秒产生中断,在循环中断组织块程序中对Q0.0取反即可。
西门子S7-1200编程实例,组织块如何使用?
|
存储 Java
第一次笔记:计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
第一次笔记:计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
183 0
第一次笔记:计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
|
存储 Java
计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
260 0
计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
|
存储
计算机工作过程典型分析
计算机工作过程典型分析
|
算法 安全 前端开发
程序常用的设计技巧
程序常用的设计技巧
程序常用的设计技巧