# PLC を使用してジョブを変更する

デバイスがオンラインのときに、現在ロードされているジョブと、ビジョンシステムに保存されている別のジョブを切り替えることができます。ジョブを変更することで、アプリケーションのあらゆる側面 (HMI や入出力設定など) をまとめて変更できますが、次の欠点があります。

- 切り替えに時間がかります (3 ～ 5 秒以上)。実際の所要時間は、スプレッドシート内の LatchImage セルの数など、ジョブの内容によって異なります。
- ジョブを変更するには、ビジョンシステムが一時停止またはオフラインになっている必要があります。
- WebHMI をリロードする必要があります。
- I/O システムの電源を切っている時間が長くなります。
- アダプタが開いていると、変更内容が失われることがあります。
- WebHMI と I/O の設定は、変更がなくてもジョブ間で複製する必要があります。

PLC を使用してジョブを変更するには、次の 2 つの方法があります。

- 名前で指定する:ジョブ名 (*.jobx 拡張子なし) を指定して、ジョブを変更します。この場合、PLC では切り替え先のジョブの名前に対応する ASCII 文字列を userdata セグメントに指定します。

  例えば、userdata セグメントに文字列「myjob」を指定すると、PLC がロードコマンド (16 進値で 0x4000、または10 進値で 16384) を実行した後で、ビジョンシステムが myjob.jobx ジョブをロードします。

- ID で指定する:また、ジョブ ID (16 進値で 0x0 ～ 0x3E7、10 進値で 0 ～ 999 の整数) を指定して、ジョブを変更することも可能です。PLC がロードコマンドを実行すると、ビジョンシステムは、指定した ID 番号を名前に含むジョブが見つかった場合にそのジョブをロードします。

  例えば、111_myjob という名前のジョブがビジョンシステムに保存されている場合、コマンド 111 を指定すると、そのジョブがロードされます。

使用可能なジョブ変更コマンドとコマンド ID の概要については、次の表を参照してください。

アクション | コマンド ID (16 進数) | コマンド ID (10 進数)
Load Job by Name | 0x4000 | 16384
Load Job by ID | 0x0 ～ 0x3E7 | 0 ～ 999

注:

- ジョブを PLC で変更する前に、ビジョンシステムを一時停止またはオフライン状態に設定してください。そうしないと、ジョブ変更要求によって PLC に errorID 0x0401 のエラーが発生します。
- ビジョンシステムに存在しないジョブを指定した場合 (つまり、指定した名前または ID を持つジョブがない場合) は、PLC に errorID 0x0402 のエラーが発生します。

ジョブ変更の実行方法の詳細については、該当するプロトコル別トピックを参照してください。

- Ethernet/IP の場合は、「Ethernet/IP PLC を使用してジョブをロードする」を参照してください。
- PROFINET の場合は、「PROFINET PLC を使用してジョブをロードする」を参照してください。