查看原文
其他

初学者必懂,S7-1200 PLC的程序结构!

蔡慧荥 PLC发烧友 2023-07-10

  免费领取 | 64本经典西门子电子书,超全电子书库!



今天我们来了解一下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的所有形参分配实参。接口区的各个参数含义如下图。


接口类型

读写访问

描述

Input

只读

调用时将用户程序数据传递到FC中,实参可以为常数。

Output

读写

函数调用时将FC执行结果传递到用户程序中。实参不能为常数。

InOut

读写

在块调用之前读取输入/输出参数并在块调用之后写入。实参不能为常数。

Temp

读写

仅在FC调用时生效,用于存储临时中间结果的变量。

Constat

只读

声明常量符号名后,FC中可以使用符号名代替常量。




函数块FB


什么是函数块?函数块FB是用户编写的带有自己的存储区的块。函数块FB在使用时可以使用带参数的FB和不带参数的FB。带参数的FB和带参数的FC的区别在于,带参数的FC调用后需要赋予实参后才可运行,而带参数的FB可以不赋予实参,也可以运行。FB的接口区的各个参数含义如下图:


接口类型

读写访问

描述

Input

只读

调用时将用户程序数据传递到FB中,实参可以为常数。

Output

读写

函数调用时将FB执行结果传递到用户程序中。实参不能为常数。

InOut

读写

在块调用之前读取输入/输出参数并在块调用之后写入。实参不能为常数。

STatic

读写

不参与参数传递,用于存储中间过程值,可被其他程序块访问。

Temp

读写

仅在FB调用时生效,用于存储临时中间结果的变量。

Constat

只读

声明常量符号名后,FB中可以使用符号名代替常量。


FB与FC相比,每次调用函数块都必须为之分配背景数据块,一个数据块可以作为一个函数块的背景数据块,也可以作为多个函数块的背景数据块(多重背景数据块),背景数据块作为函数块的存储器,可以将接口数据区(TEMP类型除外)以及函数块运算的中间数据存储于背景数据块中,其他逻辑程序可以直接使用背景数据块存储的数据。对于FC,中间逻辑结果必须使用函数的输入、输出接口区存储。

函数块FB很少作为子程序使用,通常将函数块作为具有存储功能的函数使用,每调用一次分配一个背景数据块,将运算结果传递到背景数据块中存储。一些特殊编程应用可以在函数块中指定接口数据区存储于多重背景数据块的开始位置,使用更灵活。


那么以上就是S7-1200 PLC的程序结构,OB块、DB块、FB块、FC块的功能和特点,了解这个基础也是很重要的,如果是只使用过S7-200/200 SMART PLC的学员,要想更好的学习1200 PLC,了解这个知识是必不可少的哦。


(技成培训原创,作者:蔡慧荥,未经授权不得转载,违者必究!)
文章推荐【实用案例】博途V15动态加密计时催款程序关于模拟量的这些知识,你了解吗?实例 | 西门子S7-200 SMART +V90 PTI定位控制西门子S7-200SMART PLC 循环走马灯如何编写150张工艺流程图来了55页PPT详解西门子SCL语言PLC与各种传感器连接方案(含应用图)学PLC不会模拟量?入门必学接线控制和编程实例涨知识│DCS系统I/O点数计算方法分享 | 如何在WinCC画面中显示网页经典实例 | 恒压供水和交通灯、液压、电梯程序分享西门子SCL语言编程,常用指令介绍如何使用C脚本实现WinCC  C单按钮置位30个PLC编程实例,带你从小白进阶电气大神!各类电气控制接线图,非常全面!模拟量万能公式,不管什么品牌的PLC都适用!西门子S7-200SMART PLC如何读取并写入实时时钟指令三菱PLC编程应用实例分享,初学者入门速成如何实现计算机远程操控HMI画面超实用 | 分享两种方法,监视WINCC与S7-300通讯状态

想要更多PLC课程资料?扫码关注即可了解课程详情

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存