西门子PLC学习笔记十四-(用户程序结构及执行)

PLC用户程序的总体结构如下图:

1.组织块(OB):操作系统与用户程序的接口,决定用户程序的结构。

组织块是由操作系统调用的,用于控制扫描循环和中断程序的执行,PLC的启动和错误处理,不同的CPU可以使用的组织块不都一致。

常用OB块和其对应的优先级

上表中的OB1是循环扫描的主程序,其优先级最低。处理OB90不能中断OB1的执行外,其余的OB块均可以。OB100~OB102为启动组织块,分别代表CPU的三种启动方式,即暖启动、热启动、冷启动。OB100为暖启动组织块、OB101为热启动组织块、OB102为冷启动组织块。

2.系统功能块(SFB):集成在CPU模块中,通过SFB调用一些重要的系统功能,有存储区

3.系统功能(SFC):集成在CPU模块中,通过SFC调用一些重要的系统功能,无存储区

4.功能块(FB):用户编写的包含经常使用的功能的子程序,有存储区

5.功能(FC):用户编写的包含经常使用的功能的子程序,无存储区,可为调用它的块提供一个数据类型为RETRUN的返回值

6.背景数据块(DI):调用FB和SFB时用于传递参数的数据块,在编译过程中自动生成数据

7.共享数据块(DB):存储用户数据的数据区域,供所有的块共享

8.系统数据块(SDB):包含系统组态数据,如硬件模块参数和通信连接参数等用于CPU操作系统的数据,由STEP7产生的程序存储区

时间: 2024-08-10 15:06:51

西门子PLC学习笔记十四-(用户程序结构及执行)的相关文章

西门子PLC学习笔记十五-(数据块及数据访问方式)

一.数据块 数据块是在S7 CPU的存储器中定义的,用户可以定义多了数据块,但是CPU对数据块数量及数据总量是有限制的. 数据块与临时数据不同,当逻辑块执行结束或数据块关闭,数据块中的数据是会保留住的. 数据块分共享数据块.背景数据块.用户自定义数据块,下面分别介绍. 1.共享数据块(全局数据块) 其用于存储全局数据,所有逻辑块(OB.FC.FB)都可以访问共享数据块中的数据. 2.背景数据块(私有存储区) 其用做功能块(FB)的"存储器".FB的参数和静态变量安排在它的背景数据块中.

西门子PLC学习笔记十六-(逻辑块的结构)

逻辑块包括:功能(FC).功能块(FB).组织块(OB),它们都是由变量声明表.代码段及其属性等组成. 1.局部变量声明表 每个逻辑块的前面都有一个变量声明表,其称为局部变量声明表. 局部数据包括参数.局部变量. 局部变量包括静态变量.临时变量. 1)功能(FC)变量介绍 FC没有背景数据块,即FC不能使用静态变量,可以使用临时变量.输入.输出.I/O参数以指向实参的指针形式存储在操作系统为参数传递而保留的额外空间中. 2)功能块(FB)变量介绍 FB除了临时变量外,所有参数的存储空间都在背景数

西门子PLC学习笔记十九-(FB编程)

FB块可被OB1调用多次,功能的所有形参和静态数据都存储在一个单独的.被指定给该功能块的数据块(DB)中,该数据块被称为背景数据块.当调用FB时,该背景数据块会自动打开,实际参数的值被存储在背景数据块中:当块退出时,背景数据块中的数据仍然保持. 下面通过案例设计介绍FB如何编写吧. 案例:目前有3个贮水箱,每个水箱有2个液位传感器,UH1.UH2.UH3为高液位传感器,"1" 有效:UL1.UL2.UL3为低液位传感器,"0"有效.Y1.Y2.Y3分别为3个贮水水箱

西门子PLC学习笔记十八-(带参数FC编程二)

本篇仍是对带参数的FC编程的练习,本次实现功能: 一共有4台电机,每台电机都要求Y-△降压启动.启动时,按下启动按钮,M1电机启动,然后每隔10s启动一台,最后M1到M4四台电机全部启动.当按下停止按钮时,M4先停止,过10s后M3在停止,再过10s后M2停止,再过10sM1电机停止.同时任一台电机启动时,控制电源的接触器和Y形接法的接触器接通电源6s后,Y形接触器断开,1s后△接触器动作接通. 本需求程序实现代码如下: 1.符号表 2.功能块编写代码如下 3.主程序编写如下 本程序代码可在此下

西门子PLC学习笔记十-(计数器)

S7-300/400的计数器一般占两个字节,是16位的.CPU最多可以使用64~512个计数器,计数器地址编号为C0~C511 1.S_CUD(加减计数器) 加减计数器波形图: 2.S_CU(加计数器) 3.S_CD(减计数器) 4.三种计数器对应的线圈表示 1)基本线圈指令 2)加计数指令的实现 3)减计数指令实现: 4)加减计数指令实现: 5.计数器应用小例子 下面程序实现的是:当按下按钮3此,输出高电平:当按下7次,输出低电平

西门子PLC学习笔记十八-(带参数FC编程)

带参数FC,指编辑功能时,在局部变量声明表中定义形式参数,在功能(FC)中使用虚拟的符号地址完成程序的编写. 下面将例举简单的示例说明如何编写带参FC功能. 本示例完成一数学公式的编程:Y = ( X + 5 ) * 11 / 5; 程序如下: FC数学公式编写如下(内部定义了输入参数变量:X和输出参数变量Y) 本程序代码可以在此下载.

Swift学习笔记十四:构造(Initialization)

类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值.存储型属性的值不能处于一个未知的状态. 你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值.以下章节将详细介绍这两种方法. 注意: 当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property observers). 一.基本语法 class Human{ var name :String init(){ name = "human" } init(n

laravel3学习笔记(十四)

原作者博客:ieqi.net ==================================================================================================== 运行时配置 在 Laravel3 中很多地方我们都可以看到“约定大于配置”的影子,我本人也很喜欢这种工程哲学尤其是在框架领域,当然这并不能代替所有的配置.我们知道 Laravel3 中,主要配置都写在 application/config 文件夹下,在应用逻辑中,往往

西门子PLC学习笔记三(S7-300信号模块)

本篇为阳胜峰老师第二讲视频学习笔记 1.数字量模块 1)数字量输入模块 数字量输入模块将现场过程送来的数字信号电平转换成S7-300内部信号电平. A.数字量输入模块SM321(需要外接24V电源供电) SM321有四种类型的模块:直流16点输入.直流32点输入.交流16点输入.交流8点输入,其中常用的是直流的输入. 附图: B.数字量输出模块SM322(需要外接24V电源供电) 数字量输出模块SM322将S7-300内部信号电平转换成国产所要求的外表信号电平,可直接用于驱动电磁阀.接触器.小型