找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 79|回复: 0

STL语言 学习解读

[复制链接]

371

主题

362

回帖

2593

积分

管理员

积分
2593
发表于 2025-7-22 00:50:44 | 显示全部楼层 |阅读模式
怎样理解 STL语言的位逻辑指令:



位逻辑指令是STL(语句表)编程中最基础也是最常用的一类指令,用于处理“0”或“1”的布尔逻辑运算(如“与”、“或”、“非”等)。这些操作通常对应于开关量信号的控制,比如传感器是否有信号、按钮是否按下等。

---

## 🧠 理解方式

位逻辑指令会对输入信号(I)、内部变量(M)、输出(Q)等 **位地址的布尔值** 进行逻辑运算,并生成一个称为 **RLO(Result of Logic Operation,逻辑运算结果)** 的值,再根据RLO决定是否执行后续动作(如赋值、置位等)。

---

## 📌 常见位逻辑指令及举例

| 指令   | 含义     | 示例         | 说明                          |
| ---- | ------ | ---------- | --------------------------- |
| `A`  | 与(AND) | `A I 1.0`  | 如果 I1.0 = 1,RLO = 1,否则 = 0  |
| `AN` | 与非     | `AN I 1.1` | 如果 I1.1 = 0,RLO = 1,否则 = 0  |
| `O`  | 或(OR)  | `O I 1.2`  | 如果 I1.2 = 1,RLO = 1,否则 = 原值 |
| `ON` | 或非     | `ON I 1.3` | 如果 I1.3 = 0,RLO = 1         |
| `=`  | 赋值     | `= Q 4.0`  | 将 RLO 的值写入输出 Q4.0           |
| `S`  | 置位     | `S Q 4.1`  | 如果 RLO = 1,则 Q4.1 置 1       |
| `R`  | 复位     | `R Q 4.1`  | 如果 RLO = 1,则 Q4.1 清 0       |
| `FP` | 上升沿    | `FP M 0.0` | 检测RLO从0变1                   |
| `FN` | 下降沿    | `FN M 0.1` | 检测RLO从1变0                   |


---

## 🎯 示例:两个按钮同时按下才启动电机

要求:当I1.0 和 I1.1 都为1(都按下),则输出 Q4.0 为1(电机启动)

```stl
A   I 1.0      // 判断按钮1是否按下
A   I 1.1      // 判断按钮2是否按下
=   Q 4.0      // 如果两个都按下,Q4.0 输出为1
```

### 🧾 分析:

| 步骤 | 动作      | RLO值变化             |
| -- | ------- | ------------------ |
| 1  | A I 1.0 | RLO = I1.0 的值      |
| 2  | A I 1.1 | RLO = RLO AND I1.1 |
| 3  | = Q4.0  | 将 RLO 赋值到 Q4.0     |

如果两个输入都为1,Q4.0输出为1,否则为0。

---

## 🧠 小技巧:

* `I` 表示输入地址(Input)
* `Q` 表示输出地址(Output)
* `M` 表示内部存储器(Memory)可以用作中间变量

---



STL常见位逻辑指令及举例.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|笔记

GMT+8, 2025-9-16 22:23 , Processed in 0.035810 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表