一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

一、数制

  说到数制,我想很多人都和我一样,最先想到的就是十进制,即所谓的满十进一。在很小的时候,爸爸妈妈就开始教我们用手指进行算术,也许就是因为手指只有十个,所以在我们人类的生活中十进制的用法最为普遍。

  然而,除了十进制外,比较常用的数制还有二进制、八进制以及十六进制。可以说这些数制是我们与计算机沟通的桥梁之一。信息化时代的到来大大方便了我们的工作与生活,为了能与更好地计算机进行交流,我们就要学会几种数制。就像是我们要出国,为了与当地的居民交流,就要学会当地的一些语言一样。

  十进制是满十进一,该位归零,依此类推,显然二进制就是满二进一,该位归零;八进制是满八进一,该位归零;十六进制是满十六进一,该位归零。十进制中的数字(数码)有0~9,而二进制中的数码只有0和1,在计算机的眼里,它们只局限于二进制信息的处理,我们输入的任何代码,计算机都会把它们翻译成二进制数再处理。

  数制有三要素:基数、位权、复位和进位。复位和进位,我想不用我解释,大家也是知道的,这个用在数字运算上,例如1+9满十进一,十位上为1,个位上复位为0。多少进制,基数就是多少,例如十六进制的基数就是16。权,在数制里面它指的是位值。我们在学物理的时候,很多时候都会提到单位时间、单位面积等等的单位值,数制中的权我们也可以这样理解,权就是每一个数位上的单位值,例如十进制中个位、十位、百位、千位,千位的单位值是1000,即103,这个1000就是权,显然,一个数码,它的权越大,该数码就越大。

   为了方便区分一个数是什么进制,有时候我们需要在前面加一个字母,例如1001这个数,我们可以说这是一千零一,也可以说是9,但是如果给一个数B1001,那么我们就不能说它是一千零一了,因为全面的字母B就代表了这个数是二进制数。

  这些字母其实就是各个进制英文单词的首字母,例如D指十进制,H指的是十六进制。中英日韩文等可以互相翻译,同样的,几种不同进制数之间也是可以互相转换的。比较简单的是把其他数制转换为十进制,例如H36这个十六进制数转换为十进制,直接是3x161+6x160=54,即H36=D54。

  有点难度的是把十进制数转换为其他进制,李老师在课程中就讲得比较详细,例如在下图中,把十进制数54转换为二进制数,如下图,分别除以2,从下到上取余数,得出相对应的二进制数B110110。当然,如果想把十进制转换为八进制,那就除以八,依次类推。

  二进制转换为十六进制,也比较简单,直接把二进制数从低位按每4个数为一组,每组数转换为十进制数,然后把各组所转换的数组合起来,就是对应的十六进制数;反之,十六进制数转换为二进制,直接把各个数码转换为4个数组成的二进制数,例如H31,其中1变为0001,3变为0011,那么就可以得出H31=B00110001。八进制数作为中间数,可以先把它转换为二进制或十进制,再进行其他转换。

  数制学起来比较有意思的是各种数制之间的转换,在自娱自乐的同时又可以让自己更为熟练,当然,你们觉不觉得有趣,我就不得而知了。

二、码制

  在学习PLC之前,我以为编码只是应用于计算机系统中的,例如我以前就学过微机的相关知识,学了李老师的课才发现,其实PLC也是一种工业电脑,所以,要学习PLC,也就要了解一下编码的知识。

  我又咨询了一些(一位)大神,在学习PLC时,其实对码制知识的要求没有很高,数制的知识比码制的知识更为重要一些,所以关于码制,我也就简单过一下。在PLC中比较常用的是8421BCD码、格雷码和ASCII码。

  编码是指用一组n位的二进制数码来表示各种数据、字母符号、文字和控制信息等。这是因为计算机在处理数据时其本质就是处理二进制数码,为了和计算机交流,我们把各种数据信息用统一的编码方式表示为二进制数,然后给计算机识别。

