课程中心
HOME
课程中心
正文内容
plc编程中的常数 PLC的加,减,乘,除指令有什么用?其实功能十分强大!
发布时间 : 2025-02-05
作者 : 小编
访问数量 : 23
扫码分享至微信

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中的数值数据类型转换为实数再进行乘除运算。

PLC的各种变量怎样使用?

我最早接触“静态变量”的概念是在计算机C语言的编程中,清楚的记得它需要用"static"关键字来声明。静态变量(Static Variable)其实也是一种变量(Variable),因此在介绍静态变量(Static Variable)之前,我们先来介绍下在计算机和PLC的编程中“变量(Variable) ”的概念。

1 什么是变量

所谓“变量 ”,是在程序的运行过程中,其值可以根据某些条件而发生变化的量。与“变量”相对的是“常量(Constant) ”,顾名思义,常量的值在整个程序的运行中保持不变。

变量的名字称为“变量名”,变量名通常是一个助记符,用来表示一个物理地址。在这个地址上存放着变量的值。

变量有两个特性:作用域和生命周期。

2 全局变量与局部变量

变量的作用域是指变量的作用范围,也就是在哪些范围内该变量是有效的。根据作用域的不同,变量可以分为全局变量(Global Variable)和局部变量(Local Variable)。

全局变量在整个程序范围内都有效。

在C语言中,全局变量是在函数外部声明的变量。比如下面C语言代码中的“a”和“x”都是全局变量:

注:由于C语言从上而下执行,全局变量x并不能在函数func1中访问。

在西门子S7系列PLC的编程中,那些存放在公共存储区的变量都属于全局变量。公共存储区包括输入缓存区(I)、输出缓存区(Q)、位存储区(M)、全局数据块(Global DB)、定时器(T)、计数器(C)等等。比如,位存储区的M0.0,你可以在主程序(OB)或子程序(FB、FC)中访问它,它是全局的。

局部变量(Local Variable)是只能在某个子程序(FB或FC)中访问的变量。

也就是说,局部变量是私有的,子程序(FB或FC)只能访问其自身内部定义的变量,而不能访问其它子程序内部定义的变量。

从生命周期来看,全局变量的生命周期是整个程序的运行周期。也就是说,只要PLC还运行用户程序,全局变量就一直有效。

而局部变量的生命周期则取决于其存放的位置。

2 临时变量与静态变量

对于S7系列PLC而言,局部变量有两个存放的位置:临时变量存储区 (堆栈)和背景数据块 (Instance DB)。

临时变量存储区(堆栈),也称为局部变量存储区(Local Memory),用来存放FB或FC在运行过程中的临时变量

在S7系列PLC中,FB、FC或者OB都被称为“程序组织单元(POU,program organizational unit)”。PLC为每个POU分配一定数量的临时变量存储区,在S7-300/400 PLC中,这个区域的大小为256字节;在S7-200 Smart PLC中,这个区域的大小为64字节。

临时变量存储区中的变量称为“临时变量 ”,它们只在当前POU运行时有效。当POU运行结束后,该变量将被释放(无法保存)。

注:当POU由于中断而被挂起时,其临时变量会被保存,以便下次中断现场恢复后继续执行。

如果想保存程序运行的中间值怎么办呢?答案是使用静态变量(Static Variable)。

在博途(TIA Portal)环境或Step7开发环境中,功能块(FB)接口有“Static(STAT)”一项。所有在“STAT”栏内定义的变量都将会被存放到背景数据块中。在FB运行结束后,“STAT”中定义的变量不会被释放。这种变量称为“静态变量 ”。如下图中的变量“STAT_test1”和“STAT_test2”:

注:FB中的IN、OUT参数也会保存到背景数据块中。背景数据块中的数据只能被拥有它的功能块(FB)访问。

说到这里,你应该明白了吧?静态变量从作用域上分属于局部变量;从生命周期上来看,它与用户程序的生命周期相同。临时变量也属于局部变量,不过其生命周期短,仅在POU运行的过程中有效。

相关问答

在PLC中,什么是十进制常数-fairy哟的回答-懂得

十进制常数就是我们日常用的十进制数,只是在PLC中还经常用到二进制数和十六进制数,所以才给它加上一个十进制数的前缀加以区分在PLC中,十进制数一般...

如何理解PLC编程中变量的概念,变量的由来和意义,以及如何使用?

如何理解PLC编程中变量的概念,变量的由来和意义,以及如何使用。首先PLC中的变量指的是内置的输入输出继电器、辅助继电器、状态、计数器、数据寄存器等各种软...

西门子plc常量的表示?

回答如下:西门子PLC常量的表示可以使用以下方式:1.位常量:使用字母“B”和位地址来表示,例如B0.0表示第0个字节的第0位。2.字节常量:使用字母“B”和字...

三菱plc如何把常数编转换成字符串?

把那些指令记住啊,指令表和梯形图是互换的,编程软件上可以自动转换成指令表,因为PLC只能识别指令,不能识别梯形图,在编程的时候软件会自动转换把那些指令记住...

plc中KT怎么用?

在PLC中,KT是一个计时器指令,用于实现定时控制功能。KT指令可以配置一个计时器,并且可以控制计时器的启动、停止和复位。其语法格式如下:KTTimer,Set,EN,...

plc中四则运算怎么实现?

plc中四则运算怎么现实,这个应该不是很难根据编程手册中的基本指令即可完成。这里面需要注意几个问题,对于使用三菱plc的编程者来说,有整型的还有浮点型的四则...

在PLC指令怎么区分K是常数还是地址?

K:日系和中国的PLC(如台达)表示10进制常数,说俗点意思就是只要是K带头的,后面的数字就是一个十进制数字K:日系和中国的PLC(如台达)表示10进制常数,说俗点意思...

PLC中MOVK10K1Y0怎么理解?

传送指令,把常数10的二进制数值状态传送到Y0Y1Y2Y3,10的二进制为1010,如果程序开始运行,那么Y3Y1,输出,Y2Y0停止传送指令,把常数10的二进制数值状态传送到Y0Y...

plc计时单位是什么?

1.如果是三菱的plc,100ms2.三菱FX2型PLC的定时器T1的计时单位为100ms,若设定值直接用常数K,K设定为100,即定时时间T=10S。三菱FX1S型PLC的定时器T35的计时单...

plc计数器编码采用几进制?

数制,即数的制式,是人们利用符号计数的一种方法。数制有很多种,常用的有十进制、二进制和十六进制。在S7系列PLC中表示二进制常数时,需要在数据之前加2#;表...

 倚天屠龙记九阳神功  来啊 互相伤害啊 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

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

热线

188-0000-0000
专属服务热线

微信

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