スキャンリスト
- 更新日2025-11-21
- 5分で読める
スキャンリストは、チャンネル名および接続、接続解除、トリガ、およびスキャンのタイミングを定義する文字列です。
スキャンリストで使用する文字
以下の表は、NI-SWITCHでプログラミングする際に使用できる文字列を示します。
| 文字列 | 定義 |
|---|---|
| -> | 接続動作で使用されます (channel1->channel2)。たとえば、CH0からCOM0に接続する場合、文字列はch0->com0となります。 |
| ~ | 接続解除動作で「->」と共に使用されます (~channel1->channel2)。この文字はアクションなしモードでのみ有効です。たとえば、CH0とCOM0を接続解除する場合、文字列は~ch0->com0となります。 |
| ; | デバウンスを待機し、上級出力スキャン信号*を送信し、トリガ入力を待機します。 |
| & | 接続/切断アクションを区切ります。たとえば、CH0からCOM0に接続し、CH9からCOM1に接続する場合、文字列はch0->com0 & /ch9->com1となります。ただし、この順番で実行されるわけではなく、遅延も最小限です。 |
| && | デバウンスを待機します。たとえば、ch0->com0 && ch9->com1は、CH0からCOM0に接続し、リレーが整定するのを待機した後、CH9からCOM1に接続します。 |
| : | チャンネルの範囲指定に使用されます。たとえば、channelX:Yのように入力します (X とY は整数)。チャンネル範囲は、複数のスキャンリストエントリを表します。たとえば、ch0:7->com0;という文字列は、8つのスキャンリストエントリを表します。チャンネル範囲を使用する接続アクションの後ろには、セミコロンをつける必要があります。 |
メモ
*リレーが各スキャンリストエントリで接続されていると、スイッチはスキャンアドバンス出力信号のみを送信します。たとえば、非動作モードでは、スキャンリストエントリでのみリレーを切断すると、スイッチはスキャンアドバンス出力信号を送信しません。スキャンリストエントリ、ch1->com1 & ~ch0->com0では、スイッチがスキャンアドバンス出力信号を送信しますが、スキャンリストエントリ、~ch0->com0では送信されません。複数モジュールのスキャンリストに複数のセミコロンが列記されている場合 (例: ch0->com0;;;;)、スイッチは一連の最初のセミコロンに対してのみスキャンアドバンス出力信号を送信します。
ヒント NI-SWITCHは、空白と改行文字を無視します。したがって、空白と改行を使用して、長いリストを読みやすくすることができます。
スキャンリストエントリ
スキャンリストエントリは、セミコロン (;) で区切られたテキストです。スキャンリストは1つまたは複数のスキャンリストエントリで構成されます。たとえば、以下のスキャンリストには2つのエントリが含まれています。
ch0->com0; ch1->com0;
スキャンモード
ドライバによるスキャンリストの解釈方法は、スキャンモードによって決定されます。一般的なスキャンアプリケーションでは、「Break Before Make」スキャンモードが使用されます。
| モード | 説明 |
|---|---|
| Break Before Make (デフォルト) | 現在のスキャンリストエントリを実行する前に、前のスキャンリストエントリによる接続が自動的に切断されます。このモードでは、切断アクション (~channel1->channel2) は無効です。 |
| アクションなし | 接続は、切断アクションによって明示的に切断されるまで維持されます。 |
| Break After Make | 現在サポートされていません。 |
スキャンリストの例
例1
スキャンモード: アクションなし
スキャンリスト: ch0->com0; ~ch0->com0 && ch1->com0; ~ch1->com0 &&
意味:
- ch0をcom0に接続する。
- デバウンスを待機し、スキャンアドバンス信号を送信し、トリガ入力を待機する。
- ch0からcom0への接続を切断し、デバウンスを待機する。
- ch1をcom0に接続する。
- デバウンスを待機し、スキャンアドバンス信号を送信し、トリガ入力を待機する。
- ch1からcom0への接続を切断し、デバウンスを待機する。
- スキャンが連続実行に設定されている場合はステップ1に戻り、それ以外の場合は停止する。
例2
スキャンモード: Break Before Make
スキャンリスト: ch0->com0; ch1->com0;
意味:
この例にあるスキャンリストの内容は、例1のスキャンリストと同じです。ただし、例1にある切断アクションは必要ありません。
例3
スキャンモード: Break Before Makeスキャンリスト: ch0:1->com0;
意味:
このスキャンリストの内容は、例1、例2と同じです。ただし、チャンネル範囲を使用することで入力するキー入力数が省略されます。