浔之漫智控技术(上海)有限公司总部
主营西门子模块 , PLC模块 , 变频器模块 , 触摸屏模块
钦州西门子S7-1200代理商

钦州西门子S7-1200代理商钦州西门子S7-1200代理商钦州西门子S7-1200代理商

SIMATIC S7-1200 (Li, Jia)

小型可编程控制器微信截图_20230228093840.png

SIMATIC S7-1200 (Li, Jia)

小型可编程控制器

CPU模块Firmware  V4.46ES7211-1BE40-0XB0CPU 1211C   AC/DC/Rly,6输入/4输出,集成2AI
6ES7211-1AE40-0XB0CPU 1211C   DC/DC/DC,6输入/4输出,集成2AI
6ES7211-1HE40-0XB0CPU 1211C   DC/DC/Rly,6输入/4输出,集成2AI
6ES7212-1BE40-0XB0CPU 1212C   AC/DC/Rly,8输入/6输出,集成2AI
6ES7212-1AE40-0XB0CPU 1212C   DC/DC/DC,8输入/6输出,集成2AI
6ES7212-1HE40-0XB0CPU 1212C   DC/DC/Rly,8输入/6输出,集成2AI
6ES7214-1BG40-0XB0CPU 1214C   AC/DC/Rly,14输入/10输出,集成2AI
6ES7214-1AG40-0XB0CPU 1214C   DC/DC/DC,14输入/10输出,集成2AI
6ES7214-1HG40-0XB0CPU 1214C   DC/DC/Rly,14输入/10输出,集成2AI
6ES7215-1BG40-0XB0CPU 1215C   AC/DC/Rly,14输入/10输出,集成2AI/2AO
6ES7215-1AG40-0XB0CPU 1215C   DC/DC/DC,14输入/10输出,集成2AI/2AO
6ES7215-1HG40-0XB0CPU 1215C   DC/DC/Rly,14输入/10输出,集成2AI/2AO
6ES7217-1AG40-0XB0CPU 1217C   DC/DC/DC,14输入/10输出,集成2AI/2AO

在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,而功能块可以把加和乘集中到一个块中,直接调用。此时的功能块,其功能其实更倾向于类似子程序的作用。

钦州西门子S7-1200代理商,PLC模块,电源供应,交换机模块钦州西门子S7-1200代理商,PLC模块,电源供应,交换机模块钦州西门子S7-1200代理商,PLC模块,电源供应,交换机模块钦州西门子S7-1200代理商,PLC模块,电源供应,交换机模块

展开全文