三菱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控制器编程方法,以利于后续产线设备的维护与管理。
一、 功能块编程
a) 编程语言
采用复合 IEC6113-3 标准的编程语言进行 PLC 程序设计,应首选 LAD 作为块的编程语言,因为 编程语言 LAD 可为维护人员提供更轻松的诊断和更快速的修改。
b) 编程规则
1. 功能块程序避免访问全局常量。否则,该模块将无法再模块化使用。
2. 数据块始终存储在CPU的RAM中。仅在特殊情况下才允许使用装载存储器存储数据块。
3. 优选使用多实例代 替单实例。
4. 功能块之间数据访问通过输入输出接口访问。
c) 注释
1. 块注释
块注释必须 以一行或几行的形式放在相应代码段的前面。每个块注释内容格式包含以下各项。
Ø 公司名称
Ø 库名称
Ø 已测试固件版本的 PLC(例 如 S7-1511 V1.6)
Ø 创建时的软件版本
Ø 使用限制(例如某些 OB 类型)
Ø 要求(例如,其他硬件)
Ø 功能说明
Ø 带有作者和日期的图块版本
如图 1 所示
(图1 块注释)
2. 线路注释
如果可能的话,必须在代码行的末尾添加行注 释,或者,应在相应代码行的前面添加注释。
d) 功能块引脚
1) 输入输出没有前缀;
2) 通过块接口进行数据交换;
3) 如果多个FB或FC中需要数据,则通过块接口(输入,输出和InOut接 口)处理数据交换。禁止直接访问FB外部的静态变量;
4) 对于基本数据类型(例如WORD,DWORD,REAL, INT,TIME类型),应使用输入或输出接口类型;
5) 对于基本数据类型,仅当在块的外部和内部写入时才使用 InOut接口类型;
6) 如果传输了许多参数,则应尝试将 它们封装在PLC数据类型中。然后,应将此PLC数据类型声明为InOut标记;
7) 对于结构化标签(例如,ARRAY,STRING等类型) 和PLC数据类型,通常应使用InOut接口类型;
e) 标签声明
静态和临时: 为了能够从代码中的传输和输出参数中清楚地分离出静态和临时标签,使用 标签前缀。前缀静态标签:stat;临时标签:temp;
f) 具有执行的块
流程从 execute 参数的上升沿开始,并采用输入参数中的未决值。
输入输出信号时序图如下图 2 。
(图2 输入输出时序图)
1) 使用Execute下降沿 重置Error和Commandaborted。
2) 执行时,FB的功能不会随着Execute下降沿而终止。
3) 如果Execute已经为FALSE,并且Busy为False,仅Error和Commandaborted 等待一个周期。
4) 当块仍在执行时,请求执行时具有上升沿的新作业。
5) 如果处理作业被更高优先级或同等优先级的 作业(另一个块/实例的中断)中断,则Commandaborted由该块设置。它立即中断剩 余的作业处理。
g) 启用块
设置启用参数将启动作业。只要保持启用设置,作业处理就处于活动状态,并且可以采用新值并连续对其进行处理。重置 enable 参数将终止作业。如果启动了新作业,则该块将进入其初始状态,并且可以全新地进行切换和配置,如下图 3,4 所示。
(图3 功能块示意)
(图4 作业时序图)
1) Error为True复位并停止FB的所有功能。如果FB能够自动复位,Busy 仍为True
2) 消除错误后,FB状态恢复
3) 错误必须由用户处理的错误,需停止FB功能,同时复位Busy状态。
4) 使能为False时Error停止输出。
5) Valid 为TRUE表示该块已激活,没有待处理 的错误,并且因此,FB的输出有效。
6) Enable为False,复位FB所有输出。
7)
《PLC编程规范》完结,更多干货后续持续更新,这些都是我们在给客户编写程序必须要遵循的编程标准,大家可以收藏使用,如果遇到问题或者不能理解的地方可以私聊或评论留言;
希望大家可以支持小编,你们的支持是我最大的动力,如果觉得小编写的文章有用请记住我们是智控教育团队的技术老师,我们正在全新的改革PLC培训的风气,将正在实用的技术分享给工控人,而不是理论性的去抄一抄,制作那些没有营养的文章;
下一个专题:《设备安装标准化规则》 规范定义设备的外观、机械、电气及设备配件的统一型号等相关标准,使设备标准化、目视化、规范化,保证生产稳定进行。
相关问答
西门子plc300功能块编程方法?
西门子PLC300功能块编程方法可以按照以下步骤进行:确定需要使用的功能块:首先需要确定所需的功能块,可以在西门子的官方网站上查找可用的功能块,或者参考PLC3...
如何调用欧姆龙cp1h内部功能块?
欧姆龙PLC功能块编辑:使用功能块的主要目的是促进良好的结构化编程,功能调用;让复杂的程序创建的代码更少,更易于程序的管理。一个功能块由块头和块体组成块...
plc功能模块划分作用?
PLC即可编程逻辑控制器实质是一种专用于工业控制的计算机,其基本构成为:电源模块、CPU模块、存储器、I/O输入输出模块、底板及机架模块、通讯模块、功能模块等...
plc运算处理功能?
简单可编程逻辑控制器的运算功能包括逻辑运算、计时和计数功能;普通可编程逻辑控制器的运算功能还包括数据移位、比较等运算功能;较复杂运算功能有代数运算...
plc有哪些软元件用于编程?
有:1.输入继电器(x)2.输出继电器(Y)3.辅助继电器(M)在PLC的编程语言中,涉及X、Y、M、S、T、C等多种PLC内部的编程元件,这些元件并不表示实际的物理器件...10...
欧姆龙plc与变频器功能块通讯程序怎么写?
编写欧姆龙PLC与变频器功能块的通讯程序通常需要使用欧姆龙PLC的特定指令来实现。以下是一个大致的过程,具体操作可能会因使用的型号和软件版本而有所不同:1...
plc报警程序怎么编写?
编写PLC报警程序需要考虑以下几个步骤:定义报警条件:首先需要确定哪些条件会触发报警,例如某个设备的温度超过设定值、某个传感器的读数异常等。设计报警逻...
plc编程方法有几种?
PLC编程方法有以下几种:1.梯形图编程:梯形图编程是最常用的一种PLC编程方法,使用图形化的方式来表示逻辑控制程序。梯形图编程类似于电气图,可以直观地表示...
施耐德都有什么系列的PLC?都有什么编程软件?-ZOL问答
施耐德都有什么系列的PLC?都有什么编程软件?施耐德施耐德PLC主要有以下系列:1、NEZAPLC(TSX08系列)2、QuantumPLC(140系列)3、MicroPLC(TSX...
plc编程是什么?
PLC编程是一种用于数字计算操作的电子系统,专为工业环境应用而设计。它使用可编程存储器,存储用于执行逻辑运算,顺序控制,定时,计数和算术运算等操作的指令...