自动化领域的完美搭配 博途HMI与S7 (自动化领域的学者)

本文档将介绍如何根据视频 PLC 与 HMI 的时间同步 实现 PLC 与 HMI 的时间同步。

使用 RD_SYS_T 读取系统时间

要读取系统时间,需要使用 RD_SYS_T 指令。该指令将系统时间输出到指定的 DB。

以下代码示例展示如何使用 RD_SYS_T 指令读取系统时间并输出到 DB1:

LD %RD_SYS_T(S5T0, PDB1.0)

在该代码中,S5T0 表示系统时间,PDB1.0 表示 DB1 的地址。

当调用此代码时,DB1 的输出端将显示以下内容:

%DB1.???

这是因为系统时间是保存在一个 DWORD 中,而 DB1 的输出端只能显示一个字节。

将系统时间转换为 WORD

要将系统时间转换为 WORD,需要使用 MOVW 指令。该指令将一个 DWORD 复制到一个 WORD。

以下代码示例展示如何使用 MOVW 指令将系统时间从 DB1 复制到一个 WORD:

LD %DB1.0 MOVW %DB1.0

在该代码中,第一个 LD 指令将 DB1 的第一个 DWORD 复制到累加器中,第二个 MOVW 指令将累加器中的值复制到 DB1 的第一个 WORD 中。

当调用此代码时,DB1 的输出端将显示以下内容:

%DB1.DBX8.0

这是因为系统时间的高位字节保存在 DB1 的第 8个字节中,低位字节保存在 DB1 的第 9 个字节中。

在 HMI 中调用时间

在 HMI 中调用时间时,需要使用 PLC 中的 RD_SYS_T 指令和 MOVW 指令将系统时间转换为 WORD。

以下代码示例展示如何在 HMI 中调用 PLC 中的时间:

RD_SYS_T(S5T0, PDB1.0) MOVW %DB1.0

在该代码中,RD_SYS_T 指令将系统时间读取到 DB1,MOVW 指令将系统时间从 DB1 复制到一个 WORD。

当调用此代码时,HMI 将显示系统时间。

常见问题

Q: 为什么 RD_SYS_T 指令输出的是 %DB1.???,而不是 %DB1.DBX8.0?

A: 这是因为系统时间是保存在一个 DWORD 中,而 DB1 的输出端只能显示一个字节。

Q: 为什么需要使用 MOVW 指令将系统时间从 DB1 复制到一个 WORD?

A: 这是因为系统时间的高位字节保存在 DB1 的第 8 个字节中,低位字节保存在DB1 的第 9 个字节中。

Q: 为什么在 HMI 中调用时间时需要使用 PLC 中的 RD_SYS_T 指令和 MOVW 指令?

A: 这是因为 HMI 需要 PLC 中的信息来显示时间。

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论