技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 三菱PLC > 三菱FX PLC学习之数值运算指令(上)

三菱FX PLC学习之数值运算指令(上)

吴翠萍 发布于2020-10-15 15:44 55 2 标签:三菱PLC,三菱FX PLC

【点击领取】三菱案例 | 西门子案例 | 电工手册 | 工具箱 软件

【点击获取】三菱PLC例程117个|西门子PLC例程777个

【点击下载】2020新电工仿真软件


所谓数值运算,就是通过加减乘除来实现数值的变换。在PLC中,数值运算的指令不算难,难的是怎样理解PLC对这些数值的定义与处理方式。所以,我将这部分知识分为上下两篇文章来述说。



在学习数值指令之前,我们得先了解这些数值有哪些特点。

在数学中,数的分类有很多,那在PLC中,数值的分类是不是也有很多的?在学习之前,看到数值运算指令,我顿时瑟瑟发抖,不会在PLC中也要学习数学吧!



后来才发现,是我杯弓蛇影了,PLC中的数值,除了我之前所说的各种进制数外,其实也不过是有整数与小数之分、整数与负数之分而已。这让我松了一口气。那么,我们正式开始这次的学习分享吧!


一、PLC的正数和负数

在数学中,负数和正数的区别,在于前面的正负号,例如-5和 5,而PLC中是不是也是这样的呢?并不是的。



PLC中,正负之分是通过高位(b15或b31)的值来判定的。高位为0表示正数,高位为1表示负数。

例如数据寄存器D0中高位b15=0,表示D0的值为正数;若b15=1,那么D0的值就为负数。


另外,除了高位用于区分正负之外,其他位(b14…b0或b30…b0)的值也有区别,这主要是体现在负数的表示中。在说明这一点之前,我们先来了解一下什么是原码、反码和补码。

在数字电路中,数码有原码、反码和补码之分,这样可以使得数值运算变得更为简单。结合符号位(高位),所谓原码,是指数值本身,例如十进制数 11、-5用二进制数表示的原码分别为01011、10101,此时高位的“0”、“1”为符号位。



在数字电路中规定,正数的原码=反码=补码,也就是正数的原码、反码和补码都是其本身,如上图所示的 11,其反码和补码也是01011。

而负数就不一样了,符号位始终保持不变,负数的反码就是对各数值位分别取反,如上图所示的-5,反码就是把1 0101变成1 1010。而负数的补码等于其反码加1,如1 1010 1=1 1011。


那么,反码和补码存在的意义又是什么呢?其实,补码的作用就是使运算变得更方便快捷,一个数减去另一个数,就等于这个数加上另一个数的相反数的补码,从而把减法运算转化为加法运算。


如下图所示,求解11-5,5的相反数为-5,从而把11-5转化为11 (-5的补码),并舍去进位,后得到的结果恰好为6。



为什么把减法转化为加法就可以变得方便呢?这是因为加法的电路可以更为容易设计,这是数字电路的知识,在此我就不再展开阐述,大家感兴趣的可以自行了解。


类似于数字电路对原码、反码和补码的定义,在PLC中,正数(符号位为0)直接用其原码表示,而(符号位为1)负数就用其补码表示。这说明,数据寄存器中的数据若为负数,那它各个数位的值并不代表它本身的值,而是其补码。例如D0所存的数据为H8003,如下图所示,其高位b15=1,为负数,所以这是补码,不能认为D0的数值大小为-3。



由于高位为符号位,所以PLC中数值的取值范围也会有所不同,如16位和32位的取值范围如下图所示,此时取值范围显然不是±65536(16位)。

另外,PLC中还对两个数作出特别的规定,如图所示的K0和K-32768,特别是B1000 0000 0000 0000不是表示负零。



知道了PLC中对正负数的定义,我们继续往下看它是怎么定义整数和小数的。


二、PLC的定点数与浮点数

在PLC中,也可以根据小数点位置的不同,将数值分为整数和小数。其中整数就属于定点数,那么,所谓定点数具体指的又是什么呢?


