Siemens PLC Snap7 標準コマンド説明

本ドキュメントでは、Siemens Snap7 プロトコル(S7 プロトコル)に基づく標準インターフェースコマンドを説明します。

コマンド一覧

RVS 2.0 の S7 プロトコル通信では、以下の標準コマンドをサポートしています。

レジスタ使用説明

フィールド名

タイプ

オフセット/アドレス

説明

Command Trigger

Bool

0.0

トリガー信号

Command

Int

2.0

コマンドコード

Pose Type

Int

4.0

ポーズタイプ

Pose Number

Int

6.0

期待グリップポイントまたはパスポイント数

Vision Project No.

Int

8.0

プロジェクト番号

Recipe No.

Int

10.0

パラメータレシピ番号

Flange Pose

Array[0..5] of Real

36.0

フランジポーズデータ

External Input Box Dimension

Array[0..2] of Real

68.0

RVS 2.0 プロジェクトへ入力する物体寸法

Index Counter

Int

108.0

インデックス数

Index Name

Int

110.0

インデックス番号

フィールド名

タイプ

オフセット/アドレス

説明

Trigger Acknowledge

Bool

194.0

トリガー確認

Status Code

Int

200.0

状態コード

Status of Pose Sent

Bool

202.0

すべてのグリップポイントを取得したか

Number of Pose Sent

Int

204.0

グリップポイント数

Target Pose

Array[0..39, 0..5] of Real

208.0

今回取得したすべてのグリップポイントのポーズ

Target Label

Array[0..39] of Int

1168.0

今回取得したすべてのグリップポイントのラベル

Target Tool ID

Array[0..39] of Int

1248.0

今回取得したすべてのグリップポイントのエンドエフェクタ番号

コマンドの送受信

ロボットまたは上位装置(サーバー)が RVS 2.0 ビジョンシステム(クライアント)へコマンドを送信し、RVS 2.0 ビジョンシステムは処理後に結果をロボットまたは上位装置へ返します。

注意

現在のバージョンは本ソフトウェアが S7 クライアントとして動作することのみサポート。

コマンドのデータ単位

  • RVS 2.0 の内部では四元数でポーズを表しますが、コマンド通信時には自動的にオイラー角形式へ変換されます。

  • ロボットのフランジポーズまたはツールポーズは、位置と姿勢で構成されます。位置(XYZ 座標値)の単位はミリメートル(mm)、姿勢はオイラー角で表し、単位は度(°)です。

101 コマンド: RVS 2.0 プロジェクトを実行

機能紹介

このコマンドは、指定された RVS 2.0 プロジェクトの実行を開始するために使用します。プロジェクト実行中、ビジョンシステムは撮影、画像処理、アルゴリズム解析を順に実行し、最終的に一連のグリップポイントを出力します。

注意

グリップポイント: システムが対象物として認識した情報単位です。各グリップポイントには、物体のポーズ、ラベル、サイズ、ユーザー定義データなどが含まれます。

呼び出し順序

入力パラメータ

名前

データタイプ

オフセット

コメント

Command

Int

2.0

コマンドコードは 101

Vision Project No.

Int

8.0

プロジェクト番号

Pose Number

Int

6.0

期待するグリップポイント数

Pose Type

Int

4.0

ロボットポーズタイプ

Flange Pose

Array[0..5] of Real

36.0

ロボットポーズ。Flange Pose はフランジポーズデータです。

パラメータ説明

パラメータ

説明

RVS 2.0 プロジェクト番号

プロジェクトリストウィンドウで確認、プロジェクト名称の前の数字が番号。

期待グリップポイント数

取得したいグリップポイント数を指定します。
0: プロジェクトが出力したすべてのグリップポイントを取得します。
正の整数: 指定した数のグリップポイントを取得します。
実際の出力数が指定値より少ない場合は、そのすべてを返します。指定値以上ある場合は、指定数だけ返します。

ロボットポーズタイプ

ロボットポーズの入力形式を指定します。
0: ロボットポーズを入力しません。
2: ロボットの現在フランジポーズを入力します。

ロボットポーズ

ロボットポーズタイプに応じたデータを入力します。詳細は下表を参照してください。

