回复:1200 中有没有类似 300 PLC 中的 RESET 指令?

已锁定

大连穆工

  • 帖子

    1579
  • 精华

    1
  • 被关注

    82

论坛等级:奇侠

注册时间:2010-03-01

钻石 钻石 如何晋级?

发布于 2025-04-11 08:17:05

3楼

在 S7-1200/1500 PLC 中,没有直接的 RESET 指令(类似于老款 S7-300 中的 R 复位指令),但可以通过 多种方式 实现 批量复位多个报警位 的功能。以下是几种 简洁高效 的实现方法:

方法 1:使用 RESET_BF(复位位域)指令

适用场景:需要复位 连续地址 的多个位(如 DB1.DBX0.0 开始的 10 个位)。
指令位置:

S7-1200/1500 的指令集 → “移动操作” → RESET_BF(Reset Bit Field)。

示例程序

// 复位 DB1 中从 DBX0.0 开始的 8 个位(相当于复位 DB1.DBB0)
RESET_BF(
   AREA := 16#83,  // DB 块(16#83 表示 DB 区)
   DB   := 1,      // DB 编号
   BYTE := 0,      // 起始字节
   BIT  := 0,      // 起始位
   COUNT:= 8       // 复位位数
);

优点:

适用于 连续位 的批量复位。

执行速度快,占用扫描周期短。

缺点:

不能直接复位 离散不连续 的位(如 DB1.DBX0.0 + DB1.DBX2.5)。

方法 2:使用 FILL_BLK(填充块)清零

适用场景:复位 整个字节/字/双字(如 DB1.DBB0 到 DB1.DBB10)。
指令位置:

“移动操作” → FILL_BLK(Fill Block)。

示例程序

// 将 DB1.DBB0 开始的 4 个字节清零(相当于复位 32 个位)
FILL_BLK(
   SRC  := 0,       // 填充值(0 表示复位)
   DST  := "DB1".DBB0,  // 目标起始地址
   COUNT:= 4        // 填充字节数
);

优点:

适用于 大范围复位(如复位整个报警区)。

比逐位复位更高效。

缺点:

会覆盖整个字节,不能单独保留某些位。

方法 3:使用 MOVE 指令 + 位掩码

适用场景:复位 不连续位 或 特定组合位。
实现方式:

定义一个 “复位字”(如 MW100),每位对应一个报警位。

按下复位按钮时,用 MOVE 将 0 写入报警区。

示例程序

// 复位按钮触发时,将 0 写入报警区
IF "复位按钮" THEN
   "DB1".报警字 := 0;  // 复位整个报警字
END_IF;

优点:

灵活控制 任意位组合。

适用于 非连续位 复位。

缺点:

需要预先规划报警位的存储方式(如用 WORD 或 DWORD 存储多个位)。

方法 4:使用 SCL 高级语言批量复位

适用场景:需要 复杂逻辑 或 条件复位。
示例代码(在 SCL 中):

// 复位 DB1 中的多个报警位
IF "复位按钮" THEN
   "DB1".AlarmBit1 := FALSE;
   "DB1".AlarmBit2 := FALSE;
   "DB1".AlarmBit3 := FALSE;
   // ... 更多位
END_IF;

优点:

代码可读性强,适合 复杂逻辑。

可结合 数组/结构体 批量操作。

缺点:

代码量可能较大(但 TIA Portal 支持 代码折叠 优化)。

推荐方案   场景     推荐方法

连续位复位    RESET_BF    最快、最简洁    

大范围字节复位    FILL_BLK    适用于整块清零    

不连续位复位    MOVE + 位掩码    灵活控制    

复杂逻辑复位    SCL 编程    适合高级应用    

额外建议

如果原 S7-300 程序使用 R 指令,可以在 TIA Portal 中使用 “全局搜索替换” 将其替换为 RESET_BF 或 MOVE 0。

使用 FB/FC 封装复位逻辑,提高代码复用性。


S7-1200/1500 没有 R 指令,但有更强大的 RESET_BF、FILL_BLK 等替代方案。

RESET_BF 是最接近 S7-300 R 指令的方法,适合连续位复位。

MOVE + 位掩码或 SCL 适合复杂复位逻辑。

如果你的旧程序是 批量复位连续位,RESET_BF 是最佳选择!


科技在于不断探索
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15106条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。