WriteFTP

データファイルのファイルへの書き出し、または追記を行います。この関数は通常、データ結果のログ作成に使用されます。このログはファイルで参照できます。

:  
  • WriteFTP 関数を使用するには、In-Sight ビジョンシステムをオンラインにする必要があります。
  • この関数を含むジョブを In-Sight Explorer 3.3.0 以上で保存した場合、このジョブは、In-Sight Explorer 3.3.0 以上とのみ互換性を持ちます。
  • FTP サーバ接続のポート番号を変更するには、ホスト名 (または IP アドレス)、コロン (:)、新しいポート番号の順に追記します。例えば、現在のホスト名が PRODUCTION1 である場合、ポート番号をデフォルト (ポート 21 含む) からポート 34 に変更するには、ホスト名パラメータに PRODUCTION1:34 と指定します。
  • In-Sight エミュレータを FTP サーバとして使用している場合、デフォルトで、ファイルは次のエミュレータフォルダに書き込まれます (C:\ProgramData\Cognex\In-Sight\Emulators\x.x.x)。このディレクトリ以外のユーザ指定のロケーションにもファイルを書き込むことができます (FTP ルートディレクトリ)。エミュレータディレクトリおよび FTP ルートディレクトリの詳細については、[オプション] ダイアログのトピック (エミュレーションパネル) を参照してください。

WriteFTPの入力パラメータ

Syntax:WriteFTP(イベント,ホスト名,ユーザ名,パスワード,ファイル名,データフォーマット,文字列,追記)

イベント

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

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

ホスト名

ファイルの出力先になるネットワーク上のホスト名 (または IP アドレス) を指定します。出力先のシステムとしては、ネットワーク上の In-Sight エミュレータまたは FTP サーバとして認識されるデバイスがあります。

:  [ホスト名] ドロップダウンには、In-Sight ビジョンシステムのホスト名やネットワーク上のエミュレータは表示されません。ターゲットのビジョンシステム/エミュレータの IP アドレスを [ホスト名] フィールドに手動で入力してください。

ユーザ名

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

パスワード

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

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

ファイル名

ファイルの名前です。ロングファイル名がサポートされています。パスが指定されていない場合は、ファイルは出力先ホストにある FTP サーバのデフォルトディレクトリに出力されます。FTP サーバ上にそのファイルが存在しない場合は、WriteFTP 関数の初回実行時に自動的に作成されます。デフォルトのファイル名は InSight です。

:  ファイルを FTP ルートディレクトリに書き込む場合、ファイル名 は [オプション] ダイアログで指定した [FTP ルートディレクトリ] と完全に一致しなければなりません。ファイルも、FTP ルートディレクトリ内の任意のサブディレクトリに書き込むことができます (サブディレクトリはあらかじめ存在している必要があります)。

例えば、FTP ルートディレクトリが C:\temp で、ファイル名が「InSight」の場合は、ファイル名を「C:\temp\InSight」と指定する必要があります。「Jobs」サブディレクトリに書き込む場合、ファイル名は「C:\temp\Jobs\InSight」となります。「InSight」とのみ指定した場合、ファイルはデフォルトのエミュレータディレクトリに書き込まれます。

データフォーマット

ファイルのタイプです。各タイプに応じた拡張子が、自動的にファイル名に付加されます。

0 = テキスト 標準 ASCII フォーマットのテキストファイル (.txt)。
1 = HTML (デフォルト) 標準 HTML フォーマットのファイル (.htm)。
4 = XML 標準 XML フォーマットのファイル (.xml)。
5 = CSV 標準 CSV フォーマットのファイル (.csv)。

文字列

文字列または文字列を含むセルへの参照。255 文字まで入力できます。

:  
  • [データフォーマット] パラメータに HTML を指定した場合、テキスト文字列内で HTML タグを使用する必要があります。
  • 文字列を変更すると、書き込みや追記が行われます。

追記

データをファイルに出力する方法を指定します。

0 = OFF ファイル内の既存のデータを上書きします。
1 = ON (デフォルト) ファイルの最後にテキスト文字列を追記します。

WriteFTPの出力

戻り値

FTP データ構造体を返します。スプレッドシートが更新されるたびに、[文字列] パラメータに含まれているデータ文字列が出力先システムのファイルに出力されます。

出力先ホスト名、ユーザ名、パスワードなどの入力パラメータが無効な場合、またはファイルキューが満杯の場合、#ERR を返します。

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

[データフォーマット] で HTML を指定した WriteFTP 関数をスプレッドシートに配置すると、次の情報が挿入されます。

Stringf 関数 「C」ライブラリの標準フォーマット文字列で構成されたテキスト文字列を返します。Stringf 関数のフォーマットは、指定されているファイルフォーマットによって異なります。
テキスト文字列 このセルには、" Test string." というテキスト文字列が含まれます。
GetFilename 関数 右隣の WriteImageFTP 関数から出力される画像ファイルの名前を表示します。デフォルトでは、画像ファイルの名前は WriteFTP 関数のプロパティシートに入力したファイル名と同じ名前になり、数値カウンタが追記されます。
FTP データ構造体

