PLC 功能块

合集下载

西门子 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就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。

PLC编程语言CFC(连续功能块图) - plc

PLC编程语言CFC(连续功能块图) - plc

PLC编程语言CFC(连续功能块图) - plc IEC61131-3标准中,制定了plc 的六种编程语言,分别是IL,LD,FBD,ST,CFC,SFC。

它们各有千秋,适用不同的场合。

今天就跟大家介绍一下CFC。

CFC,是指连续功能块图。

有些人认为它是dcs的编程语言,其实这种认识是片面的,是盲人摸象的认知,最初,这种语言主要用在过程控制中,比如西门子的PCS7,以及各种DCS系统中。

因为过程控制就是一系列连续的控制,比如,各种化学反应,都是一环套一环,而连续功能图正好符合这种控制要求,所以就在DCS中大规模应用。

其实,PLC也是可以用这种编程方式的,毕竟编程不是目的,实现工艺才是目的,只不过这种语言在PLC中应用很少,我第一次接触也是在CODESYS的PLC中。

其实,CFC 就是一种可以自由移动的FBD,它比FBD更自由更灵活。

只要你掌握了FBD,就可以轻松掌握CFC,而FBD,又和LD有着千丝万缕的联系。

所以,CFC是一种非常简单,容易入手的编程语言。

我们不妨看一个例子CFC编程语言如上图所示,这是一个典型的CFC编程语言,这段程序是PLC通过以太网口使用MODBUSTCP协议和远程机器人交互数据,程序我只截取了一部分,但已经包含了大部分CFC的元素。

黄色荧光笔部分:这部分是程序的注释,你可以自由输入各种文本,PLC是不会编译的。

红色圆圈部分:这部分是个黑点,和我们电路图中的实心点的意思是一样的,表示电路是相交相通的。

蓝色圆圈部分:这部分没有黑点,同样,和电路图是一样的,表示电路是相交但不相通。

淡蓝色圆圈部分:数字是软件自动加上的,表示执行顺序,什么意思呢?PLC是循环扫描的,由于CFC可以自由移动,因此,循环扫描可能没梯形图那么直观,就加上数字,表示扫描顺序。

以上,就是CFC 的关键元素,至于其他的输入,输出,功能块调用和FBD是一模一样的。

个人认为,CFC可以自由移动的原因,在高速计数,运动控制,总线通讯等大批量使用功能块,而且功能块之间联系很多的场合是非常方便的。

欧姆龙PLC功能块的制作与应用教学内容

欧姆龙PLC功能块的制作与应用教学内容

欧姆龙PLC功能块的制作与应用在PLC控制系统中,需要多次调用某种连续功能类似的功能时,可以将所需的功能进行打包封装成功能块,这样可以实现功能复用。

再在梯形图中直接调用经过检测的功能块即可,从梯形图上来看简洁,从PLC内存来看,这样可以减少内存量。

一:制作梯形图形式功能块。

在CX-Programmer左下角功能块右键,插入梯形图,新建功能块文件名。

在梯形区域编写梯形图指令。

当遇到变量时,可在编写梯形图时,定义。

比如“TEMP”数据类型为”REAL” 使用的范围为“内部”(即表示此变量生命周期在此功能块内部),在数组大小设置“3”,意思为定义3个数据类型为浮点数的变量。

同样对功能块的“输出”与“输入”进行定义。

注意“输入”定义的为INT,输出为LREAL。

二:制作ST文本形式功能块。

同样在功能块插入选择ST文本。

按照ST文本的编写规则编写ST代码,本次包含算法为将整数转换为浮点数再进行浮点四则运算之后执行指数幂操作,最后再将原运算后的长浮点数转换为普通浮点数。

因为此运算简单,无需定义内部变量,只需要定义输入与输出端口即可。

注意此处将OUT 定义为REAL(普通浮点数)。

三:执行编译命令。

在编写完梯形图形式功能块与ST文本形式功能块后,需执行编译命令,来看查编写的功能块是否存在语句错误或者指令错误。

比如此文本因为将原长浮点数转换为普通浮点数,将会影响到数据的精确度,所以在编译结果中就已提示为“警告”。

当编译存在“错误”时,需重要检查功能块,警告只是作为一种提醒,对功能块不影响。

四:循环段中插入功能块。

1:段1插入的为使用梯形图形式的功能块;2:段2插入的为使用ST文本形式的功能块;3:段3为直接在梯形图中使用指令来实现功能块内部的算法;4:段4分别将梯形图功能块与ST文本功能块产生的结果与直接用指令运算产生的结果进行比较。

从而可以判断三者运算后的结果一致性。

指令解析:FLT:将二进制转换为浮点数,为后面的浮点运算作准备;/F :浮点数除法;-F :浮点数减法;PWR:执行指定数据的指数次方(幂操作)。

汇川plc气缸手动功能块

汇川plc气缸手动功能块

汇川plc气缸手动功能块
汇川PLC(可编程逻辑控制器)通常用于控制工业自动化系统中的各种设备和机器。

