PLC编程学会顺序功能图,编程一点就通!
功能表图又称做状态转移图,它是描述控制系统的控制过程、功能和特性的一种图形,也是设计plc的顺序控制程序的有力工具。功能表图并不涉及所描述的控制功能的具体技术,它是—种通用的技术语言,可以用于进一步设计和不同专业的人员之间进行技术交流。
各个PLC厂家都开发了相应的功能表图,各国家也都制定了功能表图的国家标准。我国于1986年颁布了功能表图的国家标准(GB6988.6-86)。
如图1所示为功能表图的一般形式,它主要由步、有向连线、转换、转换条件和动作(命令)组成。
图1 功能表图的一般形式
PART1.步与动作
(1)步在功能表图中用矩形框表示步,方框内是该步的编号。如图1所示各步的编号为n-1、n、n+1。编程时一般用PLC内部编程元件来代表各步,因此经常直接用代表该步的编程元件的元件号作为步的编号,如M300等,这样在根据功能表图设计梯形图时较为方便。
(2)初始步
与系统的初始状态相对应的步称为初始步。初始状态一般是系统等待启动命令的相对静止的状态。初始步用双线方框表示,每一个功能表图至少应该有一个初始步。
(3)动作
一个控制系统可以划分为被控系统和施控系统,例如在数控车床系统中,数控装置是施控系统,而车床是被控系统。对于被控系统,在某一步中要完成某些“动作”,对于施控系统,在某一步中则要向被控系统发出某些“命令”,将动作或命令简称为动作,并用矩形框中的文字或符号表示,该矩形框应与相应的步的符号相连。如果某一步有几个动作,可以用如图2所示的两种画法来表示,但是图中并不隐含这些动作之间的任何顺序。
图2 多个动作的表示
(4)活动步
当系统正处于某一步时,该步处于活动状态,称该步为“活动步”。步处于活动状态时,相应的动作被执行。若为保持型动作则该步不活动时继续执行该动作,若为非保持型动作则指该步不活动时,动作也停止执行。一般在功能表图中保持型的动作应该用文字或助记符标注,而非保持型动作不要标注。
PART2.有向连线、转换与转换条件
(1)有向连线
在功能表图中,随着时间的推移和转换条件的实现,将会发生步的活动状态的顺序进展,这种进展按有向连线规定的路线和方向进行。在画功能表图时,将代表各步的方框按它们成为活动步的先后次序顺序排列,并用有向连线将它们连接起来。活动状态的进展方向习惯上是从上到下或从左至右,在这两个方向有向连线上的箭头可以省略。如果不是上述的方向,应在有向连线上用箭头注明进展方向。
(2)转换
转换是用有向连线上与有向连线垂直的短划线来表示,转换将相邻两步分隔开。步的活动状态的进展是由转换的实现来完成的,并与控制过程的发展相对应。
(3)转换条件
转换条件是与转换相关的逻辑条件,转换条件可以用文字语言、布尔代数表达式或图形符号标注在表示转换的短线的旁边。转换条件X和x分别表示在逻辑信号X为“1”状态和“0”状态时转换实现。符号X↑和X↓分别表示当X从状态0到1和1到0状态时转换实现。使用最多的转换条件表示方法是布尔代数表达式。
PART3.功能表图的基本结构
(1)单序列
单序列由一系列相继激活的步组成,每一步的后面仅接有一个转换,每一个转换的后面只有一个步,如图3a所示。
图3 单序列与选择序列 a)单序列 b)选择序列开始 c)选择序列结束
(2)选择序列
选择序列的开始称为分支,如图3b所示,转换符号只能标在水平连线之下。如果步2是活动的,并且转换条件e=1,则发生由步5步6的进展;如果步5是活动的,并且f=1,则发生由步5步9的进展。在某一时刻一般只允许选择一个序列。
选择序列的结束称为合并,如图5-22c所示。如果步5是活动步,并且转换条件m=1,则发生由步5步12的进展;如果步8是活动步,并且n=1,则发生由步8步12的进展。
(3)并行序列
并行序列的开始称为分支,如图4a所示,当转换条件的实现导致几个序列同时激活时,这些序列称为并行序列。当步4是活动步,并且转换条件a=1、3、7、9这三步同时变为活动步,同时步4变为不活动步。为了强调转换的同步实现,水平连线用双线表示。步3、7、9被同时激活后,每个序列中活动步的进展将是独立的。在表示同步的水平双线之上,只允许有一个转换符号。
图4 并行序列 a)并行序列开始 b)并行序列结束
并行序列的结束称为合并,如图4b所示,在表示同步的水平双线之下,只允许有一个转换符号。当直接连在双线上的所有前级步都处于活动状态,并且转换条件b=1时,才会发生步3、6、9到步10的进展,即步3、6、9同时变为不活动步,而步10变为活动步。并行序列表示系统的几个同时工作的独立部分的工作情况。
(4)子步
如见图5所示,某一步可以包含一系列子步和转换,通常这些序列表示整个系统的一个完整的子功能。子步的使用使系统的设计者在总体设计时容易抓住系统的主要矛盾,用更加简洁的方式表示系统的整体功能和概貌,而不是一开始就陷入某些细节之中。设计者可以从最简单的对整个系统的全面描述开始,然后画出更详细的功能表图,子步中还可以包含更详细的子步,这使设计方法的逻辑性很强,可以减少设计中的错误,缩短总体设计和查错所需要的时间。
图5 子步
PART4.转换实现的基本规则
(1)转换实现的条件
在功能表图中,步的活动状态的进展是由转换的实现来完成的。转换实现必须同时满足两个条件:
1)该转换所有的前级步都是活动步;
2)相应的转换条件得到满足。
如果转换的前级步或后续步不止一个,转换的实现称为同步实现,如图6所示。
图6 转换的同步实现
(2)转换实现应完成的操作
转换的实现应完成两个操作:
1)使所有由有向连线与相应转换符号相连的后续步都变为活动步;
2)使所有由有向连线与相应转换符号相连的前级步都变为不活动步。
PART5.绘制功能表图应注意的问题
(1)两个步绝对不能直接相连,必须用一个转换将它们隔开。
(2)两个转换也不能直接相连,必须用一个步将它们隔开。
(3)功能表图中初始步是必不可少的,它一般对应于系统等待起动的初始状态,这一步可能没有什么动作执行,因此很容易遗漏这一步。如果没有该步,无法表示初始状态,系统也无法返回停止状态。
(4)只有当某一步所有的前级步都是活动步时,该步才有可能变成活动步。如果用无断电保持功能的编程元件代表各步,则PLC开始进入RUN方式时各步均处于“0”状态,因此必须要有初始化信号,将初始步预置为活动步,否则功能表图中永远不会出现活动步,系统将无法工作。
PART6.绘制功能表图举例
某组合机床液压滑台进给运动示意图如图7所示,其工作过程分成原位、快进、工进、快退四步,相应的转换条件为SB、SQ1、SQ2、SQ3。液压滑台系统各液压元件动作情况如表1所示。根据上述功能表图的绘制方法,液压滑台系统的功能表图如图7a所示。
表1 液压元件动作表
元件
工步
YV1
YV2
YV3
原位
―
―
―
快进
┼
―
―
工进
┼
―
┼
快退
―
┼
―
图7 液压滑台系统的功能表图
如果PLC已经确定,可直接用编程元件M300~M303(FX系列)来代表这四步,设输入/输出设备与PLC的I/O点对应关系如表2所示,则可直接画出如图7b所示的功能表图接线图,图中M8002为FX系列PLC的产生初始化脉冲的特殊辅助继电器。
表2 输入/输出设备与PLC I/O对应关系
PLC I/O
X0
X1
X2
X3
Y0
Y1
Y2
输入/输出设备
SB
SQ1
SQ2
SQ3
YV1
YV2
YV3
免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!
三菱PLC入门必学知识点——功能块指令
在PLC的编程语言中,最简单的就是图形语言,如我们所学的梯形图与SFC,这两者在编程软件中都属于简单工程。
而我之前所分享的文章中,讲到的那些基本指令和功能指令,都是基于简单梯形图形式进行示例。其实,对于很多功能(函数),如四则运算、比较传送等,在PLC编程中还有另外一种形式,那就是功能块形式,它们在编程软件中为结构化工程类型。
除此之外,PLC的编程语言中还有比较复杂的文本语言,即ST语言。提及ST语言,简直令我等凡夫俗子望而却步,因为它就是传说中的纯打代码,为了我的头发,ST语言我还是直接放弃吧。
既然放弃了ST语言,那么我今天就来给大家简单分享一下功能块指令的内容吧!
什么是功能块(FB、FUN)
所谓功能块,如下图27-1所示,简单来说,就是可以实现某些特定功能或函数的块,即FB块或FUN块,一般情况下把功能块叫FB块,但其实在三菱PLC中,功能块除了FB块之外,还有FUN块,即函数块。
图27-1
类似于子程序,功能块可以将特定的且需要经常使用的功能打包成一个块,在程序中多次调用,另外还可以打包成一个库文件,用于多台电脑上拷贝使用。这个“经常使用的功能”可以是我们自定义的,也可以是编程软件自带的。
例如电机的起保停程序,我们可以把整个起保停程序打包成一个功能块,如下图27-2所示,该功能块的输入输出、起保停的启动、停止和电机都以标签的形式定义,直到被调用时再由用户指定具体的软元件,如起保停的启动用“X0”、电机用“Y0”等。
图27-2
这个“起保停”的功能块,对应梯形图如下图27-3所示。还是类似于子程序,功能块在调用之前,如果是用户自定义的,显然,用户还需自己先编好一个功能块。
图27-3
当然,和子程序不同的是,这个自定义的功能块,其中的一些触点、线圈等只是用标签命名,如图27-3中的“启动”、“电机”等就是用文字命名的标签。
功能块与功能指令的区别
功能块用于结构化梯形图中,可以自行调用,如下图27-4所示,可以看到,这个结构化梯形图中有很多的块状结构(功能块),除此之外还有一些触点和线圈。所以结构化梯形图和简单梯形图其实区别不大,都是为了实现特定功能的程序。
图27-4
但到底是选用简单梯形图还是结构化梯形图,这就看个人喜欢了。就像是在顺控程序中,你可以用SFC的形式编写,也可以直接编写梯形图,问题不大。
而功能块和功能指令,若是对于一般的功能而言,其实两者区别不大,例如我们要实现两个数的相加:当驱动条件X0成立时,把D0的当前值加上K10,结果保存到D10中。
它可以通过功能指令实现,也可以运用功能块实现。如下图27-5所示为功能指令形式,X0接通,(D0)=K20,执行ADD指令后,D10的当前值为“和”K30。
图27-5
而功能块形式如图27-6所示,依然是X0接通,(D0)=K20,执行程序后,D10的当前值为“和”K30。
图27-6
从以上实现加法功能来看,功能指令和功能块可以自行选择用哪个,但对于较为复杂的功能,显然两种的区别还是比较明显的。这是因为功能块可以自定义,而功能指令却不行。
例如我们要实现D0、D1的值相加,在乘以D2的值,这就要用上两个功能指令ADD、SUB,而功能块可以把加和乘集中到一个块中,直接调用。此时的功能块,其功能其实更倾向于类似子程序的作用。
但更深入的功能块知识,我在这里就不再展开讲解啦,大家如果感兴趣,可以观看我们官网的相关课程哦!我在这里只不过是给大家了解一下,PLC编程中还有功能块这个玩意就行了~
其实,对于初学者,例如我这种小白而言,功能块这部分知识还是有点难度的,所以我还需要更多的时间去深入学习它,所以我也就不在这里班门弄斧了。
最后,希望有更多的志同道合的人(在PLC知识海洋中挣扎的人)和我一起共同努力、共同进步吧!
(来源:技成培训网原创,作者:杨思慧,欢迎大家转发评论,如有不足之处或者建议可在评论区留言)
相关问答
plc功能块图是什么意思?
功能块图使用类似于布尔代数的图形逻辑符号来表示控制逻辑,适合于有数字电路基础的编程人员使用。一般来讲,功能块,就是将一个plc程序中频繁使用到代码,封装...
plc顺序功能图有什么用?
PLC(可编程逻辑控制器)顺序功能图通过图形化编程和连接符号,清晰地展示了系统中不同元件之间的逻辑关系和工作顺序。它用于描述和分析系统的运行逻辑,帮助工...
plc功能图编辑优缺点?
plc功能图编辑优点:稳定,抗干扰能力较强,PLC的IO端口一般都采用24V电压,在工业现场电磁环境较复杂的情况下,这点很重要。集成化,标准化程度较高,PLC自带...
plc控制仪表是什么?
PLC是由早期继电器逻辑控制系统与微机计算机技术相结合而发展起来的,它是以微处理器为主的一种工业控制仪表,它融计算机技术、控制技术和通信技术于一体,集顺...
PLC程序有几种表达方式,也就是编写方式-149****7971的回...
1.梯形图编程2.语句表达式3.步进功能图编程4.高级语言这种是类似加工中心类的编程语言,一般是定位用的,一般PLC是使用梯形图和指令来编程的PLC程...
plc编程1000步能干什么?
plc编程1000步可以通过编程能实现许多控制功能的8位,16位或者是32位的单片机。主要为工业控制而开发的。为了工业运用,它的IO口就做成输入输出接口了。而且还...
plc数据块功能是什么?
plc数据块主要用于存储程序的数据。根据一个数据块是否被划分给一个功能块支配,可将数据块分为全局数据块和背景数据块。全局数据块是指没有被任何功能块支配...
PLC程序设计方法有几种,各有什么特点?
PLC的编程方法有线性化编程、模块化编程和结构化编程i种。线性化编程是将整个用户程序放在主程序OB1中,在CPU循环扫描时执行()BI中的全部指令。其特点是结构简...
S7-PLC仪表常用编程功能块有哪些?-盖德问答-化工人互助问答社区
fc105,fc106,fb41和tdc3000通讯应该用opc吧。fc105,fc106,fb41和tdc3000通讯应该用opc吧。请问有没有功能块具体使用方法本菜鸟学习了。请问...
plc程序怎么变成人机界面?
将PLC程序变成人机界面需要使用人机界面软件,如SiemensWinCC、RockwellFactoryTalkView等。这些软件可以将PLC程序中的数据和信号转换成可视化的图形界面,...