DataChannel による通信

In-Sight の DataChannel は、英数字のデータと画像を開発者独自のグラフィカルユーザインタフェース (GUI) アプリケーションに統合します。DataChannel によって、In-Sight ビジョンシステムを TCP/IP サーバとして使用し、GUI アプリケーションを TCP/IP クライアントとして使用することができます。この構成によって、画像とデータを In-Sight ビジョンシステムから PC に転送する高速で効率的なメカニズムが実現されます。

DataChannel への接続の確立

カスタム GUI アプリケーションで DataChannel を使用するには、次の手順に従ってください。

  1. In-Sight ビジョンシステムへの TCP 接続を開きます。

    :  DataChannel 用のデフォルトの TCP/IP ポート番号は 50000 です。別のポート番号を指定する必要がある場合は、ネイティブモードの Put Portnum コマンドを使用してください。
  2. クライアントからポートに接続します。
  3. 接続が確立したら、クライアントは有効なユーザ名とパスワードを使用してログインする必要があります。デフォルトのログインユーザ名は「admin」、パスワードは空白文字列です。In-Sight ビジョンシステムでは、ログインの画面は表示されません。ユーザ名とパスワードの両方の後にキャリッジリターン/ラインフィード (CRLF) を送信する必要があります。

    ユーザ名とパスワードのいずれかが 5 秒以内に In-Sight ビジョンシステムに送信されないか、無効である場合は、次のメッセージが表示され、接続は終了します。

    "<Prompt><Accept>Invalid Password</Accept></Prompt>" + CRLF

    ユーザ名とパスワードが有効な場合は、次のようなウェルカムメッセージが送信されます。

    "<Prompt><Accept>ok</Accept><DataSession>0</DataSession><OpcSession>0</OpcSession><ImageSession>0</ImageSession>
    <SystemType>22</SystemType><Screen><High>480</High><Wide>640</Wide><Color>0</Color></Screen>
    <ToolEnabledBits>FEF6FFFF300000000000000000000000</ToolEnabledBits></Prompt>" + CRLF

    :  
    • 高解像度 In-Sight ビジョンシステムにログオンした場合、High と Wide の値は、それぞれ 768 と 1024、または 1200 と 1600 です。
    • OpcSession は COGNEX 技術者のみが使用します。
    • 閉じたSystemType は、In-Sight ビジョンシステムのハードウェアタイプを示します。

      In-Sight モデル

      SystemType 出力

      In-Sight 5100

      16、17、19、22、36、44、48、52、102

      In-Sight 5100C

      24、61、109、111

      In-Sight 5110

      20、26、42、49

      In-Sight 5400

      14、40、41

      In-Sight 5400C

      33、109、111

      In-Sight 5403

      38

      In-Sight 5410

      21、37、47

      In-Sight 5413

      43

      In-Sight 5600

      53、118

      In-Sight 5603

      60、120

      In-Sight 5604

      88、114

      In-Sight 5605

      100

      In-Sight 5610

      67

      In-Sight 5613

      66

      In-Sight 5614

      98

      In-Sight 5615

      101

      In-Sight 5705 139
      In-Sight 5715 139
      In-Sight 5705C 137

      In-Sight Micro 1020

      79

      In-Sight Micro 1050

      80

      In-Sight Micro 1100

      76

      In-Sight Micro 1100C

      87

      In-Sight Micro 1110

      81

      In-Sight Micro 1400

      77

      In-Sight Micro 1400C

      86、125

      In-Sight Micro 1402 127
      In-Sight Micro 1403

      78、124

      In-Sight Micro 1403C

      89、126

      In-Sight Micro 1410

      82

      In-Sight Micro 1412 127

      In-Sight Micro 1413

      83

      In-Sight Micro 1500 135

      In-Sight 7010

      129

      In-Sight 7010C

      133

      In-Sight 7020

      129
      In-Sight 7050 129
      In-Sight 7200 129
      In-Sight 7200C 133
      In-Sight 7210 129
      In-Sight 7230 129
      In-Sight 7400 129
      In-Sight 7400C 133
      In-Sight 7410 129
      In-Sight 7430 129
      In-Sight 7402 129
      In-Sight 7402C 133
      In-Sight 7412 129
      In-Sight 7432 129
      In-Sight 7600 144
      In-Sight 7600C 144
      In-Sight 7800 144
      In-Sight 7800C 144
      In-Sight 7801 144
      In-Sight 7801C 144
      In-Sight 7802 144
      In-Sight 7802C 144
      In-Sight 7900 144
      In-Sight 7900C 144
      In-Sight 7901 144
      In-Sight 7901C 144
      In-Sight 7902 144
      In-Sight 7902C 144
      In-Sight 7905 144
      In-Sight 7905C 144
      In-Sight 8200 141
      In-Sight 8200C 141
      In-Sight 8400 141
      In-Sight 8400C 141
      In-Sight 8401 141
      In-Sight 8401C 141
      In-Sight 8402 141
      In-Sight 8402C 141
      In-Sight 8405 138
    • ToolEnabledBits は COGNEX 技術者のみが使用します。

    ユーザ名とパスワードが無効の場合、In-Sight は次のメッセージを送信して接続を閉じます。

    "<Prompt><Accept>Invalid Password</Accept></Prompt>" + CRLF

     

    In-Sight ビジョンシステムへのほかのアクティブなネットワーク接続がない場合は、最大 6 つの DataChannel 接続を同時に確立できます。既に 6 つのアクティブなネットワーク接続が存在する場合、In-Sight ビジョンシステムは次のメッセージを送信します。

    "<Prompt><Accept>Too many connections</Accept></Prompt>" + CRLF

  4. ログインに成功した後、クライアントは、DataChannel 経由で受信する情報のタイプを指定する必要があります。クライアントは、画像情報を受信する場合は「IMG」+CRLF、データを受信する場合は「DAT」+CRLF を送信する必要があります。スプレッドシートが更新されるたびに、画像またはデータが DataChannel 経由で送信されます。ログインと同様に、いずれかのコマンドが 5 秒以内に In-Sight ビジョンシステムに送信されなかった場合は、次のメッセージが表示され、接続は終了します。

    "<Prompt><Accept>Connection Closed</Accept></Prompt>" + CRLF

  5. データを送信するように接続が設定されている場合は、ネイティブモードの Put Watch コマンドを使用して出力セルを指定します。

    :  
    • In-Sight のスプレッドシートが変更された場合は常に、Put Watch コマンドを送信する必要があります。
    • DataChannel は、数値または文字列のデータが含まれている任意のセルをモニタできます。データ出力は、XML フォーマットで送信されます。データは、モニタ対象のセルが「評価」(計算) されるか、セル内の値が変更されたときのみ、そのセルから送信されます。定数値はほかのセルに依存しないので (ほかのセルの値が変化しても、定数セルの値は変化しません)、スプレッドシートへの挿入後、一度しか評価されません。セルの評価と依存関係の詳細については、ここをクリックしてください。
    • Put Watch コマンドを送信する代わりに、SetWatch 関数を In-Sight のスプレッドシートに挿入すると、情報を DataChannel に自動送信することができます。
    • AcqSeqNum の値は、データ出力を、対応する画像出力に一致させるために使用できます。スプレッドシートが、イベントによって、または手動トリガによって更新されると、2 サイクルが発生します。そのほかの取り込みトリガは、1 サイクルのみを出力します。2 サイクルが発生した場合、2 番目のサイクルは、データ出力を、対応する画像出力に一致させるために使用されます。

