S7PLC的功能和功能块

合集下载

西门子 PLC中OB、FC、FB、SFC、SFB中功能块

西门子 PLC中OB、FC、FB、SFC、SFB中功能块

西门子 PLC中OB、FC、FB、SFC、SFB中功能块使用概述(2013-12-05 16:13:52)S7-300/400PLC程序采用结构化程序,把程序分成多个模块,各模块完成相应的功能。

结合起来就能实现一个复杂的控制系统。

就像高级语言一样,用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。

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

FC运行是产生临时变量执行结束后数据就丢失-----不具有储存功能FB运行时需要调用各种参数,于是就产生了背景数据块DB。

例如用FB 41来作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中保存着F B使用的数据,即使FB退出后也会一直保留。

FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。

S7-200系列PLC的PID功能块的应用

S7-200系列PLC的PID功能块的应用

请大家都来谈谈西门子S7-200系列PLC的PID功能块的应用问题,把实际经验都写出来,让大家都受益! PID参数的整定:1、可以在软件中进行自动整定;2、自动整定的PID参数可能对于系统来说不是最好的,就需要手动凭经验来进行整定。

P参数过小,达到动态平衡的时间就会太长;P参数过大,就容易产生超调。

PID功能块在梯形图(程序)中应当注意的问题:1、最好采用PID向导生成PID功能块;2、我要说一个最简单的也是最容易被人忽视的问题,那就是:PID功能块的使能控制只能采用SM0.0或任何1个存储器的常开触点并联该存储器的常闭触点这样的永不断开的触点!笔者在以前的一个工程调试中就遇到这样的问题:PID功能块有时间动作正常,有时间动作不正常,而且不正常时发现PID功能块都没问题(PID参数正确、使能正确),就是没有输出。

最后查了好久,突然意识到可能是使能的问题——我在使能端串联了启动/停止控制的保持继电器,我把它改为SM0.0以后,一切正常!同时也明白了PID功能块有时间动作正常,有时间动作不正常的原因:有时在灌入程序后保持继电器处于动作的状态才不会出现问题,一旦停止了设备就会出现问题——PID功能块使能一旦断开,工作就不会正常!把这个给大家说说,以免出现同样失误。

下面是PID控制器参数整定的一般方法:PID控制器的参数整定是控制系统设计的核心内容。

它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。

PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。

它主要是依据系统的数学模型,经过理论计算确定控制器参数。

这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。

二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。

PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。

三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。

通俗讲S7-1500PLC常用7种模块及功能,这么讲还不懂就真没办法啦~

通俗讲S7-1500PLC常用7种模块及功能,这么讲还不懂就真没办法啦~

通俗讲S7-1500PLC常用7种模块及功能,这么讲还不懂就真没办法啦~今天给大家讲讲S7-1500PLC的常用模块,S7-1500PLC是模块化结构设计的PLC,各个单独模块之间可以进行广泛组合和扩展,它的主要组成部分有电源模块(PM/PS)、中央处理器模块(CPU)、导轨(RACK)、信号模块(SM)、通信模块(CP/CM)和工艺模块(TM)等。

(1)、电源模块(PM/PS)用于向CPU以及其扩展模块提供+24V DC电源。

