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 プロジェクトの実行を開始するために使用します。プロジェクト実行中、ビジョンシステムは撮影、画像処理、アルゴリズム解析を順に実行し、最終的に一連のグリップポイントを出力します。
注意
グリップポイント: システムが対象物として認識した情報単位です。各グリップポイントには、物体のポーズ、ラベル、サイズ、ユーザー定義データなどが含まれます。
呼び出し順序
プロジェクトで使用するパラメータレシピは実行前に設定する必要があるため、103 コマンド: パラメータレシピを切り替え を 101 コマンド より先に呼び出してください。
グリップポイントはプロジェクト実行後にのみ取得できるため、101 コマンド は 102 コマンド: ビジョン結果を取得 または 109 コマンド: ユーザーラベルデータを取得 より先に呼び出す必要があります。
入力パラメータ
名前 |
データタイプ |
オフセット |
コメント |
|---|---|---|---|
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,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:すべてのグリップポイントを取得していない。 |
グリップポイント数 |
今回返すグリップポイント数。 |
今回取得したすべてのグリップポイントのポーズ |
今回取得したすべてのグリップポイントのポーズです。ポーズ種別はロボットのツールポーズであり、ビジョンシステムはグリップポイントの物体ポーズ(つまりビジョン出力ステップの 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 コマンド: カスタムデータを取得
機能紹介
このコマンドは「ビジョン出力」ステップからカスタムポートのデータを取得するために使用し、必要に応じて入力ポートをカスタム設定できます。

注意
図の上部にある
poses、labels、sizes、offsetsなどのプリセットポートデータは、カスタムデータには含まれません。「ビジョン出力」ステップの ポートタイプ パラメータは「カスタム」に設定する必要があり、
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 ポートデータ)を自動的に対応するロボットツールポーズへ変換します。変換プロセスは以下のとおりです。
物体ポーズを四元数形式からオイラー角形式に変換します。
物体ポーズを 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 エラー状態コード を参照してください。