多次调用同一个SFB时可不可以对应同一个DB块

多次调用同一个SFB时可不可以对应同一个DB块,第1张

背景数据块用于FB或SFB的接口参数,每次调用需要为其分配不同的背景数据块,如果多次调用FB或SFB共用一个背景数据块将会造成混乱无法得到正确的程序执行结果。如果调用的次数多,不想使用多个背景数据块,可以使用多重背景,以SFB4为例,新建一个用于多次调用SFB4的FB块,默认支持多重背景,在这个FB块的静态变量里建立多个类型为SFB4的变量,在这个块里调用这些变量就可以了,然后为这个FB块生成背景数据块,这样这个FB调用的SFB4的背景数据都在同一个数据块里。

在S7-300/400PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。

FC运行是产生临时变量执行结束后数据就丢失-----不具有储存功能

FB运行时需要调用各种参数,于是就产生了背景数据块DB。例如用FB41来作PID控制,则它的PID控制参数就要存在DB里面。FB具有储存功能

系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只不过SFB和SFC是集成在S7

CPU中的功能块,用户能直接调用不需自已写程序。

SFC与FC不具有储存功能,FB和SFB具有储存功能

OB模块相当于子程序,负责调用其他模块。如果程序简单只需要OB就可以实现。

用西门子PLC编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但是我不明白这两个组织块之间到底有什么区别阿?在应用上到底有什么不同之处吗?

FB--功能块,带背景数据块

FC--功能,相当于函数

他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块

举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。FB确保了3个电机的参数互不干扰。

FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。他们的最大区别是,FB与DB配合使用,DB中保存着FB使用的数据,即使FB退出后也会一直保留。FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。

在实际编程中,是使用FB还是FC,要看实际的需要决定。

FB与FC没有太大的差别,FB带有背景数据块,而FC没有。所以FB带上不同的数据块,就可以带上不同的参数值。这样就可以用同一FB和不同的背景数据块,被多个对象调用。

FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。

这是一般的理解;FB需要背景数据块,而FC是没有的;参数的传递方式不同,FB的输入输出对应着背景数据块地址,而FC的输入输出是没有实际地址对应的,只有的程序调用时,才会和实际的地址产生对应关系。FB参数传递的是数据,FC参数传递的是数据的地址。

参考文献:>

没有区别,功能一样,SFB是集成在PLC上,由于并不是每个型号的PLC都集成SFB41,所以西门子推出FB41,用于没有集成SFB41的PLC型号。SFB就像FB一样的调用,包括OB1等都可以调用,调用SFB时请注意您的PLC型号是否支持该SFB即可。

以上就是关于多次调用同一个SFB时可不可以对应同一个DB块全部的内容,包括:多次调用同一个SFB时可不可以对应同一个DB块、西门子plc编程在什么情况下用OB、FB、FC、SFB、SFC块、西门子S7 SFB和FB-请教高手指点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:聚客百科

原文地址: https://juke.outofmemory.cn/life/3769539.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存