自动控制网移动版

自动控制网 > 自动化 > PLC >

几种典型的PLC程序结构(2)

  可以用全局变量来保存那些在功能执行结束后需要保存的数据,但是会影响到功能的可移植性。

  功能块是用户编写的有自己专用的存储区(即背景数据块)的程序块,功能块的输入、输出参数和静态变量存放在指定的背景数据块中,临时变量存储在局部数据堆栈中。每次调用功能块时,都要指定一个背景数据块。功能块执行完后,背景数据块中的数据不会丢失,但是不会保存局部数据堆栈中的数据。

  功能块采用了类似于C++的封装的概念,将程序和数据封装在一起,具有很好的可移植性。

  S7-300/400的共享数据块可供所有的逻辑块使用。

  4.IEC61131-3的程序结构

  IEC61131-3是PLC的编程语言标准。IEC61131-3是世界上第一个,也是至今为止唯一的工业控制领域的编程语言标准。IEC

  61131-3有三种POU:程序、功能块和功能。

  功能是有多个输入参数和一个输出参数(返回值)的POU,返回值的名称与功能的名称相同,需要定义返回值的数据类型。调用具

  有相同输入值的功能总是返回相同的结果。功能可以调用其他功能,但是不能调用功能块或程序。功能可定义的局部变量有VAR和VAR_INPUT。

  功能块是有多个输入/输出参数和内部存储单元的POU,功能块的输出参数值与其内部存储单元的值有关。功能块可以调用其他功能

  块或功能,但是不能调用程序。

  在调用功能块之前,必须在要调用功能块的POU中为每次调用声明功能块的实例,操作系统将为每次调用分配功能块专用的存储区

  (类似于S7-300/400的背景数据块)。

  功能因为没有内部存储区,调用时不需要实例化。

  程序的行为和用途类似于功能块,程序具有输入和输出参数,而且可以具有内部存储区。程序通常包含有对功能和功能块的调用。

  IEC61131-3定义了若干标准的功能和功能块。

  5.S7-300/400与IEC61131-3程序结构的区别

  1)S7-300/400的功能可以有多个输出参数,返回值也属于输出参数。IEC61131-3的功能只有一个返回值。

  2)IEC61131-3的功能块用于保存局部变量的专用存储区是在声明功能块的实例时分配的,它对用户是不透明的,其他POU不能直接访问该存储区。

  S7-300/400的功能块的局部变量(不包括临时变量)保存在它的背景数据块中。其他POU可以访问背景数据块中的变量。如果需要多次调用同一个功能块来控制同一类型的被控对象,每次调用都需要指定一个背景数据块,但是这些背景数据块中的变量又很少,这样在项目中就出现了大量的背景数据块。可以使用多重背景数据块来减少背景数据块的数量。但是需要增加一个用来管理多重背景的功能块。

  3)S7-300/400的功能块的局部变量有临时变量和静态变量,IEC61131-3的功能块的内部变量Var相当于S7-300/400的静态变量。

  4)S7-300/400将数据区划分为数据块来使用,数据块的大小与数据块中定义的变量的数据类型和变量的个数有关。IEC61131-3没有数据块的概念。

本文已影响
最近关注
0基础免费学PLC,扫描观看

扫描上方二维码免费观看PLC视频课程