WriteImageFTP 関数が配置され、FTP データ構造体を返します。WriteImageFTP 関数のプロパティシートの上から 5 つ目までのパラメータ値は、元の WriteFTP パラメータと同じものが使用されます。

:  WriteFTP 関数のプロパティシートに後から変更を加えても、WriteImageFTP 関数のプロパティシートの内容は更新されません。

[データフォーマット] でテキストを指定した場合は、Stringf 関数だけがスプレッドシートに挿入されます。

WriteFTP

:  例 1 では、WriteFTP 関数のプロパティシートで編集されたパラメータは、[ホスト名]、[ユーザ名]、および [パスワード] の 3 つだけです。例 2 では、[ホスト名]、[ユーザ名]、[パスワード]、および [データフォーマット] の 4 つのパラメータが編集されています。例 3 では、例 1 と同じパラメータが使用されていますが、自動的にスプレッドシートに挿入された関数が編集され、さらにほかの関数が追加されています。

WriteFTP の例 1:

  • A2 = WriteFTP($A$0,"FACTORYFLOOR-1","admin","*","InSight",1,B2,1)
  • B2 = Stringf("<LI><A HREF=%c%s%c>%s</A></LI>\r\n",34,D2,34,C2)
  • C2 = ' Test string.
  • D2 = GetFilename(E2)
  • E2 = WriteImageFTP($A$0,"FACTORYFLOOR-1","admin","*", $A$0,"InSight",999,0,0,0)

画像を取り込んだ後にスプレッドシートが更新されると、上記の式によって、セル C2 に含まれているテキスト文字列が、ホスト名 FACTORYFLOOR-1 のシステムにある InSight.htm ファイルの最後に追記されます。ユーザ名 admin とそのパスワードが FACTORYFLOOR-1 に登録されている必要があります。登録されていない場合は、スプレッドシートに #ERR が返されます。HTML ファイル内には、画像ファイル InSightxxx.bmp へのハイパーリンクが生成され、セル C2 に含まれている " Test string." というテキスト文字列が挿入されます。WriteImageFTP の [リセット] パラメータの値が OFF になっているため、1 番目のファイル名は InSight000.bmp、2 番目のファイル名は InSight001.bmp というように連続して出力されます。

閉じた例 1 のスプレッドシート表示例

WriteFTP の例 2:

  • A2 = WriteFTP($A$0,"FACTORYFLOOR-1","admin","*","InSight",0,B2,1)
  • B2 = Stringf("Test string.¥r¥n")

画像を取り込んだ後にスプレッドシートが更新されると、上記の式によって、セル C2 に含まれているテキスト文字列が、ホスト名 FACTORYFLOOR-1 のシステムにある InSight.txt ファイルの最後に追記されます。ユーザ名 admin とそのパスワードが FACTORYFLOOR-1 に登録されている必要があります。登録されていない場合は、スプレッドシートに #ERR が返されます。テキストファイル内には、" Test string." というテキスト文字列が挿入されます。

閉じた例 2 のスプレッドシート表示例

WriteFTP の例 3:

  • A2 = WriteFTP($A$0,"FACTORYFLOOR-1","admin","*","InSight",1,B2,1)
  • B2 = Stringf("<LI>%s</LI><BR>\r\n<IMG SRC=%c%s%c><BR><BR>\r\n",C2,34,D2,34)
  • C2 = Concatenate("Failure #",F2,".")
  • D2 = GetFilename(E2)
  • E2 = WriteImageFTP($A$0,"FACTORYFLOOR-1","admin","*", $A$0,"InSight",999,G2,0,0)
  • F2 = Count($A$0,999,G2,-1)
  • G2 = Button("Reset Counter", -1)

画像を取り込んだ後にスプレッドシートが更新されると、上記の式によって、セル C2 に含まれているテキスト文字列が、ホスト名 FACTORYFLOOR-1 のシステムにある InSight.htm ファイルの最後に追記されます。ユーザ名 admin とそのパスワードが FACTORYFLOOR-1 に登録されている必要があります。登録されていない場合は、スプレッドシートに #ERR が返されます。HTML ファイル内には、各画像に箇条書きの見出しが付けられて画像が表示されます。1 番目の見出しは "Failure #0."、2 番目の見出しは "Failure #1." というように連続して表示されます。WriteImageFTP の [リセット] パラメータの値が OFF になっているため、1 番目の画像ファイル名は InSight000.bmp、2 番目のファイル名は InSight001.bmp というように連続して出力されます。

閉じた例 3 のスプレッドシート表示例

閉じた出力された HTML ファイルの Internet Explorer での表示例