「呆萌小跟班」PLC程序结构( 二 )


可以用全局变量来保存那些在功能执行结束后需要保存的数据 , 但是会影响到功能的可移植性 。
功能块是用户编写的有自己专用的存储区(即背景数据块)的程序块 , 功能块的输入、输出参数和静态变量存放在指定的背景数据块中 , 临时变量存储在局部数据堆栈中 。 每次调用功能块时 , 都要指定一个背景数据块 。 功能块执行完后 , 背景数据块中的数据不会丢失 , 但是不会保存局部数据堆栈中的数据 。
功能块采用了类似于C++的封装的概念 , 将程序和数据封装在一起 , 具有很好的可移植性 。
S7-300/400的共享数据块可供所有的逻辑块使用 。
4.IEC61131-3的程序结构
IEC61131-3是PLC的编程语言标准 。 IEC61131-3是世界上第一个 , 也是至今为止唯一的工业控制领域的编程语言标准 。 IEC61131-3有三种POU:程序、功能块和功能 。
功能是有多个输入参数和一个输出参数(返回值)的POU , 返回值的名称与功能的名称相同 , 需要定义返回值的数据类型 。 调用具有相同输入值的功能总是返回相同的结果 。 功能可以调用其他功能 , 但是不能调用功能块或程序 。 功能可定义的局部变量有VAR和VAR_INPUT 。
功能块是有多个输入/输出参数和内部存储单元的POU , 功能块的输出参数值与其内部存储单元的值有关 。 功能块可以调用其他功能块或功能 , 但是不能调用程序 。 在调用功能块之前 , 必须在要调用功能块的POU中为每次调用声明功能块的实例 , 操作系统将为每次调用分配功能块专用的存储区