PM:无背板总线、不占用槽位,无固件版本(类似PS307)PS:有背板总线,占用槽位,有固件版本(类似PS407)(2)、中央处理器模块(CPU)主要包括标准CPU(比如:CPU1511-1PN)紧凑型CPU(比如:CPU1512C-1PN)分布式模块CPU(比如:CPU1510SP-1PN工艺型CPU(比如:CPU1511T-1PN)故障安全CPU模块(比如:CPU1511F-1PN)通过标红的字母可以区分是什么类型的CPU(3)、导轨(RACK)是安装S7-1500各类模块的机架,是特制的异形板,标准长度为160/245...2000,可以根据实际选用。

S7-300/1200/1500的导轨上无背板总线。

但S7-400有背板总线,不可缺少。

(4)、存储卡(SD)用于存储PLC程序,可由PC直接读取,不支持热插拔。

50万次读取寿命,最大32GB注:S7-300的MMC,PC不能直接读取需用准用读卡器设备。

(5)、信号模块(SM)是数字量I/O模块和模拟量I/O模块的总称。

信号模块主要有SM521(数字量输入)、SM522(数字量输出)、混合模块SM523、SM531(模拟量输入)、SM532(模拟量输出)和混合模块SM534。

基本型:BA标准型:ST高性能:HF(6)、工艺模块(TM)主要用于对实时性和存储量要求高的控制任务。

计数模块(高速输入):TM Count2位置检测模块(高速输入):TM Poslnput2PTO模块(高速输出):TM PTO(7)、通信模块(CP/CM)用于PLC之间、PLC与计算机和其他智能设备之间的通信,可将PLC接入以太网、PROFIBUS和AS-I网络,或用于串行通信。

s7plc程序结构

s7plc程序结构

S7PLC程序结构1. 引言在工业自动化领域,PLC(可编程逻辑控制器)是一种常见的控制设备。

S7PLC是西门子公司开发的一种PLC系列产品,广泛应用于工业控制系统中。

S7PLC程序结构是指在S7PLC中编写程序时需要遵循的一种结构化方法。

本文将详细介绍S7PLC程序结构的要素和设计原则。

2. S7PLC程序结构要素一个典型的S7PLC程序由以下几个要素组成:2.1 程序块(Block)在S7PLC中,程序被分为多个块(Block),每个块都有特定的功能。

常见的块类型包括主程序块(OB1)、函数块(FC)、函数(FB)和数据块(DB)等。

主程序块是整个程序的入口,它负责调用其他块来完成特定的任务。

2.2 输入输出(Input/Output)输入输出是指与外部设备进行数据交换的接口。

在S7PLC中,输入通常表示传感器和其他设备向控制器提供的信息,而输出表示控制器向执行机构发送的指令或信号。

通过定义输入输出可以实现与外部设备的数据交互。

2.3 数据类型(Data Type)S7PLC支持多种数据类型,包括基本数据类型和用户自定义数据类型。

基本数据类型包括整数、浮点数、布尔值等,而用户自定义数据类型可以根据具体需求定义结构体或数组等复杂的数据结构。

2.4 变量(Variable)变量是程序中用于存储和处理数据的容器。

在S7PLC中,可以声明全局变量和局部变量。

全局变量在整个程序中都可以访问,而局部变量只能在当前块中使用。

2.5 功能块调用(Function Block Call)功能块是一种可重复使用的代码模块,它封装了一组相关的功能。

通过调用功能块可以实现代码的模块化和复用。

在S7PLC中,可以通过功能块调用来执行特定的任务。

3. S7PLC程序结构设计原则在编写S7PLC程序时,应遵循以下设计原则:3.1 模块化设计将程序划分为多个模块,每个模块负责完成一个特定的任务。

这样可以提高代码的可读性和可维护性,并且方便进行单元测试和调试。

第6章S7-200 PLC的功能指令及使用

第6章S7-200 PLC的功能指令及使用

Network 10 C10 +16 Network 11 C10
QB0
MOV_B EN ENO 7 IN OUT QB0
MOV_B EN ENO OUT
MOV_B EN ENO 3 IN OUT QB0
+18
MOV_B EN ENO OUT QB0
Network 12 C10 +20
MOV_B EN ENO 1 IN OUT QB0
字(整数INT)比较指令(取)
第一种 字比较触点“取”
字比较触点“取”
字(整数INT)比较指令(与)
第二种
字比较触点“与”
字比较触点“与”
字(整数INT)比较指令(或)
第三种 字比较触点“或”
字比较触点“或”
字(整数INT)比较指令(例题2)
例题2:分析程序,画出指定元件的时序
字比较指令例题2图
第一种:实数比较触点“取”
实数比较触点“取”
第二种:实数比较触点“与”
实数比较触点“与”
第三种:实数比较触点“或”
实 数 比 较 触 点 “ 或 ”
传送指令
1. 字节、字、双字、 实数的传送 SIMATIC功能指令助记符中最后的B、W、DW(或D)和R分别表 示操作数为字节(Byte)、字(Word)、双字(Doudle Word)和实数 (Real). 传送指令将输入的数据(IN)传送到输出(OUT),传送过程不改 变源地址中数据的值。
输入 启动开关 I1.0
输出 六盏灯 Q0.0-Q0.5
Network 1 I1.0 SM0.5 CU I1.0 R C10 24 Network 2 C10 +0 1 Network 3 C10 +2 3 Network 4 C10 +4 7 IN IN IN PV

STEP7程序块的类型及区别(总结转)_天外小屋

STEP7程序块的类型及区别(总结转)_天外小屋

STEP7程序块的类型及区别(总结转)_天外小屋STEP7 程序块的类型及区别(总结)在SIEMENS S7-300/400系列PLC中有多种程序块,如下图(在管理器右边的空白区域点击右键),主要有:组织块(OB),功能块(FB),功能(FC),数据块(DB)及系统功能(SFC)和系统功能块(SFB)等。

注:快捷菜单中的其它两项:数据类型和变量表。

数据类型(UDT)用于指定程序中数据元素的大小与格式;变量表(VAT)用来在程序调试和运行时修改和监视变量的内容(在地址栏中输入地址后,符号栏中会自动显示在符号表中定义的符号)。

这几种程序块的功能简要说明如下:说明:调用程序块:OB,FB,FC(可以调用除OB块外的其它程序块);被调用程序块:FB,FC,SFB,SFC。

1、组织块OBOB由系统自动调用,并执行用户在OB块中编写的程序,所以OB的基本作用是调用用户程序。

在OB块中编写程序的最大容量,S7-300是16KB,S7-400是64KB。

除主程序循环OB1外,其它OB均是由事件触发的中断。

2、函数FC函数FC有两个作用:(1)作为子程序用;(2)作为函数用,函数中通常带形参。

函数中程序的最大容量,S7-300是16KB,S7-400是64KB。

F C的形参通常也称为接口区,参数类型分为输入参数,输出参数,输入/输出参数和临时数据区。

在编写函数FC的输出参数时,应避免没有直接输出(否则,可能输出一个随机值,影响程序的判断)。

可以在函数的开始,将字输出参数清0,位输出参数复位。

3、函数块FBFB与FC相比,FB每次调用都必须分配一个背景数据块,用来存储接口数据区(TEMP类型除外)和运算的中间数据。

其它程序可以直接使用背景数据区中的数据。

FB中程序的最大容量,S7-300是16KB,S7-400是64KB。

FB的接口区比FC多了一个静态数据区(STAT),用来存储中间变量。

程序调用FB时,形参不像FC那样必须赋值,可以通过背景数据块直接赋值。

S7功能模块说明_2(中文)

S7功能模块说明_2改动说明:FC120~123设备内存变量使用改为:PALM=D0(软报警), ALL_RDY=D1。

普通电机:FC20(推荐)控制要求:上位机直接监控RDY、RUN、DRV普通电机:FC21(推荐)控制要求:上位机直接监控RDY、RUN、DRV符号类型功能RDY BOOL 备妥(通常直接从DI输入)RUN BOOL 运行(通常直接从DI输入)UNLOCK BOOL 解锁,”1”时此设备为解锁状态(内存变量)DOWN BOOL 联锁跳停(下沿)TIMER 设备启动延时器,指定T0~T n (各设备不能重复用同一定时器) DELAY_TIMEERDELAY_V AL S5TIME 设备启动过程延时值S5格式(只有单驱2功能块用)DRV BOOL 驱动(通常直接连接DO)ZZ1 BOOL 暂存位(内存变量)RDY_ALL BOOL 总备妥(内存变量)ALM BOOL 报警(内存变量)脉冲驱动设备:FC22控制要求:上位机直接监控RDY、RUN、DRV符号类型功能RDY BOOL 备妥(通常直接从DI输入)RUN BOOL 运行(通常直接从DI输入)UNLOCK BOOL 解锁,”1”时此设备为解锁状态(内存变量)DOWN BOOL 跳停(下沿)DELAY_TIMER 0 TIMER 延时器0,设备启动延时,T0~T n (各设备不能重复用同一定时器)DELAY_V AL S5TIME 设备启动延时值,S5格式DELAY_TIMER 1 TIMER 延时器1,设备开脉冲延时,指定T0~T n (各设备不能重复用同一定时器)DELAY_TIMER 2 TIMER 延时器2,设备关脉冲延时,指定T0~T n (各设备不能重复用同一定时器)DRV BOOL 驱动(由上位机控制)DRV_ON BOOL 开机(2秒脉冲,通常直接指DO)(由S7控制)DRV_OFF BOOL 关机(2秒脉冲,通常直接指DO)(由S7控制)ZZ1~ZZ3 BOOL 暂存位RDY_ALL BOOL 总备妥ALM BOOL 报警标志(内存变量)脉冲驱动设备:FC23(推荐)控制要求:上位机直接监控RDY、RUN、DRV_ON、DRV_OFF符号类型功能RDY BOOL 备妥(通常直接从DI输入)RUN BOOL 运行(通常直接从DI输入)UNLOCK BOOL 解锁,”1”时此设备为解锁状态(内存变量)DOWN BOOL 跳停(下沿)DELAY_TIMER 1 TIMER 延时器1,设备启动延时,T0~T n (各设备不能重复用同一定时器)DELAY_V AL S5TIME 延时器1值,S5格式DELAY_TIMER 2 TIMER 延时器2,设备关脉冲延时,指定T0~T n (各设备不能重复用同一定时器)DELAY_TIMER 3 TIMER 延时器2,设备关脉冲延时,指定T0~T n (各设备不能重复用同一定时器)DRV_ON BOOL 开机(2秒脉冲,通常直接指DO)(由上位机控制)DRV_OFF BOOL 关机(2秒脉冲,通常直接指DO)(由上位机控制)ZZ1~ZZ3 BOOL 暂存位RDY_ALL BOOL 总备妥ALM BOOL 报警标志(内存变量)电动阀设备1:(模拟阀)FC24控制要求:上位机监控PV、SP符号类型功能PV INT 阀门开度反馈(AI)SP INT 阀门开度给定(内存变量)MAN BOOL 手动方式(内存变量)LIM_F BOOL 开到位(DI)LIM_B BOOL 关到位(DI)DRV_F BOOL 手动开(DO)DRV_B BOOL 手动关(DO)ZZ1 BOOL 暂存位(内存变量)电动阀设备2:(开关阀)FC25控制要求:上位机直接监控RDY、OPN、CLOSE符号类型功能RDY BOOL 备妥(DI)OPEN BOOL 开命令(脉冲,内存变量)CLOSE BOOL 关命令(脉冲,内存变量)LIM_F BOOL 开到位(DI)LIM_B BOOL 关到位(DI)DELAY_TIMER TIMER 保护延时器,指定T0~T n (各设备不能重复用同一定时器) DELAY_V AL S5TIME S5格式,例:S5T#10SZZ1 BOOL 暂存位(内存)ZZ2 BOOL 暂存位(内存)ZZ3 BOOL 暂存位(内存)DRV_F BOOL 开驱动(DO)DRV_B BOOL 关驱动(DO)双向电机:FC26符号类型功能RDY BOOL 备妥条件RUN_F BOOL 正转运行RUN_B BOOL 反转运行DOWN BOOL 跳停UNLOCK BOOL 解锁=1DELAY_TIMER TIMER 开设备开延时器,指定T0~T n (各设备不能重复用同一定时器) DRV_F BOOL 正向驱动(通常直接从DO输出)DRV_B BOOL 反向驱动(通常直接从DO输出)ALM BOOL 报警标志,“1”时表开机失败或运行信号丢失(内存变量)ZZ1 BOOL (暂存)ZZ2 BOOL (暂存)RDY_ALL BOOL 总备妥挡轮油站:FC27符号类型功能AUT_RUN BOOL 自动运行方式=1K1 BOOL 下行4K2 BOOL 下行3K3 BOOL 下行2K4 BOOL 下行1K5 BOOL 上行1K6 BOOL 上行2K7 BOOL 上行3K8 BOOL 上行4ZZ1 BOOL 暂存DRV_PUMP BOOL 油泵驱动V ALVE_A BOOL A 阀驱动V ALVE_B BOOL B 阀驱动ALM BOOL 报警低压油站:FC28符号类型功能AUTO_RUN BOOL =1为自动运行RDY1 BOOL 1#油泵备妥RDY2 BOOL 2#油泵备妥RUN1 BOOL 1#油泵运行RUN2 BOOL 2油泵运行SELECT_2 BOOL 选2#泵为主泵P_AH BOOL 油压上限P_AL BOOL 油压下限DELAY_TIMER TIMER 延时器,指定T0~T n (各设备不能重复用同一定时器)ZZ1 BOOL 暂存DRV1 BOOL 油泵驱动1DRV2 BOOL 油泵驱动2RDY_ALL BOOL 总备妥RUN_ALL BOOL 总运行高压油站:FC29符号类型功能RDY BOOL 备妥RUN BOOL 运行SUM TIMER TIMER 总定时SUM_IMER_V AL S5TIME 定时值OK_TIMER TIMER OK定时OK_TIMER_V AL S5TIME OK定时值DRV BOOL 驱动ALM BOOL 报警ZZ1 BOOL 暂存ZZ2 BOOL 暂存ZZ3 BOOL 暂存ZZ4 BOOL 暂存OK BOOL 准备好均化冲气:FC30符号类型功能AUT_RUN BOOL =1为自动运行P_PV INT 仓压过程变量P_LIM_H INT 仓压上限(内存变量)P_LIM_L INT 仓压下限(内存变量)CYCLE_TIMER TIMER 总定时TIMER_V AL S5TIME定时值COUNT INT 仓计数ZZ1 BOOL 暂存ZZ2 BOOL 暂存G3 BOOL 放气阀G4 BOOL 充气阀G5 BOOL 充气阀G6 BOOL 充气阀G7 BOOL 充气阀G8 BOOL 充气阀G9 BOOL 充气阀流量累计:FC31符号类型功能LL_PV INT 流量过程值LL_MAX DNT 工程量最大值(Kg/h), 不得超过77690Kg/h 否则增大单位SUM_ZZ DNT 累计暂存SUM DNT 累计值(单位Kg) SUM<=999999999卸料阀:FC32符号类型功能AUTO_RUN BOOL =1为自动运行CP BOOL 秒脉冲COUNT_V AL DINT 卸料周期定时值(单位秒)DELAY_TIMER TIMER 卸料时长定时器SP_TIME TIME 卸料时长定时值(单位MS)ZZ1 BOOL 暂存用ZZ2 BOOL 暂存COUNT_JS DINT 暂存DRV BOOL 驱动AI、AO传送:FC10、FC11FC10功能块把AI模拟量从PIW区传到预先定义好的DB10数据块,传送的长度由DB10决定。

用S7-300PLC进行PID控制——功能块FB41的功能及用法介绍

用S7-300PLC进行PID控制——功能块FB41的功能及用法介绍一、控制系统假设图1 液压系统控制框图如图1为液压系统的简单控制框图。

控制方式为使用变频器拖动泵,使系统的实际压力等于设定压力。

本文基于此系统,探讨一下如何用S7-300进行PID控制。

为方便讨论,做以下假定:•· 系统压力的可调范围为:0 – 1MPa;•· 变频器的变频范围为:0 – 50Hz;•· 压力传感器的输入外设地址:PIW272;模拟量输出外设地址为PQW288。

二、FB41简介在STEP7中的库中,有专门用于PID控制的FB块——FB41。

PID控制必须在循环中断中执行,以确保其扫描、执行时间基本固定。

本例中的CPU仅有OB35一个循环中断,因此,要在OB35中调用FB41。

图2 FB41在库中的位置图3 FB41的逻辑图FB41的逻辑如图3所示。

分解介绍如下:•· SP_INT端为给定值,本例中即为给定压力,假设为0.5MPa;即:0.5==>'SP_INT';•· 实际值有两条通路可选:· 当PVPER_ON=0时,PV_IN端的值为实际值,该值通常有FC105转换而来;· 当PVPER_ON=1时,PV_PER端的值为实际的压力值,该值来自AI模块,为压力传感器的反馈值;本例中,我们以PVPER_ON=1时,来说明。

即:1==>'PVPER_ON'、PIW272==>'PV_PER'•· PV_FAC、PV_OFF对应压力的范围,即:1==>'PV_FAC'、0==>'PV_OFF'。

•· PV是根据PV_PER计算出的实际压力值。

具体来说:PV_PER=0时,对应的实际压力为PV_OFF,即0MPa;PV_PER=27648时,对应的实际压力为PV_FAC,即1MPa;PV=PV_PER/27648*(PV_FAC –PV_OFF),本例中,PV=PV_PER/27648;•· ER为给定值SP_INT和实际值PV的偏差,PID即是基于它进行调节的;•· GAIN、TI、TD分别为比例、积分、微分的系数。

STEP7常用功能块教程

STEP7常用功能块教程STEP7(Siemens Totally Integrated Automation Portal)是西门子公司的一款集成的自动化工程软件,用于配置、程序和诊断西门子的可编程逻辑控制器(PLC)系统。

STEP7具有许多强大的功能块,可以帮助用户更高效地编程和管理PLC系统。

本文将介绍一些常用的STEP7功能块和它们的应用。

1.FC(函数块):函数块是一种可重用的程序单元,允许用户编写自定义函数。

通过使用函数块,可以将常用的代码片段封装为函数,以便在不同的程序中重复使用。

例如,可以创建一个函数块来实现PID控制算法,使其可以在不同的工程中重复使用。

2.FB(功能块):功能块是STEP7中的另一种可重用程序单元,类似于函数块。

不同之处在于,功能块可以包含状态信息,并可以在程序中直接调用。

功能块通常用于处理系统的输入和输出信号,并执行相关的逻辑操作。

例如,可以创建一个功能块来处理PLC的输入和输出模块,并根据逻辑条件执行相应的控制操作。

3.OB(组织块):组织块是STEP7中的一种特殊类型的函数块,用于定义PLC程序的执行顺序和事件触发条件。

组织块分为不同的类型,如主程序(OB1)和中断(OB35),每个类型都有不同的功能和触发条件。

通过使用组织块,可以精确控制PLC程序的执行流程,并根据需要触发特定的事件。

4.DB(数据块):数据块是STEP7中用于存储和管理数据的容器。

数据块包含一个或多个变量,可以在PLC程序中访问和使用。

通过使用数据块,可以将相关的数据组织在一起,并轻松地进行数据的传输和处理。

例如,可以创建一个数据块来存储传感器和执行器的输入和输出数据,并在程序中使用这些数据进行逻辑判断和控制操作。

5.SFC(顺序功能图):顺序功能图是一种图形化编程语言,用于描述程序的执行顺序和组织结构。

SFC可以将PLC程序分解为不同的步骤,并定义不同的条件和转换规则。

通过使用SFC,可以更直观地理解和设计复杂的PLC程序,并使其易于修改和维护。

PLC编程中功能块与功能的区别

PLC编程中功能块与功能的区别
PLC编程中功能块(FB)与功能(FC)的区别
说的简单一点,FB是有背景数据块的,而FC没有。

如果你有几套一样的或者相似的参数要处理的话,用FB会方便一点。

例如,计算A同学和B同学的成绩,其实每个同学的成绩都是有数学,语文,英语组成,那么在计算每个同学的数据时都是三个科目成绩相加,算法是一样的,那么我们就可以做一个功能块,把这个算法写进去,在块里面定义变量数学,语文,英语,然后把算法写好,再去为A,B同学分别创建一个数据块,也就是FB的背景数据块,你会发现,你打开背景数据块后,里面的变量和FB里面的变量名称,个数是一样的,那么把数据块1,2分别分配给A,B的话,就可以把AB同学的成绩分别写到数据块里,然后由FB调用不同的数据块就可以计算A,B的成绩了,这样每组数据都有自己的数据块,不容易造成数据混乱。

如果用功能FC来做的话,也可以,但是你要自己去每个数据块里面定义变量,比较麻烦,或者也可以直接把所有同学的成绩的数据全写到一个块里面,但这样容易数据混乱。

还有就是FB里面是有静态变量的,而FC没有,FC有return,FB没有至于这两的用法,请参看相关资料。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FC
FB
SFC
过程
FB FB带背景数据块
2. 线性程序(线性编程)
所谓线性程序结构,就是将整个用户程序连续放置在 一个循环程序块(OB1)中,块中的程序按顺序执行,CPU 通过反复执行OB1来实现自动化控制任务。这种结构和PLC 所代替的硬接线继电器控制类似,CPU逐条地处理指令。事 实上所有的程序都可以用线性结构实现,不过,线性结构 一般适用于相对简单的程序编写。
4. 结构化程序
所谓结构化程序,就是处理复杂自动化控制任务的过 程中,为了使任务更易于控制,常把过程要求类似或相关 的功能进行分类,分割为可用于几个任务的通用解决方案 的小任务,这些小任务以相应的程序段表示,称为块( FC 或FB)。OB1通过调用这些程序块来完成整个自动化控制任 务。
结构化程序的特点是每个块(FC或FB)在OB1中可能会 被多次调用,以完成具有相同过程工艺要求的不同控制对 象。这种结构可简化程序设计过程、减小代码长度、提高 编程效率,比较适合于较复杂自动化控制任务的设计。
四、功能块(FB)
功能块(FB)在程序的体系结构中位于组织块之下。它 包含程序的一部分,这部分程序在 OB1 中可以多次调用。功 能块的所有形参和静态数据都存储在一个单独的、被指定给 该功能块的数据块(DB)中,该数据块被称为背景数据块。 当调用FB时,该背景数据块会自动打开,实际参数的值被存 储在背景数据块中;当块退出时,背景数据块中的数据仍然 保持。
编辑并调用有静态参数的功能块
在编辑功能块(FB)时,如果程序中需要特定数据的参 数,可以考虑将该特定数据定义为静态参数,并在FB的声明 表内STAT处声明。 下面以交通信号灯控制系统的设计为例,介绍如何编辑 和调用有静态参数的功能块。
(一)编辑并调用无静态参数的功能块
例:电机顺序启动编程实例
1. 局部变量声明表
每个逻辑块前部都有一个变量声明表,称局部变量声 明表。
局部数据分为参数和局部变量两大类,局部变量又包括 静态变量和临时变量(暂态变量)两种。
2.定义形式参数
选择参数类型 输入参数名称 从下拉列表中选择数据类型 参数注解
定义输入参数
定义输出参数
定义输入/输出参数
数据类型下拉列表
二、功能(FC)和功能块(FB)说明
功能块(FB)有一个数据结构与该功能块的参数完全 相同的数据块,称为背景数据块,背景数据块依附于功能 块,它随着功能块的调用而打开,随着功能块的结束而关 闭。存放在背景数据块中的数据在功能块结束时继续保持。 而功能(FC)则不需要背景数据块,功能调用结束后数据 不能保持。
S7-300/400PLC的功能与功能块
主讲:王 兵
E_Mail:wb730609@
一、S7-300/400中的程序
1.用户程序中的块结构
操作系统 循环
定时 OB 组织块 FB 故障 图例: OB--组织块 FB--功能块 FC--功能 SFB--系统功能块 SFC--系统功能 最大嵌套深度: S7-300:8 16(CPU318) S7-400:24 FC SFB DB DB
例:正反转编程实例
(二)编辑并调用有参功能(FC)——结构化程序设计
所谓有参功能(FC),是指编辑功能(FC)时,在局部 变量声明表内定义了形式参数,在功能(FC)中使用了虚拟 的符号地址完成控制程序的编程,以便在其他块中能重复调 用有参功能(FC)。这种方式一般应用于结构化程序编写。
例:电机顺序启动编程实例
3.编写控制程序 编写逻辑块(FC和FB)程序时,可以用以下两种方式使 用局部变量:
①使用变量名,此时变量名前加前缀“#”,以区别于 在符号表中定义的符号地址。增量方式下,前缀会自动产生。
②直接使用局部变量的地址,这种方式只对背景数据块 和L堆栈有效。 在调用FB块时,要说明其背景数据块。背景数据块应在 调用前生成,其顺序格式与变量声明表必须保持一致。
3.模块化程序
所谓模块程序,就是将整个程序按任务分成若干个部 分,并分别放置在不同的功能( FC )、功能块( FB )及组 织块中,在一个块中可以进一步分解成段。在组织块OB1 中 包含按顺序调用其他块的指令,并控制程序执行。 在分部程序中,既无数据交换,也不存在重复利用的 程序代码。功能( FC )和功能块( FB )不传递也不接收参 数,分部程序结构的编程效率比线性程序有所提高,程序 测试也较方便,对程序员的要求也不太高。对不太复杂的 控制程序可考虑采用这种程序结构。
三、功能(FC)
(一)编辑并调用无参功能(FC)——模块化程序设计 所谓无参功能(FC),是指在编辑功能(FC)时,在局 部变量声明表不进行形式参数的定义,在功能(FC)中直接 使用绝对地址完成控制程序的编程。这种方式一般应用于分 部式结构的程序编写,每个功能(FC)实现整个控制任务的 一部分,不重复调用。
相关文档
最新文档