1.3 码制
在PLC数据处理过程中,还会经常用到各种代码,比如二-十进制(BCD)码、美国信息交换标准码ASCII、格雷码等。
图1-4 十进制数BCD码的表示形式
1.BCD码
BCD(Binary Code Decimal)码系统提供了一种处理需要从PLC输入或输出大数字的便利方法。BCD码是利用4位二制数来表示十进制数0~9的方法。在BCD码系统中,能够通过4位数显示的最大十进制数为9。表示方法如图1-4所示。
为了区分BCD码和二进制数的不同,要加括号并用下角标“BCD”表示它是一个BCD码,已不是原来意义上的“二进制数”了。
例:86=(10000110)BCD,可以把这个代表十进制数86的BCD码(10000110)BCD记成十六进制形式“86H”,此时的86H已不是原来意义上的十六进制“数”了,而是十进制数的86的BCD码,就代表了十进制数86。
在PLC控制中,PLC的指轮开关和LED显示就是PLC设备利用BCD码的应用。
2.ASCII
ASCII(American standard code for information interchange)是美国标准信息交换码,是用7位二进制数表示数字(阿拉伯数字0~9)、字母(26个大写和26个小写字母)、特殊字符(@、#、$、%等)、控制字符(NUL、NUL、STX等)、运算符号(+、-、×、÷等)等128个特殊字符表示的一种方法。ASCII见表1-2,表1-2中特殊控制功能字符解释见表1-3。
从表1-2中,我们可以算出各个字符的ASCII,计算方法如图1-5所示。如0的ASCII是“0”=30H,9的ASCII是“9”=39H,还有“A”=41H、…、“ENQ”=05H。我们敲键盘上的数字“0”键,输入到计算机内存中的是ASCII的30H,存储器中就存储一个7bit或8bit的字,这个字可以用来表示字母、函数或表示由于按下特殊键所产生的控制信号数据。
在FX系列PLC产品通信时,数据交换是以ASCII的形式进行的,还用于PLC的CPU与字母数字键盘及打印机的连接。
表1-2 ASCII(美国标准信息交换码)
图1-5 ASCII计算方法
表1-3 表1-2中特殊控制功能的解释
3.格雷码
格雷码是一种特殊的二进制码,没有使用位加权。就是说,它的每一位都没有一个确定的权值。通过格雷码可以只改变一个位,就从一个数变为下一个数。在计数器电路容易混乱,但在编码器电路中是非常标准的。例如,用绝对编码器作为位置变送器,也可以用格雷码来确定角位置。格雷码和相应的二进制数比较见表1-4。
表1-4 格雷码和相应的二进制数比较
从表中可看出,二进制数制中,改变单一的“数”最多需要改变4位数字,而格雷码只要改变一个位。例如。将二进制数0111改变成1000(十进制数7改变成8)需要改变所有4个数字。这种变化增加了在数字电路出错的可能性。因此,格雷码是一种错误最少的编码。由于格雷码每次变换只要改变一个位,所以格雷码的转变速度比其他码,(比如BCD码)的速度要快。
格雷码适用于机器人运动、机床和伺服传动系统精确控制的位置编码。图1-6所示为利用4位格雷码的光学编码器来检测角位置的变化。图中,确定转轴的位置是附在转轴上的编码器盘,编码器盘输出一个数字格雷码信号;一组固定的光敏二极管用于检测从编码器的径向一列单元的反射光。每个单元将输出一个对应于二进制数1或0的电压,取决于光的反射量。因此码盘上的每一列单元将产生一个不同的4位字。
图1-6 格雷码在光学编码器上应用