WriteImageSFTP

SSH プロトコルを使用して通信し、現在の画像をネットワークの SFTP サーバに書き込みます。画像ファイルとして、画像上にグラフィックスオーバレイを含めた SVG ファイルを作成することもできます。一般的には、検査に失敗した画像を自動保存するために使用します。

:  
  • この関数は、別の In-Sight ビジョンシステムまたはエミュレータへの画像転送には使用できません。ビジョンシステムは、SFTP ネットワーク上のクライアントとしてのみ動作します。
  • この関数では、画像ファイルと SVG ファイルを送信するために In-Sight ビジョンシステムがオンラインである必要があります。
  • In-Sight ビジョンシステムにリモートでログオンしている場合、関数を使用すると、画像取り込みごとに画面の画像が更新されないことがあります。
  • 関数を含む、メモリを多く使用するジョブが繰り返し実行されると、FTP コマンド「Get image.jpg」 (または .bmp) は失敗する場合があります。これは、ビジョンシステムのメモリが断片化されすぎるためです。ジョブの実行は正常に継続されます。
  • ビジョンシステムをオンラインにしているときに AcquireImage パラメータを変更すると、関数によって現在の画像が送信されます。
  • この関数を含むジョブを In-Sight Explorer 4.3.0 以上で保存した場合、このジョブは、In-Sight Explorer 4.3.0 以上とのみ互換性を持ちます。
  • FTP サーバ接続のポート番号を変更するには、ホスト名 (または IP アドレス)、コロン (:)、新しいポート番号の順に追記します。例えば、現在のホスト名が PRODUCTION1 である場合、ポート番号をデフォルト (ポート 21 含む) からポート 34 に変更するには、ホスト名パラメータに PRODUCTION1:34 と指定します。
  • エミュレータフォルダは、C:\ProgramData\Cognex\In-Sight\Emulators\x.x.x に内にあります (Windows 7/Windows 10)。詳細については、「[オプション] ダイアログ (エミュレーションパネル)」のトピックを参照してください。

  • 保存された画像のデフォルト位置をエミュレータフォルダとして保持し、ディレクトリに 250 以上の画像ファイルの保存を許可する場合、ビジョンシステムはファームウェアの更新を実行することができなくなります。ディレクトリから画像ファイルを削除して、ファームウェアの更新機能を回復させます。

WriteImageSFTPの入力パラメータ

Syntax:WriteImageSFTP(イベント,ホスト名,ユーザ名,パスワード,画像,ファイル名,最大追記値,リセット,データフォーマット,グラフィックスオーバーレイの保存,解像度,SFTP キューを無効にする)

イベント

指定した値を読み取るイベントを指定します。このパラメータは、次のいずれかを参照している必要があります。

  • AcquireImage 関数を含んでいるセル A0 の画像データ構造体 (デフォルト)
  • イベント関数を含んでいるセル。
  • Button 関数を含んでいるセル
:  デフォルトのイベント参照が削除された場合、この値はチェックボックスで置き換えられます。イベントとして別のセルを参照した場合、この関数は、参照されたセルに基づき、条件に従って実行されます。このチェックボックスが ON の場合、関数への入力が更新されると、関数は必ず実行されます。

ホスト名

画像ファイルの出力先になるネットワーク上のホスト名 (または IP アドレス) を指定します。出力先のデバイスとしては、ネットワーク上の In-Sight エミュレータまたは FTP サーバとして動作するホストがあります。In-Sight ビジョンシステムは、SFTP ネットワーク上のクライアントとしてのみ動作します。WriteImageSFTP 関数は、別の In-Sight ビジョンシステムまたはエミュレータへの画像転送には使用できません。

:  
  • 無効なホスト名を指定した場合、最大 30 秒後に接続はタイムアウトします。
  • 画像を FTP サーバに書き込むとき、[ホスト名] および [ユーザ名] に指定する名前の前後には、スペースを使用することはできません。[ホスト名] および [ユーザ名] パラメータに指定した名前の前後にスペースが含まれる場合、指定したサーバへの画像の書き込みに失敗します。

ユーザ名

出力先ホストの SFTP サーバ用の有効なユーザ名です。このユーザ名は、画像ファイル出力元の In-Sight ビジョンシステムに登録されている必要はありません。

パスワード

出力先ホストの SFTP サーバ用の有効なパスワードです。パスワードは最大 15 文字で、大文字と小文字の区別があります。

:  
  • セキュリティの目的から、入力されたパスワードはプロパティシートや数式バー内では、"*" の表示でマスクされます。
  • パスワードはジョブファイルでは暗号化されたフォーマットで保存されます。

画像

画像データ構造体を含むセルへの参照です。デフォルトの参照先は、セル A0 の画像データ構造体です。

ファイル名

書き込む画像ファイルの名前です。[グラフィックスオーバレイ] パラメータが有効な場合は、SVG ファイルの名前も定義します。ロングファイル名がサポートされ、各ファイルが出力される時、それぞれのファイル名に数値カウンタが付加されます (数値カウンタの最大値は、[最大追記値] で指定します)。パスが指定されていない場合は、画像ファイルは出力先ホストにある FTP サーバのデフォルトディレクトリに出力されます。

最大追記値

指定されたファイル名で出力する画像ファイルの最大数 (0 ~ 9999999、デフォルト = 999)数値カウンタは指定されたファイル名の後ろに付加され、各画像ファイルが転送されるごとにカウンタは 1 つ増加します。カウンタが最大追記値に達するとリセットされ、出力先のシステムにある画像ファイルは同じ名前の新しいファイルで上書きされます。

