
Shr — 右移
按位右移:out = in >> n。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
Shr 按位右移:out = in >> n。
符号与引脚
分类:移位
不需要实例
模板值:源类型(SrcType)
| 引脚 | 方向 | 说明 |
|---|---|---|
en | 流输入 | 使能输入 |
in | 输入 | 被移位的值 |
n | 输入 | 移位位数 |
eno | 流输出 | 使能输出 |
out | 输出 | 结果 |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
Enable=1 时 Result = A >> N;N 是移位位数。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
in是被移位的值,n是位数,out是结果;SrcType决定类型。- 左移低位补 0;右移高位补 0(无符号类型)。
- 移出的位会丢失;左移可能溢出,右移会丢低位。
n超出类型位宽时结果按 TIA 规则处理,建议先限制n范围。
常用场景
常见坑
- 用移位代替乘除:左移 1 位等于乘 2,但溢出/符号行为不同;可读性也差。
- 有符号右移:有符号类型右移的符号位行为要确认;需要逻辑右移用无符号类型。
- n 超范围:先限制
n,不要依赖越界行为。 - 类型不一致:
in/out/SrcType要匹配。 - ENO 未接:后面的指令可能不执行;需要串联时检查 ENO。