关于气缸手动功能块,我可以从不同角度来回答你的问题。

首先,气缸手动功能块通常用于控制气动气缸的手动操作。

在PLC编程中,可以使用气缸手动功能块来实现对气缸的手动控制,例如手动打开或关闭气缸,手动控制气缸的位置等。

这个功能块可以与传感器、按钮等设备配合使用,实现对气缸的手动操作。

其次,从编程的角度来看,气缸手动功能块通常包括一些特定的指令和参数,例如手动打开或关闭气缸的指令、手动控制气缸位置的参数等。

在PLC编程软件中,程序员可以使用这些功能块来编写程序,实现对气缸的手动控制。

此外,气缸手动功能块还可以与其他功能块组合使用,实现更复杂的控制逻辑。

例如,可以将气缸手动功能块与计时器功能块、逻辑运算功能块等组合使用,实现对气缸的定时控制、逻辑控制等功能。

总的来说,气缸手动功能块是PLC编程中的一个重要部分,它可以帮助工程师实现对气缸的手动控制,提高工业自动化系统的灵活性和可控性。

希望这些信息能够帮助你更好地理解气缸手动功能块在PLC控制中的作用。

plc程序 电机控制均匀磨损功能块

plc程序 电机控制均匀磨损功能块

plc程序电机控制均匀磨损功能块PLC程序:电机控制均匀磨损前言:PLC是可编程逻辑控制器的缩写,是一种集成了数字计算机技术、控制技术和通信技术于一体的新一代控制器。

PLC程序是通过程序来控制设备运行的逻辑指令集合。

本篇文章将详细介绍电机控制均匀磨损功能块的PLC程序设计。

一、需求分析:1.电机磨损不均匀会导致设备寿命缩短,需要设计一种功能块来实现电机的均匀磨损控制。

2.根据电机使用时间的长短来决定磨损速度,即使用时间越长磨损速度越慢,使用时间越短磨损速度越快。

3.通过PLC程序实现电机启动、停止和磨损控制。

二、程序设计:1.程序命名:MotorWearControl。

2.输入输出:(1)输入:运行指令,计时器。

运行指令:I0.0 计时器:T0(2)输出:电机启动指令,电机停止指令。

电机启动指令:Q0.0 电机停止指令:Q0.13.程序实现:(1)程序开头:-----------------------MotorWearControl: LD I0.0-----------------------(2)电机启动:(3)电机停止:四、总结:通过以上的PLC程序设计,我们实现了电机的均匀磨损控制功能。

程序通过判断电机的运行时间,实现了电机的磨损速度随时间变化的功能。

通过PLC程序的控制,我们可以提高设备的使用寿命,减少设备的磨损,从而降低设备的故障率和维修成本。

总之,PLC程序的设计需要根据实际需求进行分析,确定输入输出信号,利用PLC的逻辑指令实现对设备的控制。

本篇文章以电机均匀磨损控制为例,详细介绍了PLC程序的设计过程和实现方法,希望对读者有所帮助。

同时,读者也可根据实际需求进行灵活的程序设计,以满足不同的控制目标。

西门子PLC中FB和FC区别、管脚定义、临时变量引起的麻烦

西门子PLC中FB和FC区别、管脚定义、临时变量引起的麻烦

西门子PLC中FB和FC区别、管脚定义、临时变量引起的麻烦FB和FC区别FB--功能块,带背景数据块 FC--功能,相当于函数FB,FC块均相当于子程序,既可以调用其它FB,FC块,也可以被OB,FB,FC块调用。

他们之间的主要区别是:1. FB使用背景数据块作为存储区,FC没有独立的存储区,使用全局DB或M区2. FB局部变量有STAT和TEMP,FC由于没有自己的存储区因此不具有STAT,TEMP本身不能设置初始值。

本质上,FB,FC的实现目的是相同的;无论何种逻辑要求,FB,FC均可实现。

只是实现方式效率不同,这也和工程师个人编程习惯有关。

FB块优点:1. 易于移植性,对于相同控制逻辑不同参数的被控对象,只要使用不同的背景DB,同一个FB块就可以方便2. 多重背景,减少重复工作,提高效率3. 多次调用时,参数修改方便4. 有独立的存储区FC块优点:1. 小巧灵活,对于非多次调用的程序更易理解2. 不占用额外的存储资源FB,FC块管脚定义IN---------变量是外部输入的,只能被本程序块读,不能被本程序块写;OUT-------是本程序块输出的,他可以被本程序块读写,其他程序通过引脚只能读值不能写;IN_OUT--- 输入输出变量本程序块和其他程序都可以读写这个引脚的值。

TEMP -----临时变量,顾名思义是暂时存储数据的变量。

这些临时的数据存储在CPU工作存储区的局部数据堆栈(L堆栈)中。

STAT-------在PLC运行期间始终被存储。

S7 将静态变量定义在背景数据块(仅对FB而言,FC和OB无静态变量),当被调用块运行时,能读出或修改静态变量;被调用块结束后,静态变量保留在数据块中。

