明示的メッセージ
非明示的メッセージと異なり、明示的メッセージは特定のデバイスに送信され、そのデバイスは常にそのメッセージへの返信で応答します。結果として、明示的メッセージは、あまり頻繁に発生しない操作に適しています。明示的メッセージは、In-Sight ビジョンシステムの EtherNet/IP ビジョンオブジェクトの属性の読み取りと書き込みに使用できます。これらの属性は、ジョブの変更、画像の取り込み、ネイティブモードコマンドの送信、および結果データの取得に使用されます。
例: ジョブの変更
ControlLogix PLC から In-Sight ビジョンシステムに送信される最も一般的な明示的メッセージは、ジョブを変更する命令です。明示的メッセージは、MSG 命令を使用して ControlLogix PLC から送信されます。以下の手順では、RSLogix で MSG 命令を追加して、In-Sight ビジョンシステム上のジョブを変更する方法を説明します。
-
次のタグを ControlLogix の [Controller Tags] ダイアログに追加します。
注 : この例では、ジョブ名の最大長が 30 文字であることを前提にしています。ジョブ名がこれより長い場合は、最も長いジョブ名に 2 文字を加えた文字数に等しい SINT 構造体の数が含まれるように、SetJobData バッファを拡張する必要があります。 -
RSLogix 5000 プロジェクトに、次のようなラダーを作成します。
注 : このスニペットは、SetJobData バッファの最初の 2 バイトにジョブ名の長さをコピーし、同じバッファの 3 番目のバイト以降に文字列データをコピーして、そのバッファをビジョンシステムの JobName 属性に送信します。ジョブ名の末尾には、「.job」のファイル拡張子を追加してください。このラダーは、非明示的接続で Set Offline ビットを使用して、In-Sight ビジョンシステムをオフラインにします。ビジョンオブジェクトの JobName 属性は、ジョブを変更する前に In-Sight ビジョンシステムをオフラインにする必要があるためです。Set Offline ビットは、In-Sight ビジョンシステムが Online ビットを Low にするのを待って、新規ジョブ名を含むデータをセットアップし、MSG 命令を In-Sight ビジョンシステムに送信します。ジョブの変更が完了した後、TriggerSetJob タグの立ち下がりエッジによって、In-Sight ビジョンシステムはオンラインに戻ります。
-
MSG 命令をセットアップするには、[InSight_SetJobMsg] ボタンをクリックします。[Message Configuration] ダイアログが表示されます。
注 : この例では、ジョブ名の最大長が 30 文字であることを前提にしています。ジョブ名がこれより長い場合は、最も長いジョブ名に 2 文字を加えた文字数に等しいソース長を入力する必要があります。次のフィールドを設定する必要があります。
- [Message Type]: これは、送信されるメッセージのタイプです。ビジョンオブジェクトなど、ベンダー固有のオブジェクトにメッセージを送信するには、[CIP Generic] を選択します。
- [Service Type]: これは、オブジェクトに送信されるサービスコードです。ビジョンオブジェクトの 1 つの属性を変更するには、[Set Attribute Single] を選択します。
- [Service Code]: このフィールドによって、任意のタイプのサービスをオブジェクトに送信できます。事前定義のサービスタイプが選択されている場合、このフィールドは無効になります。
- [Class]: これは、メッセージが送信されるクラスの識別子です。ビジョンオブジェクトの ID は Hex 78 です。
- [Instance]: このフィールドは、メッセージの送信先オブジェクトのインスタンス番号を指定します。In-Sight ビジョンシステムの場合、ビジョンオブジェクトは 1 つのインスタンスしか持たないため、このフィールドは 1 に設定する必要があります。
- [Attribute]: メッセージの送信先の属性番号。この場合、JobName 属性の ID は 14 Hex です。
- [Source Element]: このフィールドは、メッセージとともに送信されるデータのソースを示します。JobName 属性の場合、2 バイトの長さのヘッダが付いた String を送信する必要があります。この文字列は、前の手順で作成されたラダーの COP および MOV 命令を使用して書式設定されました。新規ジョブ名を JobName 属性に送信するには、このフィールドを InSight_SetJobData に設定します。
- [Source Length]: このフィールドは、オブジェクトに送信されるソース要素のバイト数を示します。この例では、ソース要素内のすべてのデータを送信する必要があるため、32 バイトに設定します。
-
次に、MSG 命令に対して、明示的メッセージの送信先デバイスを指定する必要があります。[Message Configuration] ダイアログの [Communication] タブをクリックして、[Browse] ボタンをクリックします。下の図に示されているように、[I/O Configuration] から In-Sight ビジョンシステムを選択します。
-
プログラムを ControlLogix PLC にダウンロードすると、InSight_JobName および InSight_TriggerSetJob コントローラタグを使用することによって、現在のジョブを RSLogix と交換できるようになります。
注 : ジョブ名の末尾には、「.job」の拡張子を追加してください。 - Job Loading、Job Load Complete、および Job Load Failed ビットを使用して、ジョブのロードの可否を判定できます。