ロボットポーズタイプとポーズデータ説明

ロボットポーズタイプ

ロボットポーズ形式

説明

適用シーン

0

0,0,0,0,0,0(プレースホルダ。実際には無効)

ビジョンシステムにロボットポーズを入力しません。

カメラが Eye To Hand 方式で取り付けられており、プロジェクトが事前撮影を必要としない場合に使用します。

2

ロボットの現在フランジポーズ

ロボットの現在フランジポーズを入力し、ビジョンシステムがカメラ位置を計算するために使用します。

ほとんどのシーンで使用でき、特に Eye In Hand 方式に適しています。

出力パラメータ

フィールド名

タイプ

オフセット/アドレス

説明

Status Code

Int

200.0

状態コード

コマンドが正常に実行された場合、状態コードは 1102 です。異常時には対応するエラーコードを返します。詳細は RVS 2.0 エラー状態コード を参照してください。

102 コマンド: ビジョン結果を取得

機能紹介

このコマンドは、RVS 2.0 プロジェクト実行後に出力されたビジョン結果(一連のグリップポイント)を取得するために使用します。グリップポイントの物体ポーズ(ビジョン出力ステップの Any ポートデータに対応)は、ビジョンシステムによって対応するロボットのツールポーズへ変換済みです。

呼び出し順序

このコマンドは、101 コマンド: RVS 2.0 プロジェクトを実行 の成功後、かつ 109 コマンド: ユーザーラベルデータを取得 の後に呼び出す必要があります。このコマンドでデータを取得すると、ビジョン出力ステップのデータはクリアされます。

入力パラメータ

名前

データタイプ

オフセット

コメント

Command

Int

2.0

コマンドコードは 102

Vision Project No.

Int

8.0

RVS 2.0 プロジェクト番号

Index Counter

Int

108.0

インデックス数

Index Name

Int

110.0

インデックス番号

RVS 2.0 プロジェクト番号

101 指令で実行したプロジェクト番号と一致する必要がある。

インデックス数およびインデックス番号(任意項目)

取得するグリップポイントのインデックス数と番号を指定します。インデックスは 0 から始まります。たとえば、現在のグリップポイントが 3 つあり、そのうち 2 つを取得したい場合は、0,1 や 0,2、1,2 のように指定できます。

出力パラメータ

名前

データタイプ

オフセット

コメント

Status Code

Int

200.0

状態コード

Status of Pose Sent

Bool

202.0

すべてのグリップポイントを取得したか

Number of Pose Sent

Int

204.0

グリップポイント数

Target Pose

Array[0..39, 0..5] of Real

208.0

今回取得したすべてのグリップポイントのポーズ

Target Label

Array[0..39] of Int

1168.0

今回取得したすべてのグリップポイントのラベル

Target Tool ID

Array[0..39] of Int

1248.0

今回取得したすべてのグリップポイントのエンドエフェクタ番号

パラメータ説明

パラメータ

説明

状態コード

1100: 実行成功です。その他の値はエラーコードです。詳細は RVS 2.0 エラー状態コード を参照してください。

すべてのグリップポイントを取得したか

False:すべてのグリップポイントを取得していない。
True:すべてのグリップポイントを取得した。

グリップポイント数

今回返すグリップポイント数。

今回取得したすべてのグリップポイントのポーズ

今回取得したすべてのグリップポイントのポーズです。ポーズ種別はロボットのツールポーズであり、ビジョンシステムはグリップポイントの物体ポーズ(つまりビジョン出力ステップの Any ポートデータ)を自動的に対応するロボットのツールポーズへ変換します。

今回取得したすべてのグリップポイントのラベル

今回取得したすべてのグリップポイントのラベル。ラベル情報がない場合、ラベル値はデフォルトで 0。

今回取得したすべてのグリップポイントのエンドエフェクタ番号

今回取得したすべてのグリップポイントのエンドエフェクタ番号。ない場合はデフォルトで 0。

103 コマンド: パラメータレシピを切り替え

機能紹介

このコマンドは、RVS 2.0 プロジェクトで使用するパラメータレシピを切り替えるために使用します。

呼び出し順序

このコマンドは 101 コマンド: RVS 2.0 プロジェクトを実行 より前に呼び出す必要があります。

