PLC内部各类型数据转换
PLC使用的过程中,会有各种类型的数据需要处理。如十进制数、16进制数、2进制数、浮点数等。除了能够熟练的使用各种类型的数据外,深入的掌握这些数据的内部处理机制,可以在PLC编程使用更加轻松的处理各种问题。这里就各种类型数据在PLC内部的表示方法展开分享。
十进制(DEC)
即为我们通常所使用的1234567890……这样类型的数据。在PLC内部,十进制数一般用于如下几个方面:
定时器和计数器的设定值;如PLC编程中使用的K10即为常数10。辅助继电器(M)、定时器(T)、计数器(C)、状态(S)等的编号;如M10、T1、C1、S1等,使用十进制数表示相应内部器件的地址编号。16进制(HEX)
应用指令的操作数中的数值指定和指令动作的指定(H常数)。在做通信处理时,常会用到16进制数据的情况。
2进制数(BIN)
即为0或者1这样的数据。逻辑控制处理的数据,就是0和1这两种类型的数据。其PLC内部对上述的10进制和16进制数据处理,均式转换为2进制处理的。其转换过程如下图对应:
二进制与10进制间的转换
从上图中,二进制的最高位为符号位。当最高位位0时,所表示的数为正数;当最高位为1时,所表示的数为负数。
8进制(OCT)
一般对PLC的IO地址,均是按照8进制来进行分配处理的。如X0~X7、X10~X17。编号尾部以0开始以7结束,总共8位。
BCD(BCD)
BCD就是将构成10进制数的各位上0~9的数值以四位的BIN来表现的形式。实际运用过程中,这种已经很少使用了。
实数(浮点数)
PLC运行过程中,运算采用2进制浮点数(实数),监控采用了10进制浮点数(实数)。
数据间的转换
各种类型数据间的转换关系如下:
数据对应表
以上数据类型的运用场景如下:
各类型数据的运用场景
二进制浮点数的转换关系:
二进制浮点数的转换关系
二进制浮点数的有效位数:
最小绝对值1175494×10^-44最大绝对值3402823×10^32特别说明:
在进行数据处理过程中,特殊书继电器M8020(零)、M8021(借位)、M8022(进位)的处理。
M8020(零):结果真为0时为1M8021(借位):结果未达到最小单位,但不是0时为1M8022(进位):结果的绝对值超出可以处理的数值时为1(转载请注明来源函控自动化工程师头条号)
PLC中的BCD码是什么?
字电路采用的基本数制是二进制,而人们熟悉和习惯使用的数制是十进制,因此有必要在二进制与十进制之间建立一种转换机制,以方便数字电路的解读和分析。
BCD码就是一种用二进制数表示十进制数的码制。
BCD是英文"Binary-Coded Decimal"的缩写,直译的意思是“二进制编码的十进制数”,这种编码的数制本质上是十进制。BCD码用4个二进制数表示一个十进制数,每一位允许的范围是2#0000~2#1001(注1),也就是十进制的0~9,采用“逢十进一”的规则。
BCD码是有符号的,用最高位来表示符号,“0”表示正数,“1”表示负数。对于一个四位的BCD码而言(16个二进制位),能表示的范围是 “-999~+999”。为什么呢?其实比较好理解,你想,最高位是符号位,那么就剩下了三位,由于每一位BCD码,其本质是十进制数,所以每一位最大的数都是9,所以三位数最大就是999,加上符号,所以四位BCD码能表示的十进制数的范围是 “-999~+999”。同样的道理,八位BCD码(32个二进制位)能表示的十进制数的范围是“-9999999~+9999999”。
在西门子S7-300/400/1200/1500中,BCD16表示的十进制数范围为-999到+999。位15为“0”,则符号为正,为“1”,则符号为负。位12至位14不使用。BCD32表示的十进制数范围为-9999999 到 +9999999。
施耐德PLC中,如Unity Pro XL平台,BCD16表示的十进制数范围为0到9999。BCD32表示的十进制数范围为0到99999999。
三菱PLC中,如GX Works2平台,BCD16表示的十进制数范围为0到9999。BCD32表示的十进制数范围为0到99999999。
PLC内部总是按HEX格式(十六进制)进行数据计算的,在驱动非智能的显示设备(如数码管)显示数据之前,往往需要将PLC内部的HEX格式数据先转换为BCD码,然后进行显示输出;将用户以十进制方式设置的参数存入PLC内存之前,则往往需要将该BCD码转换为十六进制(HEX)格式。
人们在电脑显示器上看到的十进制读数,都是经过了计算机自动作BCD转换后才显示的;监控时修改的参数,则是电脑软件作了HEX转换后写入的,无需人为干预而已。
BCD码可以有多种编码方式,例如8421码、5421码、2421码、余3码、格雷码等。
8421码是最常用的一种BCD编码方式,在这种编码方式中,每个十进制数字都由对应的四位二进制值表示,二进制值每一位的“1”都代表一个固定数值。将每位“1”所代表的十进制数加起来就可以得到它所代表的十进制数字。因为代码中从左至右看每一位“1”分别代表数字“8”“4”“2”“1”,故得名8421码。
以上是进制转换的手动计算方法,在我们实际应用中,一般都是使用转换工具的,微软自带的计算器,就带这个功能。下面给大家介绍一下微软自带的计算器如何进行数据类型转换:
Windows键+R,然后输入“calc”回车,就能打开系统自带的计算器。
点击左上角的查看,然后选择程序员模式,就能进行各个数进制之间的转换了。
*注释1:在PLC中,二进制数据通常以”2#”作为前缀,十六进制数据通常以”16#”作为前缀,十进制数据只需正常书写即可。
免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!
如何获取 电气热门资料?
操作指引如下!
相关问答
PLC中的BCD码是怎么一回事?
BCD码是二进制编码的一种,它是将十进制数的每一位分别转换为4位二进制数表示。在PLC中,BCD码常用于数字量输入输出和计数器等模块中。例如,数字6的BCD码为011...
三菱plcBCD怎么使用?
BIN和BCD是一个数据转换指令BINK2X0D0K1代表4位,K2代表8位,也就是把二进制数(X0-X7)换到十进制数(D0)中。BCDD0K2Y0是把十进制数(D0)转换成二进制数(Y....
PLC为什么要把BCD码转为二进制?
在数字电路中只有两种信号高电平和低电平(也就是0和1两种状态),PLC只能识别二进制数,程序里的十进制,十六进制,都要转为二进制。程序写入PLC就是把二进制...
三菱PLCBINBCD指令详解?
您好,BIN指令:将二进制数转换为十进制数并存储到指定的寄存器中。语法:BINDn,DMDn:要存储的寄存器编号,范围为D0~D65535。DM:要转换的二进制数,范围...
plc二进制转十进制用什么指令?
pcl二/十进制转换指令包括BCD数转换成二进制数指令BIN(23)/@BIN(23)、BINL(58)/@BINL(58),以及二进制数转换成BCD数指令BCD(24)/@BC...
欧姆龙PLC编程里BIN型和BCD型具体是什么数据?
BIN是二进制的,16进制的是BCD的。转换指令直接用BINXXXXDMXXX就行了。表示把XXXX这个数转换为BIN格式的,存储到DMXXX这个数据存储区里面。如果是要转换成BCD...
PLC编程中的进制数该如何表示?相互之间又是如何转换的?
PLC也是一台微电脑,许多功能指令离不开进制转换,同时也是为了增加程序的可读性,想要对PLC进行编程,那么必须得清楚数制的设置以及转化和对应的符号。当然,...1...
bcd码是什么?BCD码用在哪方面?-NGDob8wDm的回答-懂得
一、BCD码BCD码进数或二-十进制代码。用4位二进制数来的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。二、BCD码的应用1、这种编码技巧...
三菱PLC里的十进制怎么转换成十六进制或者是三十二进制?
这和PLC的寄存器容量有关系。一般一个寄存器的容量就是16位的,32位就用两个寄存器。计算机里面都是用的2进制,所以一个16位的寄存器最多也只能存储的最大十进...
三菱plc中什么是bcd码?
用4位二进制数来表示1位十进制数中的0~9这10个数码,简称BCD码用4位二进制数来表示1位十进制数中的0~9这10个数码,简称BCD码