数値カウンタの桁数は、最大追記値の桁数と等しくなります。例えば、最大追記値のデフォルト値 999 の場合は、ファイル名に 3 桁の数値が付加されます。0 が指定された場合は、ファイル名にカウンタは付加されません。

リセット

画像ファイルと SVG ファイルの両方に指定したファイル名に付加された数値カウンタを再開します。出力先のシステムに既にある画像ファイルと SVG ファイルは、同じ名前の新しいファイルで上書きされます。

0 = OFF (デフォルト) 最大追記値まで、各画像ファイルが転送されるごとにカウンタを 1 つ増加します。
1 = ON カウンタを 0 にリセットします。

データフォーマット

送信先のホストに書き出される画像のファイルフォーマットです。

0 = BMP (デフォルト) Windows ビットマップフォーマット (拡張子は .bmp です)。
1 = JPEG 標準エンコード JPEG フォーマット (拡張子は .jpg です)。

グラフィックスオーバーレイの保存

In-Sight ビジョンツール幾何計測関数および画面表示関数でサポートされているオーバレイグラフィックスデータを含めた SVG ファイルを、各関数の [表示] パラメータでグラフィックスを表示するように設定された場合に、作成するかどうかを指定します。オーバレイグラフィックスは [セルのフォーマット] ダイアログで指定したフォーマットを使用します。SVG ファイルと画像ファイルを表示するには SVG ファイルタイプをサポートする Web ブラウザ (Microsoft Internet Explorer 9.0 など) で SVG ファイルを開きます。SVG ファイルには、このファイルに関連する取得画像へのリンクが含まれており、ブラウザで SVG ファイルを開くと、このリンクを使用して、取得画像と共にオーバレイグラフィックスを表示します。

:  
  • 有効にすると、SVG ファイルは [ファイル名] パラメータで指定した名前を使用します。
  • グラフィックスは Web ブラウザなどのサードパーティ製のアプリケーションによって表示されるため、オーバーレイグラフィックスデータは、ピクセル単位での正確な一致にはなりません。
  • In-Sight ファームウェアでは、SVG と画像ファイルの各ペアの転送を保証していません。In-Sight ビジョンシステムがオーバーロードしている場合、検査や画像取得をミスしないよう、SVG/画像ファイルの片方、または両方の送信をスキップします。
0 = OFF (デフォルト) 画像のみ転送されるように指定します。
1 = ON 画像ファイルと SVG ファイルが転送されるように指定します。有効にすると、グラフィックスオーバーレイデータを含む SVG ファイルは画像に指定されたディレクトリに保存されます。Microsoft Internet Explorer 9.0 以降などの Web ブラウザを使用して、グラフィックスオーバーレイと画像を一緒に表示します。
解像度

画像がエクスポートされるときの画像解像度を指定します。

1 = フル (デフォルト) 画像はフル解像度でエクスポートされます。
2 = ハーフ 画像は半分の解像度でエクスポートされます。
3 = クォーター 画像は 1/4 の解像度でエクスポートされます。
SFTP キューを無効にする

FTP 転送の前に画像をキューに入れるかどうかを指定します。

0 = キュー (デフォルト) この機能が有効な場合は、画像を破棄する前に、最大 1,000 回まで、5 ミリ秒ごとに FTP タスクキューへの画像の追加が試行されます。
1 = キューの無効化 キューが無効化されている場合、一度に FTP タスクキューに追加されるのは、関数の各インスタンスからの画像 1 つのみです。それ以外の場合、画像は破棄され、FTP タスクキューへ再送信されません。

WriteImageSFTPの出力

戻り値

SFTP データ構造体を返します。スプレッドシートが更新されるたびに、指定された画像データ構造体に含まれている画像データが出力先システムのファイルに出力されます。

出力先ホスト名、ユーザ名、パスワードなどの入力パラメータが無効な場合、または画像キューが満杯の場合、#ERR を返します。画像キューには、一度に 1 つの画像を含めることができます。WriteImageFTP を実行し、前の画像が送信される前に画像の送信を試みると、関数はエラーを返します。

:  
  • 画像データがキューに入れられると、その後、出力先ホストへの転送が失敗した場合でも #ERR は返されません。
  • 関数により生成されたネットワークエラー (無効なホスト名ユーザ名、またはパスワード) を検出するには、スプレッドシートに独立した Event 関数を挿入し、トリガパラメータに「ネットワークエラー」を指定します。これにより、これらのエラーは、この Event 関数を参照した GetErrorString 関数、および GetErrorCode 関数で報告されます。別のネットワークエラーが報告されるまで、最後のエラーメッセージとエラーコードが保存され、返されます。

WriteImageSFTP

WriteImageSFTP($A$0,"SYSTEM1","admin","*",$A$0,"\IMAGES\TEST",999,0,0,0,1,0)

画像を取り込んだ後にスプレッドシートが更新されると、上記の式によって、ネットワークにあるホスト名が SYSTEM1 の IMAGES ディレクトリにビットマップ画像が転送されます。ユーザ名が admin で、そのパスワードと IMAGES ディレクトリが SYSTEM1 に存在する必要があります。存在しない場合、スプレッドシートに #ERR が返されます。最初に転送されたファイルは、TEST000.BMP、2 番目が TEST001.BMP というように連続して出力されます。

:  検査で不合格となった画像のみを保存する方法としては、関数にセル状態を設定する手法が一般的です。