返回主站|会员中心|保存桌面

安川变频器专营    

变频器、软启动器、伺服驱动器

联系方式
  • 联系人:方经理
  • 电话:13073017555
  • 邮件:gzws26@126.com
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 安川 PLC 循环移位如何实现!
新闻中心
安川 PLC 循环移位如何实现!
发布时间:2026-10-01        浏览次数:0        返回列表

用于普洛菲斯触摸屏管道水流动画,ROTL 左循环、ROTR 右循环(16 位字循环移位指令)

指令说明(梯形图 H‑图)

表格

指令名称功能
ROTLBit Rotate Left,16 位字循环左移 1 位最高位移出来的 bit 自动补到最低位;整个 16 位循环转圈
ROTRBit 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 图)

  1. 上电初始化(只运行一次)第一扫描脉冲 MB9000(系统上电 ON 一个扫描周期)MB9000 → MOVW  #1 MW10

上电 MW10 赋值 = 1(二进制 0000 0000 0000 0001),保证第一个 bit 是 1,才有一个点亮的粒子。

  1. 定时脉冲产生(100ms 脉冲,MB101)

安川梯形图 TIM 定时器单位是msMB100(水泵运行) → TIM #100 MB101MB101 是定时器输出,每 100ms 产生一个上升沿脉冲。

  1. 脉冲驱动循环左移 ROTLMB101 上升沿(↑) → ROTL MW10

每来一次脉冲,MW10 循环左移 1 位;1 里面的 1 就沿着 bit0→bit1→bit2……bit15→bit0 循环转圈。

地址分配清单

表格

变量含义
MB100水泵运行信号;ON 启动水流动画,OFF 停止移位
MW10循环移位 16 位寄存器;给到触摸屏
MW10.0~MW10.78 个 bit,对应触摸屏管道 8 个流动小圆点【显示 / 隐藏动画】

触摸屏(GP‑ProEX)侧设置

  1. 在管道内部摆放 8 个蓝色小圆图形;

  2. 每个小圆【动画‑显示隐藏】:

    • 圆点 1:地址 MW10.0;ON 显示 OFF 隐藏

    • 圆点 2:MW10.1

    • ……

    • 圆点 8:MW10.7

  3. 通讯选择安川 MP (MEMOBUS) 协议,直接读取 MW 寄存器。

重要踩坑点

  1. ROTL/ROTR 边沿触发!

如果你直接 MB100 长通驱动 ROTL,只会移位 1 次就不动;必须定时器脉冲上升沿触发!

  1. 初始化 MW10=1 很关键!

上电如果 MW10 等于 0,全部 bit 都是 0;移位永远全部是 0,屏幕看不到流动的点。上电 MOVW #1 MW10。

  1. 速度调节:修改 TIM 定时器设定值;#80水流快;#200水流慢;不要小于 50ms,触摸屏刷新跟不上会闪烁。

  2. 停止逻辑: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 脉冲,专门做初始化用。

收缩
  • QQ咨询

  • 电话咨询

  • 13073017555
  • 添加微信客服