西门子系统PLC全国各地代理商
FB和FC差别
FB--应用,带环境db块 FC--作用,等同于函数公式
FB,FC块均等同于程序段,既能启用其他FB,FC块,还可以被OB,FB,FC块启用。
两人之间的关键区别在于:
1. FB应用环境db块做为存放区,FC并没有单独的存放区,应用全局性DB或M区
2. FB静态变量有STAT和TEMP,FC因为没有自己存放区因而不具备STAT,TEMP自身不可以设定初值。
实质上,FB,FC的实现目的是一样的;无论是哪种逻辑性规定,FB,FC都可完成。仅仅控制方式高效率不一样,这也与技术工程师本人程序编写习惯性相关。
FB块优势:
1. 便于可移植性,针对同样控制逻辑不一样参数控制对象,只需采用不同的环境DB,同一个FB块就可以轻松
2. 多种环境,降低重复性工作,提高工作效率
数次启用时,主要参数改动便捷
4. 有独立的存放区
FC块优势:
1. 精巧灵便,对非数次调用的程序流程更加容易了解
2. 不占额外服务器资源
FB,FC块引脚界定
IN---------变量是外界输入,只有被本程序块读,不可以被本程序块写;
OUT-------是该程序块输出,他能够被本程序块读写能力,别的程序流程根据管脚只有读数写不出来;
IN_OUT--- 输出自变量 本程序块和其它程序流程都能够读写能力这一管脚数值。西门子系统PLC全国各地代理商
TEMP -----临时变量,说白了是临时存放数据的自变量。这种临时性的文件存储在CPU工作中存放区域部分数据信息局部变量(L局部变量)中。
STAT-------在PLC运作期内自始至终被存放。S7 将静态变量界定在环境db块(只对FB来讲,FC和OB无静态变量),在被启用块运行中,能读取或修改静态变量;被启用块完成后,静态变量保存在db块中。
为什么界定的FB,FC块,数次启用后程序流程错乱?
针对,数次调用的程序块,FB块提议拆换启用不一样背景DB;FC就需要保证所使用的存储地址不能重复,即每一次启用,块中调用的详细地址不能重复。
为什么带有计时器或计数的FB或FC一次启用ok,数次启用时计时器或电子计数器错乱?
针对数次调用的FB,FC,若为S7计时器,电子计数器,则可以在IN插口中界定TIMER或Counter,每启用一次FB或FC,均赋不同类型的计时器或电子计数器号。
若为IEC计时器,电子计数器,则可以在IN接口标准Block_DB,每启用一次FB或FC,均赋不同类型的DB块给这其中的IEC计时器或电子计数器。
临时变量造成的烦恼
临时变量能够在实施快OB、作用FC和应用FB中应用,当块实行时他们被用于临时存储数据信息,一旦块实行完毕,局部变量地址要被分配用以其他程序块应用,此详细地址上的数据不被清零,直至被程序块授予新值。西门子系统PLC全国各地代理商
必须遵照“先取值,再用”的基本原则。
因而,有比较常见的三种情况造成程序执行异常:
1. 某一块程序执行时断时续,在其中某一标值或几个标值有时候异常
此难点在于,一定遵照“先取值,再用”。不然,TEMP的值在每一个扫描周期逐渐未有明确取值,此详细地址的值无疑是随机事件。
2. 好几个块应用TEMP,单用任意一个都正常,没法一起正常启动
此难点在于,TEMP无法先取值,再用;程序块1的TEMP里的标值并没清零,反而是CPU运作模式启用此详细地址应用或者直接分给程序块2应用,造成这一TEMP详细地址并不以0,因而程序流程错乱。
因为内存运行体制并不是公布,因而,这一分派全过程看上去是随机事件。这可能造成,程序流程数次运行状况下正常的,运作一段时间后出问题。
只需遵照“先取值,再用”的基本原则,就能防止。
TEMP难以实现锁紧 西门子系统PLC全国各地代理商
此难点在于,TEMP标值不能像M点处Q点一样维持上一个周期标值;TEMP必须在每一个扫描周期有一个很明确的取值,即先取值(写),再用(读写能力)
解决方法,FB可以使用STAT静态变量;FC可以使用M区或全局性DB详细地址。
汇总,使用临时变量TEMP时:
1.不可以先用,再取值
2.不太适合锁紧电磁线圈
不太适合升高,下降沿
碰到以上具体情况,FC块可采取M区或全局性DB详细地址;FB块也可以采用本身环境DB的STAT静态变量