西门子对字中的位操作指令
在西门子 PLC 编程中(主要针对 S7-300/400/1200/1500 系列及其编程软件 STEP 7 Classic / TIA Portal),用于对字(WORD)数据类型中的单个位(Bit)进行操作的指令主要有以下几个核心指令,使用绝对地址或符号地址进行寻址:
核心指令
-
A (And) - 常开触点
- 功能: 检查指定地址的
位是否为1(TRUE)。用于启动一个逻辑“与”运算。 - 寻址(针对字中的位):
A <位地址>或A <数据块>.<字节地址>.<位偏移>或A "Symbol".<位偏移> - 示例:
A M 0.0(绝对地址:访问位存储器 MB0 的第 0 位)A DB1.DBX10.5(绝对地址:访问数据块 DB1 中 MB10 的第 5 位)A "MotorStart".I0.2(符号地址:访问名为MotorStart的 I/O 结构中输入字节 I0 的第 2 位)
- 功能: 检查指定地址的
-
O (Or) - 常闭触点
- 功能: 检查指定地址的
位是否为0(FALSE)。用于启动一个逻辑“非”运算后的“或”运算。 - 寻址: 同
A指令O <位地址> - 示例:
O I 1.3O DB2.DBX20.7
- 功能: 检查指定地址的
-
AN (And Not) - 常闭触点
- 功能: 检查指定地址的
位是否为0(FALSE)。用于启动一个逻辑“与”运算。 - 寻址: 同
A指令AN <位地址> - 示例:
AN Q 0.4
- 功能: 检查指定地址的
-
ON (Or Not) - 或非触点
- 功能: 检查指定地址的
位是否为1(TRUE)。用于启动一个逻辑“非”运算后的“或”运算。 - 寻址: 同
A指令ON <位地址> - 示例:
ON M 3.1
- 功能: 检查指定地址的
-
= (Assign) - 赋值
- 功能: 将 RLO (Result of Logic Operation - 逻辑运算结果) 赋值给指定的
位。 - 寻址: 同
A指令= <位地址> - 示例:
= Q 2.0(如果 RLO=1,则 Q2.0 置位;如果 RLO=0,则 Q2.0 复位)= "StatusLight".O0.1
- 功能: 将 RLO (Result of Logic Operation - 逻辑运算结果) 赋值给指定的
-
S (Set) - 置位
- 功能: 如果 RLO=1,则将指定的
位设置为1(TRUE)。该位保持为1,直到被复位指令R复位。 - 寻址: 同
A指令S <位地址> - 示例:
S M 10.6(当 RLO=1 时,将 M10.6 置位并保持)
- 功能: 如果 RLO=1,则将指定的
-
R (Reset) - 复位
- 功能: 如果 RLO=1,则将指定的
位设置为0(FALSE)。该位保持为0,直到被置位指令S置位。 - 寻址: 同
A指令R <位地址> - 示例:
R "Alarm".Q4.3(当 RLO=1 时,将符号地址Alarm.Q4.3复位并保持)
- 功能: 如果 RLO=1,则将指定的
地址格式说明(关键点)
- 字(Word) 包含 2 个字节(Byte),每个字节 8 位(Bit),总计 16 位。
- 要访问字中的某一个位,必须指定确切的
位地址。格式如下:<存储区前缀> <字节地址>.<位偏移>- 存储区前缀:
I(输入),Q(输出),M(位存储器),DBX(数据块中的位)等。 - 字节地址: 字节的编号,如
0,1,2, ...10, ... 等。 - 位偏移: 该字节内的位编号,从
0(最低有效位 LSB) 到7(最高有效位 MSB)。
- 存储区前缀:
- 示例解释:
M 10.5: 访问位存储器区中,第 10 个字节(MB10) 中的第 5 位。DB1.DBX20.3: 访问数据块 DB1 中,第 20 个字节(DB1.DBB20) 中的第 3 位。"MyTag".I0.1: 访问符号名为MyTag的变量(假设它是输入字节IB0)中的第1位(I0.1)。
补充说明(位操作的高级方法)
-
位段操作 (SCL/ST/TIA Portal):
- 在高级语言 SCL (Structured Control Language) 或 TIA Portal 的 LAD/FBD 中,可以在函数块接口或数据块中直接定义具有特定长度的位段 (
BOOL数组)。 - 示例 (SCL 中定义位段):
VAR StatusWord : WORD; // 16 位字 Running AT StatusWord.0 : BOOL; // 访问第 0 位 Fault AT StatusWord.1 : BOOL; // 访问第 1 位 Mode AT StatusWord.2 : BOOL; // 访问第 2 位 // ... 可以继续定义到 StatusWord.15 END_VAR - 这样在程序中就可以直接使用
Running,Fault等符号名操作对应的位,非常清晰。这是推荐的做法。
- 在高级语言 SCL (Structured Control Language) 或 TIA Portal 的 LAD/FBD 中,可以在函数块接口或数据块中直接定义具有特定长度的位段 (
-
使用掩码进行位操作 (AND, OR, XOR):
- 指令
AW(字与),OW(字或),XOW(字异或) 可以对整个字进行位逻辑运算。 - 示例 (检查 MW10 的第 5 位是否为 1):
L MW 10 // 将 MW10 加载到累加器 1 L W#16#0020 // 将掩码 0x0020 (二进制 0000 0000 0010 0000,只有第5位是1) 加载到累加器 1,MW10 移到累加器 2 AW // 字与:累加器 1 & 累加器 2 -> 结果在累加器 1 T MW 20 // 结果传送到 MW20。如果 MW10 的第 5 位是 1,MW20 为 0x0020;如果 MW10 第5位是0,MW20 为 0x0000。 // 然后可以判断 MW20 是否等于 W#16#0020 来确定 MW10.5 的状态。 - 直接使用
A M 10.5来判断通常更简单。掩码操作常用于同时对多个位进行控制或状态检查。
- 指令
总结
西门子 PLC 中最基础、最常用的字中位操作的指令是 A, O, AN, ON, =, S, R。要操作某个位,必须使用格式 <存储区前缀> <字节地址>.<位偏移> 明确指定该位的位置(如 M10.5, Q0.0, DB1.DBX25.3)。在 TIA Portal 中利用符号编程和定义位段可以大大提高程序的可读性和维护性。
记得在编程时使用“监视表”或“在线模式”监视这些位地址的值,以便调试程序逻辑是否正确。
西门子PLC的复位操作
西门子PLC(Programmable Logic Controller,可编程逻辑控制器)是一种广泛应用于工业自动化领域的控制设备。在实际应用过程中,有时需要对PLC进行复位
2024-08-16 17:46:48
西门子S7-1200 PLC的指令介绍
西门子S7-1200 PLC,作为西门子自动化控制产品中的一款紧凑型控制器,凭借其强大的功能和易用性,在工业控制领域得到了广泛的应用。S7-12
2024-06-18 14:52:34
西门子S7系列PLC以太网通讯处理器
1970-01-01 08:00:00 至 1970-01-01 08:00:00
西门子压电阀
1970-01-01 08:00:00 至 1970-01-01 08:00:00
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览