今天我们来了解一下S7-1200 PLC的程序结构。其实S7-1200 PLC跟S7-200 /200 smart PLC的程序结构是不一样的,它是延续了S7-300/400 PLC的程序结构,分为OB块(组织块),FB块(函数块),FC块(函数)以及数据块(DB)。
下面会分别介绍一下这些程序块的功能和特点。
组织块OB
什么是组织块?组织块是操作系统和用户程序之间的接口。
OB 用于执行具体的程序:
1、在 CPU 启动时;
2、在一个循环或延时时间到达时;
3、当发生硬件中断时;
4、当发生故障时;
5、组织块根据其优先级执行。
因此,组织块的基本功能是调用用户程序,同时还可以执行自动化系统的启动、循环程序的处理、中断程序的执行以及错误的处理等功能。
不同类型的组织块完成不同的功能,组织块OB的类型主要有以下几种。
通过上图,我们可以看到 OB 组织块分为三个优先组,高优先组中的组织块可中断低优先组中的组织块;如果同一个优先组中的组织块同时触发将按其优先级由高到低进行排队依次执行;如果同一个优先级的组织块同时触发时,将按块的编号由小到大依次执行。
数据块DB
什么是数据块DB?数据块用于存储程序数据,分为全局数据块和背景数据块。数据块就相当于其他的变量地址,访问方式分为直接和间接寻址方式。在创建db块时,如果需要可以插入建好的。对于背景数据块,它与函数块相关联,存储FB的输入、输出、输入/输出、静态变量的参数,其变量只能在FB中定义,不能在背景数据块中直接创建,程序中调用FB时,可以分配一个创建的背景DB,也可以直接定义一个新的DB块,该DB块将自动生成并作为这个FB的背景数据块。
数据块的访问:
符号访问:<DB块名>.<变量名>;例如:Data_Block_1.Var1;
绝对地址访问:<DB块号>.<变量长度及偏移量>:DB1.DBX0.0;DB1.DBB0;DB1.DBW0;DB1.DBD0。
注意:复杂数据类型只能符号寻址。
函数FC
什么是函数?函数FC是用户编写的没有固定的存储区的块,其临时变量存储在局部数据堆栈中,FC执行结束后,这些数据就丢失。函数FC常用于对一组输入值执行特定运算,例如:可使用 FC 执行标准运算和可重复使用的运算(例如数学计算)或者执行工艺功能(如使用位逻辑运算执行独立的控制)。函数FC也可以在程序中的不同位置多次调用,简化了对经常重复发生的任务的编程。
函数FC在使用时可以选择不带参数的FC和带参数的FC,若需要使用带参数的FC,那么在打开FC后,需要在FC的接口定义相关的接口参数,调用函数FC时需要给FC的所有形参分配实参。接口区的各个参数含义如下图。
点击查看大图
函数块FB
什么是函数块?函数块FB是用户编写的带有自己的存储区的块。函数块FB在使用时可以使用带参数的FB和不带参数的FB。带参数的FB和带参数的FC的区别在于,带参数的FC调用后需要赋予实参后才可运行,而带参数的FB可以不赋予实参,也可以运行。FB的接口区的各个参数含义如下图:
点击查看大图
FB与FC相比,每次调用函数块都必须为之分配背景数据块,一个数据块可以作为一个函数块的背景数据块,也可以作为多个函数块的背景数据块(多重背景数据块),背景数据块作为函数块的存储器,可以将接口数据区(TEMP类型除外)以及函数块运算的中间数据存储于背景数据块中,其他逻辑程序可以直接使用背景数据块存储的数据。对于FC,中间逻辑结果必须使用函数的输入、输出接口区存储。
函数块FB很少作为子程序使用,通常将函数块作为具有存储功能的函数使用,每调用一次分配一个背景数据块,将运算结果传递到背景数据块中存储。一些特殊编程应用可以在函数块中指定接口数据区存储于多重背景数据块的开始位置,使用更灵活。
那么以上就是S7-1200 PLC的程序结构,OB块、DB块、FB块、FC块的功能和特点,了解这个基础也是很重要的,如果是只使用过S7-200/200 SMART PLC的学员,要想更好的学习1200 PLC,了解这个知识是必不可少的哦。(技成培训原创,作者:蔡慧荥,未经授权不得转载,违者必究!)
↓学习资料