入力パラメータ

名前

データタイプ

オフセット

コメント

Command

Int

2.0

コマンドコードは 103

Vision Project No.

Int

8.0

RVS 2.0 プロジェクト番号

Recipe No.

Int

10.0

パラメータレシピ番号

  • RVS 2.0 プロジェクト番号

    プロジェクトリストウィンドウで確認できます。プロジェクト名の前に表示される数字が番号です。

  • パラメータレシピ番号

    パラメータレシピの順序を確認

出力パラメータ

フィールド名

タイプ

オフセット/アドレス

説明

Status Code

Int

200.0

状態コード

コマンドが正常に実行された場合、状態コードは 1107 です。異常時には対応するエラーコードを返します。詳細は RVS 2.0 エラー状態コード を参照してください。

109 コマンド: ユーザーラベルデータを取得

機能紹介

このコマンドは、RVS 2.0 プロジェクトが定義するユーザーラベルデータ(ビジョン出力ステップの「ユーザーラベル」ピン入力に対応)を取得するために使用します。

呼び出し順序

このコマンドは 101 コマンド: RVS 2.0 プロジェクトを実行 の成功後に呼び出し、102 コマンド: ビジョン結果を取得 の前に呼び出します。

入力パラメータ

名前

データタイプ

オフセット

コメント

Command

Int

2.0

コマンドコードは 109

Vision Project No.

Int

8.0

RVS 2.0 プロジェクト番号

RVS 2.0 プロジェクト番号

101 コマンドで実行したプロジェクト番号と一致している必要があります。

出力パラメータ

名前

データタイプ

オフセット

コメント

Status Code

Int

200.0

状態コード

Target Label

Array[0..39] of Int

1168.0

今回取得したユーザーラベルデータ

Status of Pose Sent

Bool

202.0

すべてのユーザーラベルデータを取得したか

コマンドが正常に実行された場合、状態コードは 1100 です。異常時には対応するエラーコードを返します。詳細は RVS 2.0 エラー状態コード を参照してください。

110 コマンド: カスタムデータを取得

機能紹介

このコマンドは「ビジョン出力」ステップからカスタムポートのデータを取得するために使用し、必要に応じて入力ポートをカスタム設定できます。

注意

  1. 図の上部にある poseslabelssizesoffsets などのプリセットポートデータは、カスタムデータには含まれません。

  2. 「ビジョン出力」ステップの ポートタイプ パラメータは「カスタム」に設定する必要があり、poses ポートが存在する必要があります。

呼び出し順序

このコマンドは、101 コマンド: RVS 2.0 プロジェクトを実行 が正常にプロジェクトを実行した後に呼び出す必要があります。

入力パラメータ

名前

データタイプ

オフセット

コメント

Command

Int

2.0

コマンドコードは 110

Vision Project No.

Int

8.0

RVS 2.0 プロジェクト番号

RVS 2.0 プロジェクト番号

プロジェクトリストウィンドウで確認できます。プロジェクト名の前に表示される数字が番号です。101 コマンドで実行したプロジェクト番号と一致している必要があります。

出力パラメータ

名前

データタイプ

オフセット

コメント

Status Code

Int

200.0

状態コード

Status of Pose Sent

Bool

202.0

すべてのビジョンポイントを取得したか

Target Pose

Array[0..39, 0..5] of Real

208.0

今回取得したすべてのビジョンポイントのポーズ

Target Label

Array[0..39] of Int

1168.0

今回取得したすべてのビジョンポイントのラベル

Custom Vision Output

Array[0..39, 0..9] of Real

1456.0

今回取得したすべてのビジョンポイントのカスタムデータ

Status Code

コマンドが正常に実行された場合、状態コードは 1100 です。異常時には対応するエラーコードを返します。詳細は RVS 2.0 エラー状態コード を参照してください。

Status of Pose Sent

このパラメータは、すべてのビジョンポイントを取得したかどうかを示します。値は False または True です。

  • False:まだすべてのビジョンポイントを取得していません。

  • True:すべてのビジョンポイントを取得しました。

Target Pose

