跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/Rl — 循环左移

Rl — 循环左移

循环左移:移出的高位补到低位。

移位 S7-1200/1500 TIA V19 别名:循环左移 / ROL / Rl

在 TIA 里试一下

选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。

TiaLink 设置

默认 http://localhost:8080。也可以在本页地址后加 ?tialink= 临时指定。

TiaLink 启动时若设置了 --api-token,这里要填相同的值;只保存在本机浏览器 localStorage,不会上传。

一句话

Rl 循环左移:移出的高位补到低位,不丢位。

符号与引脚

分类:移位 不需要实例 模板值:源类型(SrcType)
引脚方向说明
en流输入使能输入
in输入被移位的值
n输入移位位数
eno流输出使能输出
out输出结果

符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。

最小示例

Enable=1 时 Result = ROL(A, N);A=16#8001, N=1 得 16#0003。

Rl_Example:Network 1 — 循环左移

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。

怎么工作

  • 与 Shl 不同:移出的位会从另一端补回,形成循环。
  • in/out 用 Word/DWord/Byte,不要用 Int(TIA 会拒绝)。
  • n 是移位位数;建议先限制 n 在类型位宽内。
  • EN/ENO 是使能。

常用场景

1. 循环移位

同上面的最小示例。

2. 位循环

用于流水灯、循环缓冲等需要位回绕的场合。

Rl_Rotate:Network 1 — 循环移位

常见坑

  • 用 Int 做移位:TIA 会拒绝;用 Word/DWord/Byte。
  • 和 Shl 混淆:Shl 移出丢弃、补 0;Rl 移出补回。
  • n 超范围:先限制 n,不要依赖越界行为。
  • 类型不一致:in/out/SrcType 要匹配。
  • ENO 未接:后面的指令可能不执行;需要串联时检查 ENO。

← 返回 LAD 指令手册