数制,即数的制式,是人们利用符号计数的一种方法。数制有很多种,常用的有十进制、二进制和十六进制。
在S7系列plc中表示二进制常数时,需要在数据之前加2#;表示十六进制时,需要在数据之前加16#;对于十进制常数的表示只需要正常书写即可。S7系列PLC的数制表示主要有下面三种。
(1)十进制(Decimal)
数码:0 1 2 3 4 5 6 7 8 9共10个
基数:10
计数规则:逢十进一
日常生活中人们习惯于十进制计数制,但是对于计算机硬件电路,只有“通”/“断”或电平的“高”/“低”两种状态,为便于对数字信号的识别与计算,通常采用二进制表示数据。
(2)二进制(Binary)
数码:0 1共2个
基数:2
计数规则:逢二进一
对于S7系列PLC,在数据前加2#表示该数据为二进制数,例如2#1101110,其十进制数为110(利用按权展开相加法,2#1101110=1×26+1×25+1×23+1×22+1×21=110)。
二进制数较大时,书写和阅读均不方便,通常将四位二进制数合并为一位,用十六进制数表示。
(3)十六进制(Hexadecimal)
数码:0 1 2 3 4 5 6 7 8 9 A B C D E F共16个
基数:16
计数规则:逢十六进一
对于S7系列PLC,在数据前加16#表示该数据为十六进制数,如十六进制数16 #6E,其值为十进制数110(利用按权展开相加法,16#6E=6×161+14×160=110)。
(1)补码
在PLC数字系统中,对有符号整数最常用的表示方法是使用二进制数的补码形式表示,即该二进制数的最高有效位是符号位,正整数的补码同该二进制数,负整数的补码是该二进制数除了符号位外按位取反后加1。
(2) BCD码
有些场合,计算机输入/输出数据时仍使用十进制数,以适应人们的习惯。为此,十进制数必须用二进制码表示,这就形成了二进制编码的十进制数,称为BCD码(Binary Coded Decimal)。
BCD码是用四位二进制数表示一位十进制数,它们之间的对应关系见表。例如157,其BCD码的二进制表示为0001 0101 0111。
表 四位二进制BCD码与十进制数的关系
需要注意的是,四位二进制代码1010、101 1、1100、1101、1110和1111为非法BCD码。
(3) ASCII码
ASCII码(American Standard Coded for Information Interchange)是美国信息交换标准代码。
在计算机系统中,除了数字0~9以外,还常用到其他各种字符,如26个英文字母、各种标点符号以及控制符号等,这些信息都要编成计算机能接受的二进制码。
ASCII码由8位二进制数组成,最高位一般用于奇偶校验,其余7位代表128个字符编码。其中图形字符96个(10个数字、52个字母及34个其他字符),控制字符32个(回车、换行、空格及设备控制等)。