このパラメータは、今回取得したすべてのビジョンポイントのポーズを示します。 ビジョンシステムは、ビジョンポイントの物体ポーズ(つまり「ビジョン出力」ステップの poses ポートデータ)を自動的に対応するロボットツールポーズへ変換します。変換プロセスは以下のとおりです。

  1. 物体ポーズを四元数形式からオイラー角形式に変換します。

  2. 物体ポーズを X 軸周りに 180° 回転させ、Z 軸が下を向くようにします。

Target Label

このパラメータは、今回取得したすべてのビジョンポイントのラベルを示します。

注釈

  • ラベルは整数形式の文字列である必要があります。

  • ラベル情報がない場合は、ラベル値はデフォルトで 0 になります。

Custom Vision Output

今回取得したすべてのビジョンポイントのカスタムデータです。カスタムデータ項目は、カスタムポート名のアルファベット順(A—Z)に並べられます。

たとえば、「ビジョン出力」ステップの各ポートのデータが下の表のようになっている場合、ロボットが取得する 1 つ目のビジョンポイントの カスタムデータ項目 は [0, 0, 1] と [0, 0]、2 つ目のビジョンポイントの カスタムデータ項目 は [1, 0, 0] と [1, 1] です。

ポート名

poses

labels

カスタムデータ項目1

カスタムデータ項目2

ポートデータ

[

[

[

[

[0, 0, 0, 1, 0, 0, 0],

"0",

[0, 0, 1],

[0, 0],

[0, 0, 0, 1, 0, 0, 0],

"1"

[1, 0, 0]

[1, 1]

]

]

]

]

1 つ目のビジョンポイント

[0, 0, 0, 1, 0, 0, 0]

0

[0, 0, 1]

[0, 0]

2 つ目のビジョンポイント

[0, 0, 0, 1, 0, 0, 0]

1

[1, 0, 0]

[1, 1]

501 コマンド: RVS 2.0 プロジェクトに物体寸法を入力

機能紹介

このコマンドは、RVS 2.0 プロジェクトに物体寸法を入力するために使用します。入力した物体寸法は「物体寸法を読み取り」ステップの ボックスサイズ設定 パラメータの値になります。下図を参照してください。

注意

このコマンドを使用する場合、RVS 2.0 プロジェクトには「物体寸法を読み取り」ステップが 1 つだけ存在する必要があります。それ以外の場合、ビジョンシステムはエラーを返します。

呼び出し順序

このコマンドは 101 コマンド: RVS 2.0 プロジェクトを実行 より前に呼び出す必要があります。

入力パラメータ

名前

データタイプ

オフセット

コメント

Command

Int

2.0

コマンドコードは 501

Vision Project No.

Int

8.0

RVS 2.0 プロジェクト番号

External Input Box Dimension

Array[0..2] of Real

68.0

RVS 2.0 プロジェクトへ入力する物体寸法

Vision Project No.

プロジェクトリストウィンドウで確認できます。プロジェクト名の前に表示される数字が番号です。101 コマンドで実行したプロジェクト番号と一致している必要があります。

External Input Box Dimension

物体寸法の長さ、幅、高さで、単位はミリメートル(mm)です。寸法値は「物体寸法を読み取り」ステップで読み取られ、X 軸上の長さY 軸上の長さZ 軸上の長さ にそれぞれ書き込まれます。

出力パラメータ

名前

データタイプ

オフセット

コメント

Status Code

Int

200.0

状態コード

Status Code

コマンドが正常に実行された場合、状態コードは 1108 です。異常時には対応するエラーコードを返します。詳細は RVS 2.0 エラー状態コード を参照してください。

901 コマンド: システム状態を取得

機能紹介

このコマンドは、RVS 2.0 ビジョンシステムが準備完了かどうかを確認するために使用します。確認内容には、RVS 2.0 の状態とカメラの状態が含まれます。

入力パラメータ

名前

データタイプ

オフセット

コメント

Command

Int

2.0

コマンドコードは 901

出力パラメータ

名前

データタイプ

オフセット

コメント

Status Code

Int

200.0

状態コード

状態コード

コマンドが正常に実行された場合、状態コードは 1101 です。異常時には対応するエラーコードを返します。詳細は RVS 2.0 エラー状態コード を参照してください。