程序组织单元(Program Organization Unit,POU)由声明区和代码区两部分组成,是用户程序的最小软件单元,它相当于传统编程系统中的块(Block),是全面理解新语言概念的基础。按功能,程序组织单元(POU)可分为函数(FUN)、功能块(FB)和程序(PRG)。
在“POU窗口”中管理的编程对象在整个工程范围内都有效,且可以被工程中所有的“应用”通过任务配置来调用,即实例化。在“设备窗口”中管理的编程对象(即针对特定应用的编程对象),只能被本应用来使用,或被本应用的“子应用”实例化后使用。
程序组织单元的标准部分(如函数、功能块、程序和数据类型等)由德国3S公司或PLC制造商提供,并集成在库文件中。用户也可通过自己的逻辑思想与PLC制造商所提供的程序组织单元自行设计程序组织单元,再对其进行调用和执行。
用户可以在项目中使用右键菜单的命令“添加对象”,选择“程序组织单元”,系统会弹出如图2.48所示的对话框,用户可以选择添加程序,功能块或函数,下拉菜单中可以选择对应的编程语言。添加后,可以在左边的项目设备树中查看程序组织单元括号内对应的属性。
程序组织单元(POU)具有如下特点:
可对每个应用领域设置用户的功能块库,便于工程的应用。如建立运动控制功能块库等;
可对功能块进行测试和记录;
能够提供全局范围内的库存取功能;
可重复使用,次数无限制;
可改变编程,用于建立功能块网络。
2.4.1 程序组织单元结构
一个完整的POU由如下三大部分组成,结构图如2.49所示。
POU类型及命名;
变量声明部分;
代码指令部分(POU主体)。
在图2.49中,从具体功能来看,分别能构成左边的程序(PRG),中间功能块(FB),右边函数(FUN)。从每个功能的结构来看,都可以将其分为声明部分和代码部分。
用户声明的所有变量最终是给程序组织单元所用,变量声明中可声明接口变量和本地变量,通过下面的例子对整个程序组织单元做个初步的讲解。
图2.50中的结构可以用在功能块(FB)或程序(PRG),需要特别注意的是函数(FUN)只有一个返回值,故上述结构不适用于函数(FUN)。VarIn作为输入变量,VarOut1和VarOut2作为输出变量,VarLocal作为本地变量。通过图形化标准语言中调用的效果如图2.51所示,用户可以根据图中的变量类型调用该功能块/程序。
1)声明区
变量声明区是用来指定变量的名称、类型和赋初始值的区域。
变量声明编辑器用来声明POU变量以及声明数据类型。声明部分通常是文本编辑器,也可采用表格编辑器。所有将要在这个POU中的使用的变量则在POU的声明部分中声明,这些变量包括:输入变量、输出变量、输入/输出变量、本地变量、添加的变量和常量。声明格式都是基于IEC 61131-3标准的,变量的声明采用下面的格式:
:{:=}:
{}中的部分是可选部分。
2)代码区
在代码区,CODESYS支持两种文本语言:指令表语言(IL)和结构化文本(ST)。四种图形化语言:功能块图(FBD)、梯形图(LD)、顺序功能图(SFC)以及连续功能图(CFC)。用户可以选择一种或几种语言在主体部分来进行程序设计。编辑器界面如图2.52所示,该图中采用的是梯形图(LD)程序语言。
领取专属 10元无门槛券
私享最新 技术干货