
在西门子S7-1200 PLC编程里字逻辑指令是批量处理开关量的“效率神器”。很多新手写多路输出控制程序只会一个个加触点、写线圈16路输出就要写16段程序代码又长又乱修改起来还麻烦。其实用一个字逻辑指令一行就能搞定16路开关量的批量控制效率直接拉满。字逻辑指令的核心就是对一个字16个位、双字32个位里的每一位同时执行逻辑运算一次性处理多路开关量信号。这篇文章就用最通俗的大白话把S7-1200最核心的4种字逻辑指令全讲透不用死记硬背看完就能理解每个指令的用法写程序时直接套用。一、先搞懂核心什么是按位逻辑运算在PLC里1个Word字包含16个Bit位正好对应16个开关量信号比如QW0这个输出字就包含了Q0.0~Q0.7、Q1.0~Q1.7一共16个输出点每个位对应一个现场的指示灯、电磁阀、接触器。字逻辑指令就是对这16个位逐位执行逻辑运算每一位的运算互不干扰一次性完成16路信号的同时处理。比如我们要让Q0.0、Q0.2、Q0.4这些偶数位同时置1不用一个个写线圈用字逻辑指令给QW0赋值16#5555一行就搞定了。二、4种核心字逻辑指令详解1. 与运算AND- 核心规则将输入IN1和IN2的值按位进行“与”运算结果输出到OUT中。只有两个对应位的信号都为1时结果位才为1只要有一个位为0结果位就为0。- 通俗理解就像家里的双控串联开关两个开关都按下灯才会亮只要有一个开关断开灯就灭。字逻辑的与运算就是同时给16组串联开关做判断。- 举个例子IN12#1010 1010 1010 101016#AAAAIN22#1111 0000 1111 000016#F0F0与运算后OUT2#1010 0000 1010 000016#A0A0只有两个数都为1的位结果才保留1。- 典型应用1屏蔽信号位只保留我们需要的信号位过滤掉不需要的位2多路信号状态判断同时判断16路输入信号是否全部接通3位状态清零将指定的位清零其他位保持不变。2. 或运算OR- 核心规则将输入IN1和IN2的值按位进行“或”运算结果输出到OUT中。只要两个对应位中有一个为1结果位就为1两个位都为0结果位才为0。- 通俗理解就像卧室的双控并联开关门口和床头随便按一个灯都会亮只有两个开关都断开灯才会灭。字逻辑的或运算就是同时给16组并联开关做判断。- 举个例子IN12#1010 0000 1010 000016#A0A0IN22#0000 1010 0000 101016#0A0A或运算后OUT2#1010 1010 1010 101016#AAAA只要有一个数为1的位结果就为1。- 典型应用1多路信号批量置1一次性将指定的多个输出位置1其他位保持不变2多路故障报警汇总16路故障信号只要有一路报警就触发总报警3信号合并将两组开关量信号合并成一组。3. 异或运算XOR- 核心规则将输入IN1和IN2的值按位进行“异或”运算结果输出到OUT中。两个对应位的信号不一样一个1、一个0结果位就为1两个位都为1或都为0结果位就为0。- 通俗理解就像楼梯的双控开关两个开关状态不一样灯就亮两个开关状态一样灯就灭。最核心的作用就是翻转指定位的状态。- 举个例子IN12#1010 1010 1010 101016#AAAAIN22#1111 1111 0000 000016#FF00异或运算后OUT2#0101 0101 1010 101016#5AAA两个数不一样的位结果就为1。- 典型应用1指定位状态翻转一次性翻转多个输出位的状态1变0、0变12信号变化检测判断16路输入信号中哪些位的状态发生了变化3脉冲交替输出实现多路指示灯的交替闪烁。4. 求反码INV- 核心规则对输入IN的每一位信号状态取反1变成00变成1结果输出到OUT中。本质就是输入值和全1的掩码做异或运算一次性翻转所有位的状态。- 通俗理解就像开灯变关灯关灯变开灯所有开关的状态全部反过来。- 举个例子IN2#0101 0101 0101 010116#5555求反码后OUT2#1010 1010 1010 101016#AAAA所有位的状态全部翻转。- 典型应用1多路信号批量取反一次性翻转16路输出的状态2交替闪烁控制配合时钟脉冲实现两组指示灯的交替亮灭3信号状态反转将输入的常闭信号转为常开信号批量处理。新手必记的字逻辑指令避坑红线1.运算前后数据类型必须一致参与运算的IN1、IN2和OUT必须是相同的数据类型比如Word和Word运算、DWord和DWord运算不能混用不然会报错。2.注意输入输出的地址重叠问题不要把IN和OUT设置成同一个地址不然会出现扫描周期内的运算错误导致结果不符合预期。3.按位运算要先转二进制看清楚新手写程序时一定要把十六进制数转成二进制看清楚每一位对应的地址避免赋值后输出点和预期不符。4.不要用字逻辑指令操作单个位单个位的控制直接用常开常闭触点更直观字逻辑指令的优势是批量处理多路信号单个位用反而画蛇添足。5.注意输出字的地址对应关系比如QW0对应Q0.0~Q1.7QW2对应Q2.0~Q3.7不要搞错地址对应关系导致输出点控制错误。以上就是西门子S7-1200最核心的4种字逻辑指令学会了这些指令多路开关量控制程序能直接缩短80%的代码量编程效率大幅提升。新手不用死记硬背把每个指令的运算规则和适用场景理解透多写多练很快就能上手。