课程中心
HOME
课程中心
正文内容
plc编程sub指令 三菱PLC入门必学知识点——功能块指令
发布时间 : 2025-04-02
作者 : 小编
访问数量 : 23
扫码分享至微信

三菱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、工业机器人、电子技术的原创文章和微课,如果你感兴趣请关注我

今天我们要谈一谈西门子S7-1200PLC中常用的四则运算指令

什么是四则运算指令呢?

四则运算指令包括加法指令ADD、减法指令SUB、乘法指令MUL、除法指令DIV四种。

一、加法指令ADD

执行加法指令ADD将输入IN1的值与输入IN2的值相加,并将加得结果存储在OUT设定的寄存器中。

加法指令功能框各端口的定义如下

EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。

ENO: 使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT指定数据类型的允许范围或浮点数为无效值时ENO为0。

IN1/IN2: 要相加的数值,可以是寄存器的地址或常数,单击ADD指令下的星标可以扩展输入的数目。

OUT: 加法计算结果输出,IN1+IN2=OUT,OUT端一般填写寄存器地址。

加法指令小提示: 可以从指令框的“<???>”下拉列表中选择该指令的数据类型,当地址长度与数据类型不匹配时,会将输入数值隐式转换为指定的数据类型,编译不会报错,但运行过程中可能会出错。

二、减法指令SUB

执行减法指令SUB,将由被减数IN1的值减去减数IN2的值,并将结果存入OUT设定的寄存器地址中。

减法指令功能框各端口的定义如下

EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。

ENO: 使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT 指定数据类型的允许范围或浮点数为无效值时ENO为0。

IN1: 被减数,可以是寄存器地址或常数。

IN2: 减数,可以是寄存器地址或常数。

OUT: 减法计算结果输出,IN1-IN2=OUT,OUT端一般填写寄存器地址。

三、乘法指令MUL

乘法指令MUL将输入 IN1 的值与输入 IN2 的值相乘,并将乘积保存在输出 OUT指定的寄存器中。

乘法指令功能框各端口的定义如下

EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。

ENO: 使能输出端,指令正确执行期间ENO输出为1,

IN1: 乘数,可以是寄存器地址或常数。

IN2: 乘数,可以是寄存器地址或常数。

Inn: 可以添加多个相乘的数。

OUT: 输出乘积存入指定的寄存器中。

四、除法指令DIV

除法指令DIV将输入 IN1 的值除以输入 IN2 的值,并将除得的商保存在输出 OUT指定的寄存器中。DIV指令支持各种整型和实数型数据。

除法指令功能框各端口的定义如下

EN: 使能输入,EN为1时执行加法指令,EN为0时不执行。

ENO: 使能输出 ,指令正确执行期间ENO状态为1。

IN1: 被除数,可以是寄存器地址、整数或浮点数,需要与所选数据类型匹配。

IN2: 除数,可以是寄存器地址、整数或浮点数,需要与所选数据类型匹配。

OUT: 商值,输出OUT为执行除法指令得到的商,数据类型为无符号整数,余数被省略不计。

除法指令小提示

在使用除法指令DIV时,OUT输出端为除得的商值,数据类型为无符号整型,余数被省略不显示,如果需要求余数需使用MOD指令。

四则运算指令的实际应用举例

例题:温度传感器将采集到的温度值转换为电压信号输入给PLC,测量范围是0~100Co,数值经过被CPU集成的模拟量通道0(地址为IW64)转换为0~27648的数字,假设转换后的数字为T,试求以为Co单位的温度值。

解:0~100Co的温度值经A/D转换后的数字为0~27648,设转换后得到的数字为T,转换公式为

在编辑指令时,为了保证运算精度,应先乘后除。

因为公式中IW64乘以100的运算结果可能会大于16位整数的最大值32767(IW64为16位存储器,模拟值为二进制的补码,最高位为符号位,0为负,1为正),因此应将IW64中的数值数据类型转换为实数再进行乘除运算。

相关问答

三菱plcdsub是什么指令?

SUB指令是减法指令.SUBD1D0K1M0表示将D1减去D2的运算结果,由起始位置为M0的4个连续中间继电器输出.三菱指令moveD100K1M0转成欧姆龙指令该怎么转K.....

和利时PLCLM系列加减乘除指令怎么找呀?

和利时PLCLM系列加减乘除指令:ADD-加法指令MUL-乘法指令SUB-减法指令DIV-除法指令MOD-取余指令和利时PLCLM系列加减乘除指令:ADD-加法指令MUL-乘法指令SU...

三菱运算指令?

三菱plc运算指令有加减乘除等逻辑运算。三菱PLC二进制运算指令有加法指令ADD,减法指令SUB,数据为有符号二进制数。三菱plc运算指令有加减乘除等逻辑运算。三...

什么是plc功能指令?与基本逻辑指令有什么不同?

以三菱FX2N为例:基本指令如LDLDILDPLDFRSTSETOUT就是我们常规电气控制中的常开点、常闭点、线圈、串联、并联、、、功能指令如:MOV、CMP、SUB、ADD、I...

ctu与add指令的区别?

加法指令ADD和减法指令SUB加法指令是对整数和实数类型的数据进行加法运算,在使用指令的时候,可以在指令上选择操作数的数据类型,此外,还可以点击指令上的图...

三菱plc寄存器为什么用d10?

1.三菱PLC寄存器使用D10。2.这是因为在三菱PLC中,D表示数据寄存器,而10表示寄存器的编号。D寄存器用于存储和处理数据,而编号10则是指定了具体的寄存器地址...

三菱PLC程序如下,为什么2-7的结果是m0m1接通?

因为SUB是二进制减法指令。十进制数K7转换成二进制数为0111。十进制数K2转换成二进制数为0010。二进制减法需要转换成加法,即取减数的反码加1。所以:[D1]-[D0]...

FANUCIOPLC里面的这些东西是什么意思?

A、功能序号B固定定时器C定时器号D预设时间ESUB57是功能序号DIFU上升沿检测F上升沿号GSUB40是功能序号NUMEB定义二进制常数H1是...A、功能....

西门子plc伺服控制实例?

以下是一个基于西门子PLC的伺服控制实例:假设我们需要使用PLC来控制一个伺服电机,让它以不同的速度运行。1.系统硬件配置我们需要一个增量式编码器(Increm...

那位有FANUC系统的说明书0系统0IO-M0IMATE系统报警参数说...

三菱PLC-FX系列常用编程指令一程序流程—功能00~0900CJ条件转移01CALL调用子程序02SRET从子程序返回03IRET中断返回04EI开中断05...

 江苏公务员考试一本通  朝天锅是什么地方的菜 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部