POU

POU 这里是指 程序组织单元 包含程序,函数以及功能块。参照帮助页面 “什么是程序组织单元 "POU"” 程序组织单元中的所有的基本信息都包含在“POU”中,并且是在POU视图中进行管理!如果想了解更多相关信息,可以查看POU的用途,还可以查看全局有效的POU和针对特定设备的POU之间的区别。

选择POU或设备树 (例如一个工程应用中)添加 一个 POU ,使用右键菜单命令 “添加对象” 并从子菜单中选择“POU”。通过 添加 POU 对话框 可以配置POU名称,类型和实现语言。

对于功能块来说可定义EXTENDS和IMPLEMENTS属性,对于函数则必须指定其返回类型。请查看相关帮助页面 “程序”, “函数”, “功能块”.

 插图 2: 添加POU程序实例

通过““添加对象” ”命令,可以添加一个POU,根据POU的类型可以在其中添加相应的方法、属性、动作和转换。

“应用”运行时,会根据在设备的“任务配置”中的设置,以及POU之间的相互调用关系,来调用各POU实例。

每个POU都是由 声明部分和实现 部分组成的。 实现部分由可用的编程语言中的一种编写,例如IL、ST、SFC、FBD、LD、CFC 。

CoDeSys支持IEC 61131-3标准定义的所有POU, 但是您先要在 “工程”中添加标准库 standard.library

POUs调用

POU可以调用其他的POU,但不可以递归调用。

一个 POU 在应用程序中调用另一个POU, 仅仅是通过名字 (没有其他任何的 扩展名 添加),注意以下信息在POU调用过程中时对工程的影响:

1. 当前应用, 2. 当前应用的函数库管理 3. POUs 视图, 4. POUs 视图中的函数库管理。

如果一个POU在应用程序函数管理库中和POU视图中的程序有相同的名字,那么就不能单纯的通过名字去调用POU视图中的POU程序。在这种情况下,必须将应用程序函数管理库中的同名文件移除,只有这样才能通过名字调用应用程序中的POU程序(如果函数库也是必须的,可以考虑对其重命名)。

特别要注意的是: “POUs 的隐式检查 ”