閉じたTelnet クライアントによる DataChannel のテスト

  1. コマンドプロンプトを開きます。コマンドプロンプトから、Telnet クライアントを使用してビジョンシステムにログオンします。ログオンするときには、ホスト名または IP アドレスとポート番号 23 (予約済みのネイティブモードコマンドポート) を指定します。例: telnet is5100_010203 23

  2. Telnet クライアントから、次のコマンドを入力します。EV B0 1 Count($A$0,9999999,0,0)Count 関数が、デフォルトのパラメータを使用してセル B0 に挿入されます。

  3. Telnet クライアントから、次のコマンドを入力します。Put WatchB000 1

  4. コマンドプロンプトから、2 番目の Telnet セッションを開始して、In-Sight ビジョンシステムにログオンします。ログオンするときには、ホスト名または IP アドレスとポート番号 50000 (デフォルトの DataChannel ポート) を指定します。例: telnet is5100_010203 50000

  5. 2 番目の Telnet セッションから、「admin」と入力して、Enter キーを押します。もう一度 Enter キーを押して、空のパスワードを適用します。
  6. 2 番目の Telnet セッションから、「DAT」と入力して、Enter キーを押します。

  7. In-Sight ビジョンシステムで画像を一度取り込みます。2 番目の Telnet プログラムが受信したデータが表示されます。

