SIEMENS PLC程序解读 -BLKMOV (指定长度数据批量传输)

1、程序代码

2、程序解读

这段西门子 PLC 程序(程序段 10)实现了基于条件的数据块移动功能,具体解释如下:

  1. 条件触点

    • %M0.1 Always<>(TRUE)(注释为 AT<>1):当 M0.1 的值不等于 1 时,该触点导通,触发后续指令执行。这可能是在监控某个状态(如 AT 相关状态)是否满足特定条件(不等于 1)。
  2. 第一个 BLKMOV 指令

    • 功能:将源地址的数据块移动到目标地址。
    • SRCBLKP#110001.0 BYTE 12,表示从地址 110001.0 开始,连续 12 个字节的数据。
    • DSTBLKUNE_A_IN,目标地址为 UNE_A_IN(自定义数据块或变量)。
    • 该指令将 110001.0 起始的 12 字节数据批量传输至 UNE_A_IN,用于存储输入数据(如转台 A 面的 ASI 总线输入信号)。
  3. 第二个 BLKMOV 指令

    • 功能:同上,执行另一组数据块移动。
    • SRCBLKUNE_A_OUT,源地址为 UNE_A_OUT(自定义数据块或变量,可能存储处理后的输出数据)。
    • DSTBLKP#Q10013.0 BYTE 3,表示将数据移动到输出地址 Q10013.0 开始的连续 3 个字节。
    • 该指令将 UNE_A_OUT 中的数据批量输出至 Q10013.0 起始的地址,用于控制外部设备(如转台 A 面的输出信号)。
  4. 整体作用

    M0.1 <> 1(或满足 AT<>1 条件)时,通过 BLKMOV 指令高效地进行数据交互:

    • 第一组操作将输入数据(110001.0 起始的 12 字节)存入 UNE_A_IN
    • 第二组操作将 UNE_A_OUT 中处理后的数据输出至 Q10013.0 起始的 3 字节地址,实现转台 A 面相关输入输出信号的批量处理,可能用于 ASI 总线通信或设备状态控制。

BLKMOV(块移动)指令用于批量传输数据,提高数据处理效率,适用于工业自动化中多字节信号的集中读写场景。