# 外部変数値を読み込む間隔を設定したい (スキャンレート)

スキャンレートを使用して、外部変数がデバイスアドレスの値を読み出す間隔を設定できます。デフォルトの間隔は 100 ミリ秒です。

デフォルトスキャンレートを含め最大 16 のスキャンレートを作成できます。作成したスキャンレートを外部変数の [スキャンレート] プロパティに割り当てることができます。

スキャンレートの範囲は 100 ミリ秒から 60 秒で 100 ミリ秒単位に設定できます。

作成したスキャンレートに名前をつけることができます。ただし、デフォルトスキャンレートは 'DefaultScanrate’ で固定されます。

重要: スキャンレートは、Modbus SIO スレーブや Modbus TCP スレーブ、メモリーリンク SIO、メモリーリンクイーサネットなど、表示器のメモリーで管理されているアドレスを持つドライバーでは使用できません。スキャンレートを設定してもこれらのドライバーでは使用されません。

MEMO:

- 表示器は、外部変数に関連付けられたデバイスアドレスに格納された値をスキャンレートで設定された間隔で読み出します。例えば、データロギングのデータ収集サイクルがスキャンレートよりも短い場合、外部変数に関連付けられたデバイスアドレス値の次のスキャンまで、同じ値が収集されます。

- スキャンレートで設定した値は保証されません。
  実際の間隔はスキャンレート設定より長くなる可能性があり、その場合、外部変数は実際の間隔でデバイスアドレスの値を読み取ります。

- スキャンレートは内部変数には適用されません。

- スキャンレートはデバイスアドレス値の読み取りに使用されます。デバイスアドレス値の書き込みは、書き込み要求に応じてオンデマンドで行われます。

## スキャンレートの追加

1. プロジェクトエクスプローラーウィンドウの [変数] で [すべてのスキャンレート] をクリックします。
2. ツールバーで [スキャンレート] をクリックします。
3. プロパティウィンドウで、[間隔 (100 ms)] プロパティで間隔を設定します。
   範囲は 1 から 600 (100 ミリ秒から60 秒) まで設定できます。

## スキャンレートを外部変数に割り当てる

1. プロジェクトエクスプローラーウィンドウの [変数] で [すべての変数] をクリックします。
2. 外部変数をクリックします。
3. プロパティウィンドウの [スキャンレート] プロパティで使用したいスキャンレートを選択します。

MEMO:

- 配列または構造を使用している場合は、個々の要素ごとにスキャンレートを指定できます。
  スキャンレートを親に設定すると、各要素に同じスキャンレートが適用されます。適用後、個々の要素のスキャンレートを変更できます。

- ハードウェア設定画面でスキャンレートを表示および変更することができます。次を参照してください。
  スキャンレートの設定

## 接続機器の通信 ON/OFF

1. プロジェクトでは、以下のスクリプトを設定して ScanOffControl の変数値を [0] から [1] に変更し、接続機器の通信をオフにします。
2. 接続機器の通信を再度オンにするには、ScanOffControl の変数値を [1] から [0] に変更します。

MEMO: 以下の方法でも接続機器の通信を ON/OFF できます。

- ScanOffControl のソースプロパティに関連付けられたビットスイッチを切り替えます。

- ハードウェア設定画面で、[Scan Off Control] プロパティの値を変更します。

## デバイスアドレス値を読み取るタイミング

複数のスキャンレートの設定が同じ場合、関連する変数のデバイスアドレス値を読み取るタイミングが同期されます。

表示器でスキャンレート設定を変更すると、関連するデバイスアドレス値を読み取るタイミングが、スキャンレートが同じ間隔に設定されている他の変数と同期されます。

### 例: 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 は新しいスキャンサイクルを開始し、他の機器のスキャンとは同期されません。

: スキャン