用于普洛菲斯触摸屏管道水流动画,ROTL 左循环、ROTR 右循环(16 位字循环移位指令)
指令说明(梯形图 H‑图)
表格
| 指令 | 名称 | 功能 |
|---|---|---|
| ROTL | Bit Rotate Left,16 位字循环左移 1 位 | 最高位移出来的 bit 自动补到最低位;整个 16 位循环转圈 |
| ROTR | Bit Rotate Right,16 位字循环右移 1 位 | 最低位移出来的 bit 自动补到最高位;16 位循环转圈 |
ROTL / ROTR 是边沿触发!条件从 OFF→ON 执行移位 1 次;如果线圈一直 ON 不会持续移位!必须用定时器脉冲(上升沿)驱动,不能直接长通驱动 ROTL。
寄存器:MW 是 16 位内部字寄存器;本例使用 MW10 作为循环移位寄存器(用来给到触摸屏做水流粒子显示)。
目标:普洛菲斯水流动画需求
MW10 的 bit0‑bit7 一共 8 个 bit,依次循环置 1;触摸屏 8 个小圆点分别绑定 MW10.0 ~ MW10.7 的可见动画。
MB100:水泵运行信号;MB100=ON 才启动水流动画
定时器 TIM,产生 100ms 脉冲(移位速度;数值越小水流跑越快,建议 80‑200ms)
MW10:移位字寄存器;上电初始化 MW10=1(0000_0001,先把第 0 位置 1,起始点亮第一个点)
梯形图逻辑思路(MPE720 H 图)
上电初始化(只运行一次)第一扫描脉冲 MB9000(系统上电 ON 一个扫描周期)
MB9000 → MOVW #1 MW10
上电 MW10 赋值 = 1(二进制 0000 0000 0000 0001),保证第一个 bit 是 1,才有一个点亮的粒子。
定时脉冲产生(100ms 脉冲,MB101)
安川梯形图 TIM 定时器单位是ms
MB100(水泵运行) → TIM #100 MB101MB101 是定时器输出,每 100ms 产生一个上升沿脉冲。
脉冲驱动循环左移 ROTL
MB101 上升沿(↑) → ROTL MW10
每来一次脉冲,MW10 循环左移 1 位;1 里面的 1 就沿着 bit0→bit1→bit2……bit15→bit0 循环转圈。
地址分配清单
表格
| 变量 | 含义 |
|---|---|
| MB100 | 水泵运行信号;ON 启动水流动画,OFF 停止移位 |
| MW10 | 循环移位 16 位寄存器;给到触摸屏 |
| MW10.0~MW10.7 | 8 个 bit,对应触摸屏管道 8 个流动小圆点【显示 / 隐藏动画】 |
触摸屏(GP‑ProEX)侧设置
在管道内部摆放 8 个蓝色小圆图形;
每个小圆【动画‑显示隐藏】:
圆点 1:地址 MW10.0;ON 显示 OFF 隐藏
圆点 2:MW10.1
……
圆点 8:MW10.7
通讯选择安川 MP (MEMOBUS) 协议,直接读取 MW 寄存器。
重要踩坑点
ROTL/ROTR 边沿触发!
如果你直接 MB100 长通驱动 ROTL,只会移位 1 次就不动;必须定时器脉冲上升沿触发!
初始化 MW10=1 很关键!
上电如果 MW10 等于 0,全部 bit 都是 0;移位永远全部是 0,屏幕看不到流动的点。上电 MOVW #1 MW10。
速度调节:修改 TIM 定时器设定值;
#80水流快;#200水流慢;不要小于 50ms,触摸屏刷新跟不上会闪烁。停止逻辑:MB100 水泵 OFF,定时器停止;移位直接停下来,水流定格在当前位置。
如果希望水泵停止后水流全部消失:再加一条逻辑 MB100=OFF 时 MOVW #0 MW10,全部 bit 清零,圆点全部隐藏。
补充:如果想水流反向流动
把指令从ROTL(循环左移)换成ROTR(循环右移),粒子流动方向反过来。
备选方案:如果想用 ST 结构化文本实现循环移位
IF MB100 AND MB101 THEN
MW10 := RotateLeft(MW10,1);
END_IF;
提示:安川 MP 系统内部特殊继电器 MB9000:上电第一扫描 ON 脉冲,专门做初始化用。