閉じたデータ出力フォーマット

データ出力は、XML フォーマットで送信されます。  前述の例を使用した Telnet セッションからの出力の例を次に示します。In-Sight ビジョンシステムは、手動で 2 度トリガされました。

:  スプレッドシートが、イベントによって、または手動トリガによって更新されると、2 サイクルが発生します。そのほかの取り込みトリガは、1 サイクルのみを出力します。

Admin

******

<Prompt><Accept>ok</Accept><DataSession>0</DataSession><OpcSession>0</OpcSession><ImageSession>0</ImageSession>
<SystemType>22</SystemType><Screen><High>480</High><Wide>640</Wide><Color>0</Color></Screen>
<ToolEnabledBits>FEF6FFFF300000000000000000000000</ToolEnabledBits></Prompt>

dat

<Cycle AcqSeqNum="1">

</Cycle>

<Cycle AcqSeqNum="2">

<Cell Id="B0">

  <Float>1</Float>

</Cell>

</Cycle>

<Cycle AcqSeqNum="2">

</Cycle>

<Cycle AcqSeqNum="3">

<Cell Id="B0">

  <Float>2</Float>

</Cell>

</Cycle>

閉じた画像出力フォーマット

画像出力は、ヘッダと本体の 2 つの部分で構成されます。画像出力は常にビッグエンディアン形式のバイナリです (PC はリトルエンディアンなので、アプリケーションでエンディアン形式を変換する必要があります)。In-Sight はセル A0 からデフォルトの画像を送信し、常にフル画像を送信します。ヘッダの後に本体が続きます。本体は、row0 から始まる未処理のピクセルデータです。ピクセルデータにアクセスするには、アプリケーションはヘッダの「オフセット」値を使用する必要があります。画像データは、0,0 から始まる列 - 行順のピクセルで構成されています。  グレースケールビジョンシステムの場合、ピクセルは 8 ビットのグレースケール値です。カラービジョンシステムは、3 種類の画像 (0 = グレースケール画像、1 = ベイヤー画像、4 = 24 ビットカラー画像) のいずれかを出力するようにプログラムされています。

:  24 ビットカラーイメージはピクセル 0,0 から行単位で転送されます。各ピクセルは、3 バイト (24 ビット) により表されます。先頭ビットは青、2 つめのビットは緑、3 つめのビットは赤です。

ヘッダのフォーマット:

unsigned integer 32 bits Length;

// length of packet including raw img

// data, excluding 'Length' itself.

unsigned integer 16 bits Offset; // offset from 'Ver' field to the raw image pixel data.
unsigned integer 16 bits Ver; // version = 0.
unsigned integer 16 bits ImgHigh,ImgWide; // original high x wide in pixels.
unsigned integer 16 bits Row,Col;

// row & col of upper-left corner for

// this page, in original image scale.

unsigned integer 16 bits High,Wide; // high & wide of this page in pixel.
unsigned integer 16 bits Rsub, Csub; // image sub-sampling rate.
unsigned integer 16 bits CellRow,CellCol; // cell-coordinates for the image.0.0 for cell A0.
unsigned integer 16 bits RowIdx,ColIdx; // interleaved index = 0.0 (for future use).
unsigned integer 32 bits Color; // RGB bits - should be 0 for greyscale, 1 for Bayer or 4 for 24-bit color.
unsigned integer 32 bits AcqSeqNum; // Acquisition Sequence Number
unsigned integer 32 bits Rsrvd[1]; // reserved.
signed character 8 bits Tag[16];

// optional tag string - null

// terminated (for future use).