在PLC中,除了处理开关量(位元件)外,还可以处理数据量(字元件)。什么是数字量?数字量就是进行统一处理的多位开关量组成的整体。例如,把 4 位(数位),8 位(字节),16 位(字)和 32 位(双字)二进制数组成的一个整体就是一个数据量。前面所述的编码都是数据量。数据量的引入使PLC的功能得到了充分的扩充。
在数据量的处理中,经常要把二个 n 位二进制数进行逻辑运算处理,其处理的方法是把两个数的相对应的位进行位与位的逻辑运算,这就称为数据量的逻辑位运算。
数据量的位运算有位与、位或、位反和按位异或。逻辑位运算的功能是对数据量的全部或部分进行清零、提取、保留和置反等。下面以 16 位二进制数整体(字)进行说明。
参与运算的数据量,如果相对应的两位都为 1,则该位的结果值为 1,否则为 0。口诀:见 0 为 0,全 1 为 1。
“位与”常用于将数据量的某些位清零或提取某些位的值,用“0 与”则清零,用“1与”则保留或提取位值。
【 例 1.1-23 】 将数据量 0101 1001 与数据量 0000 1111 进行位与。
高 4 位 0101 与 0000 相位与,结果全部变 0,这就叫清零或复位。低 4 位 1001 与 1111相位与,结果仍为 1001,这就叫保留或提取。
参与运算数据量,如果相对应的两位都为 0,则该位的结果值为 0,否则为 1,口诀:见 1 为 1,全 0 为 0。
位或常用于将某个运算量的某些位置 1,用“1 或”则置 1 ,用“0 或”则保留或提取位值。
【 例 1.1-24 】 将数据量 0101 1001 与数据量 0000 1111 进行位或。
高 4 位 0101 与 0000 相位或,结果保留 0101。低 4 位与 111 相位或,结果全部变为 1,这就叫置 1 或置位。
将参与运算数据量的相对应位的值取反,即 1 变 0,0 变 1。
参与运算数据量,如果相对应的两位相异,则该位的结果为 1,否则为 0,口诀:同为0,异为 1。
按位异或有“与 1 异或”该位翻转,“与 0 异或”该位不变的规律,即用“异或 1”则置反,用“异或 0”则保留。
【 例 1.1-25 】 将数据量 0101 1001 与数据量 0000 1111 进行按位异或。
高 4 位 0101 与 0000 相异或,结果保留为 0101。低 4 位 1001 与 1111 相异或,结果为0110,相当于把 1001 的每一位都进行了求反运算,这就称为置反。
【试试,你行的】
(1)下面是两组二进制数,试写出它们进行位与、位或和按位异或的结果,并分别写出它们各自位反的结果。
A=0010 1100 1001 0100
B=1010 0011 0110 1000
(2)一个二进制数想保留它的高八位,应如何与另一个数进行位运算?二进制数是1000010001010000,试提供三种方法做到。
(3)将二进制数 11000101 全部变为 1,应如何进行位运算?