为何定义的FB,FC块,多次调用后程序混乱?对于,多次调用的程序块,FB块建议更换调用不同的背景DB;FC则需要确保使用的存储地址不重复,即每次调用,块中调用的地址不重复。

为何含有定时器或计数器的FB或FC单次调用ok,多次调用时定时器或计数器混乱?对于多次调用的FB,FC,如为S7定时器,计数器,则需要在IN 接口中定义TIMER或Counter,每调用一次FB或FC,均赋不同的定时器或计数器号。

plc中块的概念

plc中块的概念

plc中块的概念
在PLC(可编程逻辑控制器)中,“块”是一个重要的概念,它有助于组织程序的结构并提高可读性。

块可以被视为一个独立的代码段,其中包含了特定功能或任务的程序代码。

块之间相对独立,互不干扰,这有助于提高程序的模块化和复用性。

通常,PLC中的块可以分为以下几种类型:
1.主块:主块是程序的主入口点,当PLC上电或重新启动时,它会自动
执行主块中的程序。

主块通常包含程序的初始化步骤和启动逻辑。

2.功能块:功能块包含具有特定功能的程序代码。

这些功能可以在其他
块中被调用,从而避免重复编写代码。

功能块具有输入、输出和中间变量,用于处理数据和控制逻辑。

3.组织块:组织块用于定义程序的执行结构和顺序。

例如,循环组织块
可以重复执行一段程序代码,直到满足特定条件。

4.背景数据块:背景数据块用于存储程序中使用的全局变量和数据结
构。

这些数据可以在整个程序中共享和访问。

通过合理地使用块,可以简化程序的结构和提高代码的可维护性。

同时,块的使用还有助于实现程序的模块化设计,使得程序更易于阅读、调试和扩展。

在编写PLC程序时,合理地组织和利用块是非常重要的。

GEPLC功能块定义

GEPLC功能块定义

GEPLC功能块定义GE PLC 功能块定义⾸先要看你是哪个系列,不同系列⽀持的功能块⽅式不同。

⾃定义功能块有以下⼏种⽅式:1.⾃定义不带引脚的⼦程序块。

可以建个⼦程序块,⾥⾯⽤到的变量定义好地址,其它程序反复调⽤,调⽤前给⼦程序块⾥的变量赋值。

在⼀个扫描周期内完成所有调⽤,不⽀持中断,因此⼦程序块不能⽤上升,下降沿之类的指令,计时器也不要⽤。

2.BLOCK(块):和1的区别就是⽀持中断。

没有引脚。

3.parameterized block(参数块):带参数的BLOCK,根据系列不同,⽀持的参数数量不同。

参数块不能定义块的局部变量。

(memory)4.function block(功能块):parameterized block的加强版,可以定义块的局部变量,⽽且可以定义静态变量,如果⾃⼰编的PID,⽤这个块是⼀种⽅式。

不⽀持中断。

5.超强块------C块:C语⾔编写的功能块。

分为三类。

第⼀类,BLOCK,和上⾯讲到的BLOCK不同,这个BLOCK最多可以定义七个输⼊,⼀个输出。

第⼆类,FUNCTION BLOCK(FBK),可以定义七对输⼊输出。

第三类,standalone C program,独⽴的C程序,没有引脚,这个功能块不⽤在主程序中调⽤,和主程序是顺序执⾏的,并列关系。

C块的⽣成是由GE的专⽤编译软件来完成的,9070,9030的编译软件是plc_C_TooLKIt,PAC系列的是PACSsystems C Toolkit。

以上介绍完功能块的种类,下⾯说⼀个不同系列⽀持哪种。

1.versamax:只⽀持12.9030,只⽀持1,5。

说明:9030只⽀持C块的BLOCK,FBK两种,只能在程序中调⽤。

需要在编译软件的BLDVARS⽂件中定义编译成哪种⽅式,不⽀持指针。

3.9070:⽀持1,2,3,5。

说明:9070的参数块,最多可以定义七对输⼊输出;⽀持三种C块。

需要在编译软件的BLDVARS⽂件中定义编译成哪种⽅式,不⽀持指针。

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

功能有数字量输入、输出;模拟量输入、输出以外,还有宽温型了。

另外还有高数计数器模块,以太网通讯模块,串口通讯模块,分布式I/O(ET200M)等,楼上的大哥都说过了,数字量输入一般用于阀门,闸门,位置量的开关到位反馈,数字量的输出一般用于阀门,闸门等开关控制,当然这里的阀门和闸门是指非调节型的,而模拟量输入可以用于可调节型阀门闸门的开度反馈,以及向液位,流量,速度等模拟量值的反馈,而输出则是对上述进行控制。

也就说这么多了,这四个是最常用的,基本的控制用这四个就够了。

还介绍一点参考资料吧,去深圳市中控自动化工程有限公司看一下吧!你会了解的更多。

相关文档
最新文档