网站地图

您好,欢迎进入苏州汉测测量设备有限公司官网!
CNC数控行业在机测量品质服务商

CNC On-machine Measurement Quality Service Provider

全国销售热线:

400-017-9165

行业百科
你当前的位置汉测首页 / 行业百科

详解西门子PLC 中函数FC与FB的应用与区别

发布日期:2022-12-13 09:48:18  点击次数:8009

一、功能性预算和功能性预算的区别


1.FB功能块,带后台数据块FC-function,相当于function;


2.FB和FC块都是子程序,可以被其他FB和FC块或者OB、FB和FC块调用。


二。FB和FC的主要区别


1.FB使用后台数据块作为存储区,FC没有独立的存储区,使用全局DB或M区;


2.FB局部变量有STAT和TEMP,FC没有STAT是因为没有自己的存储区,TEMP本身无法设置初始值;


本质上,FB和FC的目的是一样的。无论什么逻辑要求,FB和FC都可以实现,只是实现的效率不同,这也和工程师的个人编程习惯有关。


三。FB块的优点


1.易于携带。对于控制逻辑相同、参数不同的被控对象,只要使用不同的背景DB,相同的FB块就可以很方便;


2.多背景,减少重复工作,提高效率;


3.多次调用时修改参数方便;


4.有独立的存储区;


四。FC块的优势


1、小巧灵活,对于调用次数不多的程序更容易理解;


2、不占用额外的存储资源;


动词 (verb的缩写)FB和FC模块引脚的定义


1.in-变量是外部输入的,只能由这个块读取,不能由这个块写入;


2.OUT——是这个块的输出,可以被这个块读写。其他程序只能读取值,但不能通过引脚写入值;


3.输入输出——输入输出变量。这个程序块和其他程序可以读写这个管脚的值;


4.Temp-temporary变量,顾名思义,是临时存储数据的变量。这些临时数据存储在CPU工作存储区的本地数据堆栈(L stack)中;


5.STAT-它总是在PLC运行期间存储。S7在后台数据块中定义静态变量(仅针对FB,FC和OB没有静态变量)。被调用的块运行时,静态变量可以被读取或修改,被调用的块结束后,静态变量保留在数据块中;


6.为什么定义的FB和FC块反复调用后会混淆?


对于多次调用的程序块,FB block建议更换调用不同的后台DB,而FC需要保证使用的存储地址不重复,即每次调用时,块内调用的地址不重复;


七。为什么带定时器或计数器的FB或FC调用一次ok,调用多次定时器或计数器就混淆了?


对于多次调用的FB和FC,如S7 TIMER和counter,需要在in接口中定义TIMER或Counter。每次调用FB或FC时,都会给它分配一个不同的计时器或计数器编号。对于IEC定时器和计数器,需要在in接口中定义Block_DB。每次调用FB或FC时,都需要为IEC定时器或计数器分配不同的DB模块。


八。临时变量引起的麻烦


临时变量可用于组织快速OB、功能FC和功能块FB。它们用于在执行块时临时存储数据。一旦块执行完成,堆栈的地址将为其他块重新分配。该地址的数据将不会被清除,直到它被其他块赋予新的值。应遵循“先赋值后使用”的原则。


九、导致程序运行异常的常见情况有几种。


1.一个block程序时有时无的运行,偶尔有一个或多个值不正常。


问题是“使用前赋值”必须遵循,否则,在每个扫描周期开始时,TEMP的值没有被显式赋值,这个地址的值将是随机的;


2.多个块使用TEMP,单独使用其中任何一个都是正常的,不能一起使用。


问题是TEMP在使用前未能赋值,block 1的TEMP中的值没有清零,但是CPU运行机制调用这个地址使用或者直接分配给block 2,导致程序混乱。由于内存运行机制没有公开,这个分配过程看起来是随机的,可能导致程序多次正常运行,运行一段时间后出现问题。只要遵循“第一


3.TEMP无法实现自锁。


这个问题就是TEMP的值不能像M点或者Q点一样保持上一个周期的值。TEMP在每个扫描周期都需要有明确的赋值,即先赋值(写),再使用(读写)。解决方案是FB可以使用STAT静态变量,FC可以使用M区或者全局DB地址;


X.摘要


1.不能先用,再分配;


2.不适合自锁线圈;


3.不适用于上升沿和下降沿;


4.遇到上述情况,FC块可以使用M区或者全局DB地址,FB块也可以使用自己后台DB的STAT静态变量。在FB和FC中使用第一次调用的临时变量时,必须先给它赋值,也就是写指令,而不是读指令。

版权所有© 苏州汉测测量设备有限公司 备案号: 苏ICP备19011283号-2