玖叶教程网

前端编程开发入门

基于CODESYS打造树莓派工业控制器(3)——理解程序组织单元(POU)

CODESYS提供符合IEC61131-3标准的编程开发环境。IEC 61131-3是PLC编程开发的国际标准,这个标准将程序的基本单位称为程序组织单元( Program Organisation Unit,POU),并定义了三种程序组织单元:函数(FC)、函数块(FB)和程序(PROG)。今天这篇文章,我们就来详细介绍下程序组织单元。

IEC 61131-3定义了三种程序组织单元,分别是:

  • 函数(FC):可以有输入/输出参数,但是没有静态变量。使用相同的参数调用函数时,总会产生相同的输出结果。另外,定义函数时,必须指定返回值类型;
  • 函数块(FB):也被称为“功能块”,可以有输入/输出参数,并且可以有静态变量。使用相同的参数调用函数块时,由于静态变量的保持性,可能产生不同的输出结果;
  • 程序(Prog):类似于C语言的Main函数。程序内部调用函数或函数块,外部被任务(Task)调用而执行;

在CODESYS开发环境中,右键单击【应用(Application)】,选择【添加对象】-【POU】,会弹出【添加POU】的界面,如下图所示:

每个程序组织单元都包括:名称、变量声明区和代码区三部分。比如下图的motorControl函数块(FB):

1、POU的名称

名称是程序组织单元的唯一标识,在同一个应用中不能有重名的情况。POU的名称不区分大小写;如果是函数,还需要定义返回值的类型;

2、POU的变量声明

变量声明区用来声明该POU使用的变量。变量的声明以VAR_*开始(*代表不同的类型),以END_VAR结束。IEC 61131-3定义的变量声明类型包括:

  • VAR:本地局部变量;
  • VAR_INPUT:输入变量;
  • VAR_OUTPUT:输出变量;
  • VAR_IN_OUT:输入/输出变量;
  • VAR_EXTERNAL:外部变量,即导入当前POU中的全局变量;
  • VAR_GLOBAL:全局变量;
  • VAR_TEMP:临时变量;

CODESYS开发环境还对IEC 61131-3标准进行了扩展,包括如下几种:

  • VAR_STAT:静态变量;
  • VAR RETAIN:保持变量;
  • VAR PERSISTENT:持久变量;

三种程序组织单元对不同变量声明的支持如下表所示:

类型

程序(Prog)

函数块(FB)

函数(FC)

VAR

支持

支持

支持

VAR_INPUT

支持

支持

支持

VAR_OUTPUT

支持

支持

支持

VAR_IN_OUT

支持

支持

支持

VAR_EXTERNAL

支持

支持

不支持

VAR_GLOBAL

支持

不支持

不支持

VAR_TEMP

支持

支持

不支持

VAR_STAT

支持

支持

不支持

VAR RETAIN

支持

支持

不支持

VAR PERSISTENT

支持

支持

不支持

3、POU的代码区

程序组织单元的代码区用来编写代码。IEC61131-3推荐五种编程语言:梯形图(LADD)、功能块图(FBD)、顺序功能图(SFC)、指令表(IL)和结构化文本(ST)。CODESYS支持这五种语言,另外还支持连续功能图(CFC)。

好了,关于程序组织单元就先介绍到这里。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言