FB块可被OB1调用多次,功能的所有形参和静态数据都存储在一个单独的、被指定给该功能块的数据块(DB)中,该数据块被称为背景数据块。当调用FB时,该背景数据块会自动打开,实际参数的值被存储在背景数据块中;当块退出时,背景数据块中的数据仍然保持。
下面通过案例设计介绍FB如何编写吧。
案例:目前有3个贮水箱,每个水箱有2个液位传感器,UH1、UH2、UH3为高液位传感器,"1" 有效;UL1、UL2、UL3为低液位传感器,“0”有效。Y1、Y2、Y3分别为3个贮水水箱进水电磁阀;Y4、Y5、Y6分别为3个贮水水箱放水电磁阀。SB1、SB2、SB3分别为3个贮水水箱放水电磁阀手动开启按钮;SB4、SB5、SB6分别为3个贮水箱放水电磁阀手动关闭按钮。现需实现如下控制:SB1、SB2、SB3在PLC外部操作设定,通过人为的方式,按随机的顺序将水箱放空。只要检测到水箱“空”的信号,系统就自动地向水箱注水,直到检测到水箱“满”信号为止。水箱注水的顺序要与水箱放空的顺序相同,每次只能对一个水箱进行注水操作。控制系统如下图:
程序设计如下:
1.符号表
2.程序模块总图
3.FB
FB参数设置图:
FB程序图:
4.OB100(程序启动前初始化功能)
本模块实现的功能是 当SB1、SB2、SB3只要有一个被按下,那么水箱阀的控制则变成自动控制,各个水箱阀复位
5.OB1
下图只例举了1水箱调用图,2、3水箱调用该FB1的方式一样,只是背景数据块需要变为DB2、DB3
程序代码可在此下载。
原文地址:http://blog.csdn.net/fengshuiyue/article/details/43019513