西门子扩展模块6ES7222-1HF32-0XB0西门子扩展模块6ES7222-1HF32-0XB0
S7-1200 PLC的程序结构,分为OB块、FB块、FC块、DB块,OB1相当于主程序,FB/FC相当于子程序。
在S7-200/200 SMART PLC中,子程序是需要被调用才执行的,在S7-1200 PLC中也是一样的,我们的FB块或FC块需要在OB1中调用后才执行,当然FB中也可以调用FC,或者FC中也可以调用FB,这就是嵌套调用。对于S7-1200 PLC,最多可以支持16层的嵌套调用。
FB或FC在使用时,都可以使用带形式参数与不带形式参数的FB/FC,带参数的FB/FC可以实现重复调用,也很方便进行程序的移植。
1、函数FC的生成和调用
FC是不含存储区的代码块,主要是用于执行特定的运算,或者是使用位逻辑指令执行的独立控制,FC可以在程序的不同位置进行多次调用,对于重复发生的任务或动作中利用FC可以实现简化程序的效果。FC的建立可以建立带形式参数的FC,也可以建立不带形式参数的FC。
我们需要知道的是FC是没有相关的背景数据块的,没有可以存储参数值的寄存器,所以我们在调用函数FC时,必须要给所有形参分配实参哦。
添加函数FC的方法如下:
在项目树中找到“PLC_1”文件夹,双击“添加新块”,然后选择FC块,就可以新增一个FC块了,我们可以对这个块进行命名,选择块中程序的设计语言,以及分配这个块的编号,当然这个块编号可以系统自动分配,也可以我们自己手动分配。
我们要建立带形式参数的FC,还需要在添加的FC块接口区中建立相应的变量,这些变量我们就称之为形式参数。
我们在程序接口区定义变量。在FC的接口参数中主要有五种变量,分别是INPUT、OUTPUT、INOUT、TEMP和常量Constant。
如下图,我们建立好变量并编写FC内部的程序,最后在OB1中调用这个数据运算的FC块,我们可以看到在调用时是有分配实参的,是吧?
2、函数块FB的生成和调用
FB块跟FC块相比,不同的地方在于我们在调用函数块FB时是需要为它分配背景DB块的,主要用于存储块的参数。因为FB在调用时会分配对应的DB块,所以对于带形式参数的FB,在调用时可以不对FB上的管脚赋予实参。
添加函数块FB的方法如下:
在项目树中找到“PLC_1”文件夹,双击“添加新块”,然后选择FB块,就可以新增一个FB块了,我们可以对这个块进行命名,选择块中程序的设计语言,以及分配这个块的编号,当然这个块编号可以系统自动分配,也可以我们自己手动分配。
我们要建立带形式参数的FB块,同样的需要建立相应的变量,在FB的接口参数中主要有六种变量,分别是INPUT、OUTPUT、INOUT、TEMP、Constant和Static变量,我们可以看到这相对比于FC块多增了一个静态变量Static。
对于静态变量可以用于存储前一个扫描周期的运算结果,如果前一扫描周期的运算结果,在下次运算还需要使用时,就可以把这个变量建立为静态变量Static。
下图是我们创建接口区的变量,然后编写FB内部的程序,然后在OB1中进行调用,调用时使用单个实例DB的情况。
西门子扩展模块6ES7222-1HF32-0XB0西门子交换机代理商西门子触摸屏代理商西门子CPU模块代理商西门子电缆电线代理商西门子变频器代理商西门子电源模块代理商西门子低压继电器代理商西门子PLC模块代理商
西门子S7-1500 6ES7513-1FM03-0AB0
西门子S7-1500 6ES7515-5FN03-0AB0
西门子S7-1500 6ES7516-3FP03-0AB0
西门子S7-1500 6ES7511-1TL03-0AB0
西门子S7-1500 6ES7515-2TN03-0AB0