1、定点数

所谓定点,是指小数点是固定的,要么在高位的左边、要么在低位的右边。



如上图所示,若将小数点至于数值高位的左边,该数值就为纯小数,所谓纯小数,就是指整数部分为零的数,例如0.12、0.07等;若将小数点至于数值低位的右边,该数值就为整数,没有小数部分,例如7、8、9等。一般都是采用整数的定点数表示,所以在谈及定点数时,很多时候都默认是整数。


结合上文所提的符号位,即带符号的二进制整数称为BIN数。大家细心点也可以发现,编程手册中经常出现“BIN”这个词,没错,它代表的就是二进制整数,而且带有符号。



所以,在之后谈及BIN运算指令时,要注意其数值的正负。


2、浮点数

所谓浮点数,其实就是小数,“浮点”表示小数点是浮动的,随着小数点位置的不同,数值的大小也会有所不同。在了解浮点数之前,我们先来了解一个概念:科学计数法。


(1)科学计数法

科学记数法是一种记数的方法。就是把一个数表示成a×10n的形式。如下图所示,其中底数10是固定不变的,变的是a和n,所以要用科学计数法去表示一个数,只需知道a和n即可。



类似的,在PLC中,浮点数就是用科学计数法表示的,又因为它由两部分构成(a与10n),所以浮点数都是用32位表示,即占用两个字元件。其中又分为十进制浮点数和二进制浮点数。


(2)十进制浮点数

根据上文所提,浮点数用两个连续编号的数据寄存器(Dn 1,Dn)表示。如下图所示,Dn保存浮点数的基数,Dn 1保存浮点数的指数,且两个数都带有符号位。例如(D0)=K666,(D1)=K-2,(D1,D0)就表示了十进制数666×10-2=6.66。



在三菱PLC FX2N中,基数和指数的取值范围各有不同,表示基数的Dn的取值范围为±1000~9999或0,表示指数的Dn 1的取值范围为-41~35。另外,十进制浮点数中,小的数是1175×10-41,大的数为3402×1035。至于为什么是这样,我也不甚清楚,反正这是PLC中的规定。



在PLC中,十进制浮点数是不能直接用来运算的,而是用二进制浮点数进行运算的,但它可以和二进制浮点数相互转换,可用来进行数据监视。这就像是计算机系统,计算机中处理数据是基于二进制数的,但我们查看的时候看到的是十进制数,这是因为计算机把二进制数转换为十进制数以便我们查看。



(3)二进制浮点数

二进制浮点数在PLC中的表示比较复杂,如上图所示,同样是用两个连续编号的数据寄存器表示,其高位(b31)仍然表示符号位,这个符号位表示的该浮点数本身的正负,而不是指数的正负。从上图可以看出,指数N占有8位,即b30~b23,而基数a占有23位,即b22~b0。它们的取值如下图所示,其中b0~b30的值为0或1。



虽然二进制浮点数的表示方式比较复杂,但是能不能完全理解它,都不妨碍我们对浮点数的理解,对数值运算指令的运用。所以,不理解二进制浮点数的表方法,问题不大,能理解二进制浮点数本身就行。


例如在三菱PLC FX3U中想输入浮点数3.14,直接输入“E3.14”就行,但在三菱PLC FX2N中不能直接输入浮点数,想输入浮点数,就得先输入整数,再运用相应指令运算或转化。

知道了这些数值的相关定义和处理方式,那么我们在下篇文章就可以继续分享数值运算的相关指令啦!


后,这次的学习分享就到这里吧!

注:本文章内容都是基于三菱FX PLC 2N所写

选自《三菱FX系列PLC功能指令详解》第五章第27~28课时

技成培训网原创,作者:杨思慧,未经授权不得转载,违者必究!)


技成培训

微信公众号:jcpeixun


技成电工课堂

微信公众号:jcdgkt


技成PLC课堂

微信公众号:jc-plc

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

三菱PLC 三菱FX PLC

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签