您现在的位置是:首页 > PLC技术 > PLC技术

S7-300/400 PLC的取反码指令

来源:艾特贸易2017-06-04

简介在计算机系统中,数据存在原码、反码和补码 3 种形式;作为工业控制计算机的代表, PLC 控制系统当然也满足这个基本规定。下面先介绍一下原码、反码和补码的基础知识。 在计算机

    在计算机系统中,数据存在原码、反码和补码3种形式;作为工业控制计算机的代表,PLC控制系统当然也满足这个基本规定。下面先介绍一下原码、反码和补码的基础知识。    在计算机的存储器中,以字节作为基本单位来存储信息。如图4-38 (a)所示为一个无符号的8位二进制数的原码;在原码的基础上,对每一位数据取反,比如原来为“1”的位现在设置为“0”,这样得到该8位二进制数的反码,如图4-38 (b)所示;在反码的基础上,在这个二进制数的最后一位加上“1”,在加的过程中满“2”则向前面进一位,得到如图4-38 (c)所示的补码形式。
8位二进制数的原码、反码和补码形式
    4-38    8位二进制数的原码、反码和补码形式    (1)对整型数取反码的指令    对整型数取反码指令的结构如图4-39所示,其基本结构和前面介绍的数据类型转换指令的结构相似。    标题INV_I代表对整型数取反码,ENENO端口的基本作用及流通的数据形式和BCD_I等指令一样。IN端口输入INT类型的数据,OUT端口同样输出INT类型的数据,且后者输出的数据是前者输入数据的反码形式。    INV_I指令读取输入端IN的数据,并使用十六进制掩码W#16#FFFF执行逻辑“异或”运算,将原来数据的每一位变成相反状态。在指令的整个执行过程中ENO始终与EN的信号状态相同。    INV_I指令在程序中的具体应用如图4-40所示。
INV_I指令结构
    4-39    INV_I指令结构
INV_I指令具体的编程
    4-40    INV_I指令具体的编程    I0.1为高电位“1”时,INV_I指令将IW2内的数据每一位取反,然后输出到MW4所指向的存储区内。例如,IW2=01001011 10101101,取反后输出到MW4,则MW4=10110100 01010010    (2)对长整型数取反码的指令    对长整型数取反码指令的结构如图4-41所示,其基本结构和对整型数取反码指令类似,唯一的差别在于INV_DI指令的IN端和OUT端输入、输出的数据类型为DINTINV_DI指令读取输入端IN的数据,并使用十六进制掩码W#16#FFFFFFFF执行逻辑“异或”运算,将每一位转换为相反状态。在指令的整个执行过程中ENO始终与EN的信号状态相同。
INV_DI指令结构
    4-41    INV_DI指令结构