PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 83160|回复: 0

[西门子] 西门子S7-1200PLC的用户结构:FC与FB块

[复制链接]
发表于 2024-3-28 20:02:31 | 显示全部楼层 |阅读模式
FC的特点
西门子PLC的用户结构,对于西门子系列PLC而言,S7-1200与S7-300、S7-400、S7-1500的用户程序结构基本相同,均是由代码块和数据块组成。代码块主要分为组织块、函数(FC)和函数块(FB),数据块包括全局数据块和背景数据块(统称为DB)。



FC是函数(function)的意思,与C#、Python等计算机语言类似,相当于一段用户封装的程序代码,可以在程序的其他位置调用,其功能是用户编写的子程序,是一段完成特定任务的程序,可以被重复多次调用。

FC、FB在step7编程软件中(S7-300和S7-400系列编程软件)又被称为功能、功能块。FB与FC类似。

下面以PT100温度变送器为例进行说明,假定该温度变送器将0-100℃的温度转变为0-10 V的电压,PLC通过模拟量输入端采集该温度信号,经A-D转换后,得到0-27648的整数。式(5-1)是经A-D转换后的整数T与实际温度t之间的计算公式:
T=27648×100(℃) (5-1)
将上述运算编写成函数FC,可以在其他程序中重复调用,而不需要重写编写。



生成FC
打开TIA编程软件,创建新项目“函数与函数块”,点击“项目视图”切换至项目视图模式,在项目树中双击“添加新设备”,选择并添加CPU-1214C DC/DC/DC。
在项目树中“PLC_1”的“程序块”目录中双击“添加新块”,弹出“添加新块”对话框窗口。

1、Input(输入):调用该函数时需要提供的输入类型参数。
2、Output(输出):函数的执行过程中的输出类型参数。
3、InOut(输入/输出):函数执行时,该参数即是输入类型,也是输出类型。(注意2与3的区别,例如自锁电路中的输出线圈同时也作为输入触点的条件使用,则该参数为InOut参数而非Output参数,也就是说,Output参数不可以作为输入信号进行使用。)



4、Return(返回值):自动生成的一个“温度计算”的返回值参数,与函数名称相同且不可修改,属于输出参数,其值返回给调用FC1的块。该返回值默认数据类型为Void(空)。也就是没有返回值,在调用FC1时,因为没有返回值,所以看不到返回值的显示内容。

如果将该参数改成Void以外的其他参数,则在调用FC1的块中会看到方框右侧有该参数,表明有具体的返回值输出。

5、Temp(临时局部数据):该数据的功能是,函数运行时用来存储中间运算结果的,当函数FC(或FB)调用执行完毕后,该临时数据会被清空,释放执行时的系统资源。使用临时局部数据应遵循“先赋值后使用”的原则,在接口区域定义变量时选择合适的变量类型并予其合理的初值。



6、Constant(常量):在块中使用并且带有声明符号名的常数,注意,因为时常数,所以该变量不可以被重新赋值;例如,定义Constant变量为Real类型,值为3.14,那么在FC、FB中执行时,PI(块内部的局部变量)的值为3.14,且该值不可在FC、FB的程序中改变。

FB的特点
函数块(FB)与FC类似,也是用户编写的子程序,但是该代码块拥有自己的存储区(背景数据块),而FC是没有自己的存储区的,FB的典型应用是执行不能在一个扫描周期结束的操作。



系统每次执行FB(函数块,也被称为功能块)时,都需要指定一个背景数据块,该背景数据块在FB调用时自动打开,在FB调用结束时自动关闭。

FB的接口参数与FC基本相同,区别是FB的输入、输出、静态局部参数(Static)都会被保存在背景数据块中进行保存,即使FB执行完毕,背景数据块中的数据也不会丢失。

生成FB
打开TIA编程软件,打开项目“函数与函数块”,在项目树中“PLC_1”的“程序块”目录中双击“添加新块”,弹出“添加新块”对话框窗口。



点击“函数块”按钮,FB创建时默认按顺序进行编号,此时没有其他FB,因此会编号为FB1,默认编程语言为LAD(梯形图)。修改和设置该函数块名称为“电动机控制”,点击“确定”按钮后,在项目树中的程序块目录下,可以看到新生成的函数块FB1。

以两个电动机的启停控制为例,每个电动机的具体控制功能需求为:按下启动按钮,电动机立即开始转动;按下停止按钮后,延时一定时间后自动停止。
创建FB局部变量
在这个案例中,由于不止一个电动机,而且每个电动机启动、停止的条件各不相同,延时停止的时间也不相同,因此,可以在FB1的接口中定义不同的启动、停止条件和定时器,实现不同的电动机满足不同的控制条件。



打开FB1,向下拉动分隔条,在接口区域内编辑FB1的局部变量,添加启动、停止、定时器参数(形参)。

IEC定时器、计数器本质上还是FB,与普通FB的区别在于,定时器、计数器FB是系统提供的FB,用户只能使用它,不能修改它内部的程序代码。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-4-27 16:09 , Processed in 0.043718 second(s), 26 queries .

快速回复 返回顶部 返回列表