PLC中常用数制及如何转换
数制也称计数制,是用一组固定的符号和统一的规则来表示数值的方法。任何一个数制都包含两个基本要素:基数和位权。
基数:数制所使用数码的个数。例如,二进制的基数为2;十进制的基数为10。
位权:数制中某一位上的1所表示数值的大小(所处位置的价值)。例如,十进制的123,1的位权是100,2的位权是10,3的位权是1。二进制中的 1011 ,左起第一个1的位权是8,0的位权是4,第二个1的位权是2,第三个1的位权是1。
PLC中常用的数制有:十进制,二进制,十六进制,八进制等。此外还有BCD码和ASCII码也偶尔会使用。
十进制(Decimal notation):如1234=1*103+2*102+3*101+4*100,逢十进一,基数为10,单个数是0-9,每位的系数乘于基数(10)的N次方,N为其所处的位数。
二进制(Binary notation):如1101=1*23+1*22+0*21+1*20=13,逢二进一,基数为2,单个数只有0和1, 每位的系数乘于基数(10)的N次方,N为其所处的位数。从第3位至0分别为8,4,2,1,所以二进制也成8421码。如果表示有符号数,则用最高位表示符号,0为正数1为负数。正数以二进制原码表示;负数则以补码存储,即将原码逐位取反再加1。
十六进制(Hexdecimal notation):逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字。
八进制(Octal notation):逢八进一,单个数有0-7,在PLC中常用于编址,数据运算应用较少。
BCD码:(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。通常时钟采用BCD码存储。
ASCII:(American Standard Code for Information Interchange:美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的系统,并等同于国际标准ISO/IEC 646。PLC中数据存储只能以0和1形式,其它数据可通过进制转换成二进制,但是字母和一些特殊符号用什么表示则需要约定一套转换规则,于是美国有关的标准化组织就出台了ASCII编码。
浮点数(float):又称实数(REAL),浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用于近似表示任意某个实数。具体来说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。
在二进制科学表示法中,S=M×2^N 主要由三部分构成:符号位+阶码(N)+尾数(M)。对于float型数据,其二进制有32位,其中符号位1位,阶码8位,尾数23位。符号位:0表示正,1表示负。阶码:这里阶码采用移码表示,对于float型数据其规定的偏置量为127,阶码有正有负,对于8位二进制,则其表示范围为−128~127。比如,对于float型数据,若阶码的真实值为2,则加上127后为129,其阶码表示形式为10000010。尾数:有效数字位,即部分二进制位(小数点后面的二进制位),因为规定M的整数部分恒为1,所以这个1就不进行存储了。下面举例说明:
float型数据125.5转换为标准浮点格式,125的二进制表示形式为1111101,小数部分表示为二进制为 1(小数部分乘以2,小于1则为0,大于1则为1,小数继续乘以2,直到小数部分为0为止),则125.5二进制表示为1111101.1,由于规定尾数的整数部分恒为1,则表示为1.1111011*2^6,阶码为6,加上127为133,则表示为10000101,而对于尾数将整数部分1去掉,为1111011,在其后面补0使其位数达到23位,则为11110110000000000000000。则其二进制表示形式为:0 10000101 11110110000000000000000
那么这些进制之间是如何转换呢?
1.十进制转二进制
方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。
(具体用法如下图)
2.二进制转十进制
方法为:把二进制数按权展开、相加即得十进制数。
(具体用法如下图)
3.二进制转八进制
方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。
(具体用法如下图)
4.八进制转成二进制
方法为:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。
(具体用法如下图)
5.二进制转十六进制
方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。
(具体用法如下图)
6.十六进制转二进制
方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。
(具体用法如下图)
7.十进制转八进制或者十六进制有两种方法
第一:间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制。这里不再做图片用法解释。
第二:直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。
(具体用法如下图)
8.八进制或者十六进制转成十进制
方法为:把八进制、十六进制数按权展开、相加即得十进制数。
(具体用法如下图)
9.BCD码转十进制:因为BCD码是用四位二进制表示一位十进制数,所以转换方法类似二进制转十六进制“取四合一”法,四位组合后转成十进制得到的就是十进制。
以上介绍了PLC中常用进制及相互转换方法,意在让初学者理解进制含义及转换规律。真正使用时可利用计算机提供的程序员型计算器轻松运算出来。
S7-1200 PLC的转换操作指令,你能说出几个?
前面给大家介绍了移动操作指令,接下来就接着介绍一下转换操作指令吧,S7-1200 PLC的转换操作指令也包括有数据类型的转换指令、实数转整数指令、以及用于缩放和标准化指令。
在我们S7-1200 PLC中,转换指令就是CONVERT,我们可以在指令中更改数据类型,相当于所有的转换指令都集合在这个CONVERT指令中,而对于S7-200/200 SMART PLC的转换指令是比较多的,我们需要哪个类型的转换指令就调用哪个指令,不能更改指令的类型,大家在学习的时候可以对比着学习,下面我们就介绍一下S7-1200 PLC常用的移动指令吧。
1、转换指令CONVERT
转换指令是将一种数据类型转换成另一种数据类型的,使用的时候单击指令“???”的位置,然后在下拉列表中选择输入数据类型和输出数据类型。
CONVERT指令支持的数据类型包括有整数、双整数、实数、无符号短整型、无符号整型、无符号双整型、短整型、长实数、字、双字、字节、BCD32等,比如INT TO DINT就是表示把整数转换成双整数。
IN管脚是输入要转换的数据,OUT管脚是转换后的数据,在管脚输入数据类型的时候注意要跟设置的数据类型一致哦。
2、浮点数转整数指令
S7-1200 PLC的浮点数转换指令包括有四舍五入取整指令ROUND、向上取整指令CEIL、向下取整指令FLOOR和截取尾数部分取整指令TRUNC这四个,而S7-200/200 SMART PLC的浮点数转换指令只有ROUND和TRUNC,那么S7-1200 PLC的CEIL和FLOOR指令大家可以着重了解一下,对比着学习效率更高哦。
这里还要提一下的是,前面所说的CONVERT转换指令也是可以实现浮点数转整数的功能的哦,具体想使用哪个指令就看你怎么选择了。
上图的程序中ROUND是对13.7四舍五入输出14,TRUNC是将12.5的尾数部分截取掉,取12进行输出,FLOOR是15.8向下取整变成15,CEIL是将12.4向上取整变成13。
3、缩放SCALE_X和标准化NORM_X指令
缩放和标准化指令通常配合使用来实现模拟量输入和输出的转换,模拟量的转换是有个对应的公式的,这两个指令其实也是根据如下这个公式而来的。
缩放指令SCALE_X用于按照参数MIN和MAX所指定的数据类型和值范围对标准化实参VALUE进行标定,OUT=VALUE*(MAX-MIN)+MIN,其中0.0<=VALUE<=1.0。
标准化指令NARM_X用于通过参数MIN和MAX指定的范围内的参数VALUE,把其标定在0%~100%范围内。OUT=(VALUE-MIN)/(MAX-MIN),其中0.0<=OUT<=1.0。
以上这两个指令主要是在模拟量控制中会有应用,如果是入门的学习可以先简单了解就可以,等之后学习到模拟量控制部分再来详细学习。
以上这些就是转换操作指令的介绍,转换指令在我们做一些运算处理的时候是会应用到的,除了缩放和标准化指令可以简单了解,其他的转换指令都是需要掌握的哦,大家记住了吗?
( 技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究 )
更多了解,点↓
相关问答
【已知abcd都是实数,a不等于0,(a+b)d+b+c—2b(a+c)d=0求证b=...
[最佳回答]全部展开得ad+bd+b+c—2bad-2bcd=0(ad-2adb+b)+(bd-2bdc+c)=0(ad-b)+(bd-c)=0所以ad-b=0bd-c=0即d=(b/a)=(c/b...
bc+bd+cd=-3bcd+acd+abd+abc=4abcd=3求一个实数解】作业帮
[最佳回答]楼上正解,我来给出更精确的答案x=1/2*5^(1/2)-1/2-1/2*5^(1/2)-1/2-1/2+1/2*13^(1/2)-1/2-1/2*13^(1/2)四个解楼上正解,我来给出更...
9c平方+16d平方=120a.b.c.d属于正实数试求:d的最大值_作业帮
[最佳回答]a+b+c+d=20a^2+4b^2+9c^2+16d^2=120a.b.c.d属于正实数试求:d的最大值利用柯西不等式(a^2+4b^2+9c^2)[1^2+(1/2)^2+(1/3)^2]≥(...
已知:a,b为实数且ab=1,设M=a/a+1+b/b+1,N=1/a+1+1/b+1,则M,N...
[回答]解答如下:做差,M-N=a/(a+1)+b/(b+1)-1/(a+1)-1/(b+1)=(a-1)/(a+1)+(b-1)/(b+1)=(ab+...
复数范围内z^4+1=0的解怎么算最好有具体步骤的_作业帮
[回答]设z=a+bi,a、b都是实数然后展开,得到形如()+()i=0那么,两括号内的结果都必须为0,得到一个二元一次实数方程组解出a、b就对了设z=a+bi,a、b都是实...
【平面向量的坐标运算已知向量AB=(6,1)向量BC=(x,y)向量CD(-2...
[回答]AB=B-ABC=C-BCD=D-CDA=A-D=-(D-A)=-(D-C+C-B+B-A)=-(CD+BC+AB)=-(-2+x+6,3+y+1)=-(x+4,y+4)=(-x-4,-y-4)AB...
【已知实数a,b,c满足a+b+c=11与1/a+b+1/b+c+1/c+a=13/17,求c...
[最佳回答]给第一个式子等号两边同乘以11,然后把11=a+b+c带进去约一下就出来了答案应该是92/17
ax+c=0,x的平方+bx+d=0中至少有一个方程有实数根_作业帮
[最佳回答]两方程的根的判别式分别为a^2-4c、b^2-4d;由(a^2+b^2)/2≥ab=2(c+d)可得a^2+b^2≥4c+4d,所以(a^2-4c)+(b^2-4d)≥0两数之和大于等于...
1和0.999999999999.的关系1除以3等于1/30.99999999.除以3可以...
[回答]这么给你解释吧要弄清楚这个问题首先要明白0.333333……是什么东西而0.99999……又是什么东西两者是实数,这毋庸置疑,但具体又是什么样的实数呢?你...
(1)当时,如果函数g(x)=f(x)-k仅有一个零点,求实数k的取...
[最佳回答](1)利用函数f(x)的导数求出它的单调区间和极值,由题意知k大于f(x)的极大值,或k小于f(x)的极小值.(2)令h(x)=f(x)-1,由h′(x)>0得h(x)在(0,+∞)上...