TCPDevice

In-Sight スプレッドシートのセルを TCP/IP デバイス (クライアントまたはサーバ) として定義します。この関数を定義すると、In-Sight ビジョンシステムとほかの TCP/IP デバイスとの接続が可能になり、ネットワークを介してデータを共有することができます。TCP/IP の接続が確立すると、ReadDevice 関数、WriteDevice 関数、および QueryDevice 関数を使用してデータを通信します。TCPDevice 関数が、ネットワークのほかの TCP/IP デバイスと通信を開始する場合、セルは TCP/IP クライアントとして動作します。TCPDevice 関数が、ネットワークにあるほかの TCP/IP デバイスからの受信を待機する場合は、セルは TCP/IP サーバとして動作します。

:  
  • TCPDevice 関数は パケットを受信すると、イベントを発生させます。このイベントによって、スプレッドシートが更新されます。
  • 2 つの In-Sight ビジョンシステム間で TCP/IP デバイス接続を確立するには、両方のデバイスをオンラインにする必要があります。

TCPDeviceの入力パラメータ

Syntax:TCPDevice(ホスト名,ポート,プロトコル,パケット・タイプ,タイムアウト,終端記号)

ホスト名

TCPDevice 関数が含まれているセルをクライアントにする場合は、接続を確立する TCP/IP サーバの名前を指定します。

:  
  • [ホスト名] ドロップダウンには、In-Sight ビジョンシステムのホスト名やネットワーク上のエミュレータは表示されません。ターゲットのビジョンシステム/エミュレータの IP アドレスを [ホスト名] フィールドに手動で入力してください。
  • ホスト名を指定しない場合 (デフォルトでは空文字)、セルは TCP/IP クライアントからの通信開始を待機するサーバになります。
ポート

TCP/IP デバイスとの間で接続を確立する TCP/IP サーバのポート番号です。ホスト名が指定された場合、入力されたポート番号はサーバ側にも割り当てる必要があります。ホスト名が指定されない (空文字の) 場合、このパラメータでこのデバイスに TCP/IP ポート番号が割り当てられます。

1 つのホストで、2 つの TCPDevice 関数が同じ TCP/IP ポート番号を共有することはできません。この場合、一方のデバイスは TCP/IP 接続を確立することができなくなります。例えば、同じ In-Sight スプレッドシートの 2 つのセルに TCPDevice 関数がデフォルトのポート番号として 3000 を指定した場合、どちらかのセルの 1 つのみが TCP/IP デバイスとして機能します。ポート番号の割り当ての重複を避けることは重要です。

:  有効なポート番号は、In-Sight の通信に使用されるポートを除く、1 ~ 65535 の範囲で未使用の番号です。PC のサービスで予約されているポート番号との競合を避けるために、In-Sight エミュレータの設定では、必ず 3000 (デフォルト) 以降のポート番号を割り当ててください。
プロトコル

ネットワーク上の In-Sight ビジョンシステムとほかの TCP/IP デバイスとの間の通信に使用するネットワークプロトコルです。In-Sight ビジョンシステムでは、標準の TCP/IP プロトコルのみサポートしています。

0 = TCP/IP
パケットタイプ

In-Sight ビジョンシステムとほかの TCP/IP デバイスとの間で通信する文字列のデータフォーマットを定義します。

0 = 文字列 CR+LF (デフォルト) ASCII フォーマットです。In-Sight ビジョンシステムから送信される際、ASCII 文字 13 (キャリッジリターン) と 10 (ラインフィード) が文字列データに付加されます。受信の際には、文字列データは CR+LF で終了します。
1 = 文字列 + CR (13) ASCII フォーマットです。In-Sight ビジョンシステムから送信される際、ASCII 文字の 13 (キャリッジリターン) が文字列データに付加されます。受信の際には、文字列データは CR で終了します。
2 = 文字列 + LF (10) ASCII フォーマットです。In-Sight ビジョンシステムから送信される際、ASCII 文字の 10 (ラインフィード) が文字列データに付加されます。受信の際には、文字列データは LF で終了します。
3 = 文字列 + ヌル文字 (0) ASCII フォーマットです。In-Sight ビジョンシステムから送信される際、ASCII 文字の 0 (ヌル文字) が文字列データに追加されます。受信の際には、文字列データはヌル文字で終了します。
4 = Modbus バイナリフォーマットです。文字列データは、Modbus プロトコルに準拠します。
6 = カスタム終端記号付き文字列 ASCII フォーマットです。In-Sight ビジョンシステムから送信される際、指定した終端記号が文字列データに追加されます。受信の際には、文字列データは指定した終端機能で終了します。
7 = カスタム終端記号を持つバイナリ バイナリフォーマットです。In-Sight ビジョンシステムから送信される際、指定した終端記号が文字列データに追加されます。受信の際には、文字列データは指定した終端機能で終了します。
:  
  • Modbus パラメータは、In-Sight ビジョンセンサが Modbus クライアントとして稼動する場合のみ適用されます。Modbus に関しては、Open Modbus/TCP Specification(外部リンク、インターネットへのアクセスが必要です。Modicon 発行)で定義されています。また、パケットタイプが Modbus に設定されている場合、ポートは、In-Sight 通信により予約されている 502 に設定されている必要があることにも注意してください。
  • 指定されたパケットタイプに関わらず、In-Sight ビジョンシステムでデータを受信する場合、文字列データは ASCII 文字の 0 (ヌル文字) で終了します。
タイムアウト TCP/IP 接続の確立を試みてから中断するまでの待機時間をミリ秒単位 (100~15000、デフォルト = 1000) で指定します。このパラメータは、TCPDevice 関数がセルで TCP/IP クライアントとして定義されている場合のみ適用されます。
終端記号 [パケットタイプ] に [カスタム終端記号付き文字列] または [カスタム終端記号を持つバイナリ] が指定された場合に使用する ASCII 文字 (0 ~ 255) を指定します。

TCPDeviceの出力

戻り値

デバイスデータ構造体。入力パラメータが無効の場合か、タイムアウトの設定時間を超えた場合は、#ERR が返されます。

:  1 つのジョブに挿入できるデバイス構造体の数は最大 12 個です。

結果

関数がセルに入力されると、右側の隣接したセルに追加の関数が自動的に挿入されます。関数が TCP/IP クライアントである場合は WriteDevice 関数で、TCP/IP サーバである場合は ReadDevice 関数です。

TCPDevice

SYSTEM0 という名前の In-Sight ホストビジョンシステムが、次のように設定されています。

A3=TCPDevice("SYSTEM1",3000,0,0,300)

B3=WriteDevice($A$0,A3,C3)

SYSTEM1 という名前の 2 番目のホストシステムには、TCP/IP サーバ機能が含まれており、次のように設定されています。

A4=TCPDevice("",3000,0,0,300)

B4=ReadDevice(A4)

2 つのシステムはオンラインの状態であるとします。SYSTEM0 上のセル $A$0 のデフォルトの画像が取得されると、セル A3 の TCP/IP クライアントは、SYSTEM1 上のセル A4 の TCP/IP サーバとポート 3000 で接続を確立します。接続後、SYSTEM0 上のセル B3 の WriteDevice 関数により、セル C3 のデータが SYSTEM1 上のセル B4 の ReadDevice 関数にエクスポートされます。

関連項目