1、8421BCD码

  8421BCD码是十进制代码中最常用的一种,用四位二进制码表示十进制数的0~9。在这种编码方式中,四位二进制数中的每个1都代表一个固定的数值,从高位到低位分别是8、4、2、1,例如0101,指的是0x8+1x4+0x2+1x1=4+1=5,即0101 BCD=D5;又如D36=0011 0110 BCD。

  那么,怎么快速地确定各个十进制数的对应BCD码是什么呢?例如D7,我们这样做,上图所示,7用8、4、2、1中的哪几个数可以相加得到,显然是4+2+1=7,对应BCD码就是后三个数要为1,即D7=0111 BCD。

2、格雷码

  格雷码又称循环码,在格雷码中,每一位的状态都按一定的顺序循环。如下图所示,在格雷码中,从右到左,如果从0000开始,最右边一位的状态是按0110顺序循环变化,右边第二位按00111100顺序循环变化……依此类推,每左移一位,循环变化的0和1的数目就增加一倍。格雷码最大的优点就是,相邻两个代码之间只有一位发生变化,例如编号12的格雷码与编号11、13格雷码对应位,只有一个变化。

3、ASCII码

  ASCII码也就是美国信息交换标准代码,广泛用于计算机和通信领域中。ASCII码是一组7位二进制代码,共128个,包括表示0~9的十个代码、大小写字母的52个代码、32个表示各种符号的代码以及34个控制码,而什么字符对应什么ASCII码,我们可以通过查它的编码表,在这里我就不列举啦,大家感兴趣的,可以自己上网查一下哦。

三、基本逻辑运算电路

  在数字电路中,用1位二进制数码的0和1表示一个事物的两种不同逻辑状态。例如可以用1和0表示门的开和关、电灯的亮和灭、人民币的真和假等。所谓“逻辑”,是指事物间的因果关系,例如我花了两百块钱买了一门课,因就是我花了两百块,结果就是我得到了一门课。

  逻辑运算就是按照某种因果关系进行推理运算,而逻辑运算的方法就是逻辑代数,其中逻辑代数中的三种基本运算有“与(AND)”、“或(OR)”、“非(NOT)”。

1、与逻辑运算李老师在上课时举了一个很形象的例子来解释逻辑与。大概意思就是,某位员工要开报销单,财务要求必须要两位经理同时签名才予报销,在这里,两位经理同时签名就逻辑与的关系,少一个签名都不行。再如下图的电路,只有两个开关同时闭合,电灯才能亮,这种因果关系就称为逻辑与。逻辑与的图形符号和表达式如图所示。

若以A、B表示开关的状态,1表示闭合,0表示断开;Y表示灯的状态,1表示灯亮,0表示灯灭;显然只有A、B同为1时,Y才为1。

2、或逻辑运算还是报销的例子,如果此时财务要求只要李经理和杨经理中的任一位经理签名,就可以报销,此时,这种因果关系就是或逻辑。

  再如下图的电路中,同样是以A、B表示开关的状态,1表示闭合,0表示断开;Y表示灯的状态,1表示灯亮,0表示灯灭;显然,只要有一个开关闭合,灯就可以亮,只有两个开关同时断开时,灯才会灭,这种因果关系就称为逻辑或。

3、非逻辑运算

  逻辑非就更为直接了,简单来说就是取反。我们直接以下图的电路图为例,依然是以A表示开关的状态,1表示闭合,0表示断开;Y表示灯的状态,1表示灯亮,0表示灯灭;在这个电路中,开关一旦闭合,电灯就被短路而熄灭,也就是说,当A=1时Y=0,A=0时Y=1。这种因果关系就是逻辑非,也称逻辑求反。

  在《三菱FX PLC编程与应用入门》这门课的第一章中,李老师还讲到了复杂逻辑电路与逻辑位运算。复杂逻辑电路和逻辑位运算还是比较有意思的,但是,我不打算深入研究,所以,你们懂的,想学的自己去学吧,反正我就过目一遍哈哈。

我在学完《三菱FX PLC编程与应用入门》第一章后,感觉还可以,目前还没遇到什么难题,希望之后的学习之旅能一直这么顺利!

posted on 2023-08-07 10:57  一杯清酒邀明月  阅读(182)  评论(0编辑  收藏  举报