# 设置读取外部变量值的间隔（扫描速率）

通过扫描速率可以设置外部变量从设备地址读取值的间隔。默认间隔为100毫秒。

最多可以创建16个扫描速率，包括默认扫描速率。然后可将创建的扫描速率分配给外部变量的[扫描速率]属性。

扫描速率的范围是100毫秒到60秒，以100毫秒为增量。

可以对创建的扫描速率进行命名。但默认扫描速率的名称固定为‘DefaultScanrate’。

重要事项: 扫描速率不适用于地址在人机界面内存中管理的驱动程序，例如 Modbus SIO Slave，Modbus TCP Slave，Memory Link SIO 和 Memory Link Ethernet。即使您配置了扫描速率设置，这些驱动程序也不会使用它们。

注：

- 人机界面以扫描速率设置的间隔读取存储在相关外部变量设备地址中的值。例如，如果数据记录收集周期短于扫描速率，则将继续收集相同的值，直到由外部变量对设备地址值进行下一次扫描为止。

- 无法保证扫描速率设置值。
  实际间隔可能长于扫描速率设置，如果发生这种情况，外部变量将以实际间隔读取设备地址值。

- 扫描速率不适用于内部变量。

- 扫描速率适用于读取设备地址值。响应写入请求，按需写入设备地址值。

## 添加扫描速率

1. 在工程浏览器窗口中，从[变量]单击[所有扫描速率]。
2. 在工具栏上，单击[扫描速率]。
3. 在属性窗口中，在 [间隔 (100 ms)] 属性中设置间隔。
   可设范围是1到600（100毫秒到60秒）。

## 将扫描速率分配给外部变量

1. 在工程浏览器窗口中，从[变量]单击[所有变量]。
2. 单击外部变量。
3. 在属性窗口的[扫描速率]属性中，选择所需的扫描速率。

注：

- 如果使用数组或结构，则可以为每个单独的元素指定扫描速率。
  如果将扫描速率设置为父级，同一扫描速率将应用于每个元素。然后可以更改单个元素的扫描速率。

- 可在硬件配置屏幕上查看和编辑扫描速率。请参考下列内容。
  配置扫描速率

## 关闭/开启设备通信

1. 在一个工程中，设置以下脚本，将 ScanOffControl 变量值从 [0] 改为 [1] ，并关闭设备通信。
2. 要重新打开设备通信，将 ScanOffControl 变量值从 [1] 改为 [0] 。

注： 您也可以用以下方法来关闭/开启设备通信。

- 切换一个与 ScanOffControl 源属性相关的位开关。

- 在硬件设置画面上，改变 [扫描关闭控制] 属性中的值。

## 读取设备地址值的时间安排

如果多个扫描速率具有相同的设置，读取关联变量的设备地址值的时间将同步。

如果在人机界面上更改扫描速率设置，读取关联设备地址值的时间安排将与扫描速率设置为相同间隔的其他变量同步。

### 例1）

A：将Scanrate1的设置值更改为100 ms

B：由于间隔相同，它们将自动同步。

:扫描

:同步

### 例2）

A：将Scanrate1的设置值更改为100 ms

B：由于间隔相同，它们将自动同步。

C：小于300ms

:扫描

:同步

### 例3）

停止一个设备的通信扫描会影响与该设备相关的所有变量的扫描。下面的例子显示了与扫描率 1 和 2 相关联的设备 1、2 和 3 的变量。

A: 设备 2 停止扫描 (设置 Driver1.Equipment2.ScanOffControl = 1)。

请注意，其他设备的扫描继续进行，扫描周期不会中断。

B: 设备 2 开始扫描 (重置 Driver1.Equipment2.ScanOffControl = 0)。

开始是在扫描率 2 的扫描周期之间。因此，设备 2 开始一个新的扫描周期，不与其他设备的扫描同步。

:扫描