程序

概述

程序是一个 POU 对象,在操作期间返回一个或数个值。程序上次运行的所有值都保留到程序的下一次运行。但跟功能块不一样,这里没有独立的程序实例。在调用功能块时,仅会修改功能块给定实例中的值。修改仅会在同一实例再次被调用时受影响。程序值修改将被保留,直到程序被重新调用,即便是从另一个 POU 来调用。

添加程序

要将程序添加至现有应用程序,可在应用程序树中选择应用程序节点,单击绿色加号按钮,并执行命令 POU...。作为备选方法,可右键单击应用程序节点,并从上下文菜单执行命令添加对象 > POU。要添加独立于应用程序的 POU,可选择应用程序树全局节点,并执行相同命令。

添加 POU 对话框中,选择程序选项,输入程序的名称,并选择所需的实现语言。单击打开进行确认。新程序的编辑器视图将打开,您可开始编辑程序。

声明程序

语法:

PROGRAM <程序名称>

这后面将是输入输出和程序变量的变量声明。访问变量也可作为选项使用。

程序示例

G-SE-0027221.3.gif-high.gif

 

 

调用程序

程序可以由另一个 POU 调用。但是,不允许在功能中进行程序调用。没有程序的实例。

如果 POU 调用了程序并且如果程序的值已被修改,这些修改将一直保留到再次调用程序时。这点甚至在从另一个 POU 中调用它时也适用。注意这不同于调用功能块。在调用功能块时,仅会修改功能块给定实例中的值。修改仅会在同一实例再次被调用时受影响。

为了在程序调用过程中设置输入和/或输出参数,在文本语言编辑器(例如 ST)中,将值分配至程序名称后用括号括起的参数。对于输入参数:为此分配使用 :=,和在声明位置处理变量初始化一样。对于输出参数,使用 =>。请参阅以下示例。

如果通过文本语言编辑器的实现视图中的选项 Insert with arguments 借助输入助手插入程序,则将根据该语法显示该程序及所有参数,尽管您并非必须分配这些参数。

程序调用示例

IL 中的程序:

CAL               PRGexample               (
         in_var:= 33                       )
LD                PRGexample.out_var       
ST                erg

进行了参数分配的示例(通过选项 Insert with arguments 并使用输入助手):

IL 中带参数的程序:

CAL               PRGexample               (
         in_var:= 33                       ,
        out_var=> erg                      )

ST 中的示例

PRGexample(in_var:= 33);
erg := PRGexample.out_var;

进行了参数分配的示例(如之前所述,通过选项 Insert with arguments 并使用输入助手):

PRGexample (in_var:=33, out_var=>erg );

FBD 中的示例

FBD 中的程序

G-SE-0027222.2.gif-high.gif