1.数制
(1)十进制
十进制以10为基数,具有10个独特的数字——数字0~9。有时为了与二进制数和十六进制数相区别,十进制数可以用一个括号加下脚标10注明,或在后边用大写的D表示。根据数学上计数的理论,N位计数制的数,可以按N(又称基数)的幂指数展开求和的方法求出其值。十进制数可按10的幂指数展开求和的方法表示。例如:
(98.36)10或98.36D或98.36=9×101+8×100+3×10-1+6×10-2
其中,某一位数乘10的几次方,要看这一位后面的整数部分有几位。如上面的数字9后面整数部分有1位,则这个9应乘10的1次方。
(2)二进制
通常,PLC是对二进制数进行操作的,用二进制来表示变量或变化的码值。二进制以数字2为基数,二进制数只有两个数码0和1,加法时逢二进一位。二进制数后可加一大写的B表示。例如:
(1011.011)2=1011.011B=1×23+0×22+1×21+1×20+0×2-1+1×2-2+1×2-3
=1×8+0×4+1×2+1×1+0×1/2+1×1/4+1×1/8
=11.375
二进制数的每个数字都称为一个位,在PLC中每个字能够以二进制数或位的形式存储数据。一个字所包括的位数取决于PLC系统的类型,16位和32位最常用。图5-7表示由2个字节组成的16位字,最低位(LSB)为代表最小值的数字,最高位(MSB)为代表最大值的数字,实际为符号位,为1时数为负,为0时数为正。
图5-7 二进制数据结构
在FX系列PLC中,以十制数对定时器、计数器、数据寄存器的设定值进行指定,但是在PLC内部都是以二进制数进行处理的,而在外围设备进行监控时,则自动变换成十进制数。
(3)十六进制
由于一个数据的字由16个数据位或两个8位数据位组成,十六进制数有十六个数码:0~9和A、B、C、D、E、F,基数是16,加法时逢十六进一位。十六进制数后可加一个大写的H表示。例如:
(6E)16=6EH=6×161+14×160=110
在FX系列PLC中,十六进制数同十进制数一样,可用于指定应用指令的操作数与指定动作。
(4)八进制
八进制是以基数为8的数制,一个八进制数能够用三个二进制数表示。它通常用于微处理器、计算机和可编程系统,PLC用户或程序员可以利用其组成一个信息字节中的8个数据位并进行编址。PLC的输入和输出模块地址一般都是按八进制编址的。例如:
(596)8=5×82+9×81+6×80=398
(5)二、八、十、十六进制数对照
为了方便读者,现将二、八、十、十六进制数对照,见表5-1。
表5-1 数制对照表
2.码制
在PLC数据处理过程中还经常会用到各种代码系统,比如BCD码、ASCII码、格雷码等。(www.xing528.com)
(1)BCD码(Binary Code Decimal)
BCD码提供了一种处理需要从PLC输入或输出大数字的便利方法。BCD码是利用4位二制数来表示十进制数0~9的表示方法。在BCD码系统中,能够通过4位数显示的最大十进制数为9,表示方法如图5-8所示。
为了区分BCD码和二进制数,要加括号并用下脚标“BCD”表示它是一个BCD码,而不是原来意义上的“二进制数”了。
例如,86=(10000110)BCD,可以把这个代表十进制数86的BCD码(10000110)BCD记成十六进制形式“86H”,此时的86H已不是原来意义上的十六进制“数”了,而是十进制数86的BCD码,代表了十进制数86。
图5-8 十进制数BCD码的表示形式
在PLC控制中,PLC的指轮开关和LED显示就是PLC设备利用BCD码的应用实例。
(2)ASCII码(American Standard Code For Information Interchange)
ASCII码是美国标准信息交换码。用7位二进制表示数字(阿拉伯数字0~9)、字母(26个大写字母和26个小写字母)、特殊字符(@、#、$、%等)、控制字符(NUL、STX等)、运算符号(+、-、×、/等)等128个字符的一种方法。ASCII码见表5-2,表5-2中特殊控制功能字符的解释见表5-3。
表5-2 ASCII码表
由表5-2我们可以算出各个字符的ASCII码,计算方法如图5-9所示。如0的ASCII码是“0”=30H,9的ASCII码是“9”=39H,还有“A”=41H、“ENQ”=05H等。
图5-9 ASCII码计算方法
a)“9”的ASCII码计算方法 b)“A”的ASCII码计算方法
FX系列PLC产品通信时的数据交换是以ASCII码形式进行的,ASCII码还可用于PLC的CPU与字母数字键盘及打印机的连接。
表5-3 表5-2中特殊控制功能字符的解释
(3)格雷码
格雷码是一种特殊的二进制码,它没有使用位加权,就是说每一位都没有一个确定的权值。通过格雷码可以只改变一个位,就从一个数变为下一个数。这在计数器电路中容易混乱,但在编码器电路中是非常合适的。例如,用绝对编码器作为位置变送器,可以用格雷码来确定角位置。格雷码和相应的二进制数比较见表5-4。
表5-4 格雷码和相应的二进制数比较
从表5-4中可看出,二进制数制中,改变单一的“数”最多需要改变4位数字,而格雷码只要改变一个位。例如,将二进制数0111改变成1000(十进制数7改变成8)需要改变所有4个数字,这种变化增加了在数字电路中出错的可能性。因此,格雷码是一种效率较高的编码。由于格雷码每次变换只需改变一个位,所以格雷码的转换速度比其他码制的速度要快,比如BCD码。
格雷码是一种适用于机器人运动、机床和伺服传动系统精确控制的位置编码。图5-10所示为利用4位格雷码的光学编码器来检测角位置的变化,图中,附在转轴上的编码器盘可确定转轴的位置,编码器盘输出一个数字格雷码信号。一组固定的光电二极管用于检测从编码器的径向一列单元的反射光,每个单元将输出一个对应于二进制数1或0的电压,这取决于光的反射量。因此,码盘上的每一列单元将产生一个不同的4位二进制数字。
图5-10 格雷码在光学编码器上的应用
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。