ロボットプログラムでのTCP通信設定方法
本記事では、JAKAロボットから外部機器(PC・画像処理装置)とTCPソケット通信を行う方法について、Blocklyでのプログラム作成方法と実用上のポイントをまとめました。
なおJAKAにつきましてはクライアント側の通信機能のみ実装されています。
外部デバイスとソケット通信を実施するサンプルプログラム
- デバイス側のIPアドレスは192.168.5.100でポート9000でサーバーとしてListen中です。
- ロボットコントローラーがクライアントとして接続し、”check”という文字列を送信します。
- デバイス側はクライアント側に”[1, 0, 3.4, -0.3]”というメッセージを返します。
プログラム例


実行結果(ログ)

ソケット通信で使用するツール(ブロック)
ソケットオープンの記述
Socketをオンツールを使用してサーバー側と接続します。

プルダウン1: 接続するソケットに1~5のナンバーを設定します。この後の送信や切断にもこのナンバーを入力します。
テキストボックス1: 接続するデバイスのIPアドレスをします。
値入力ボックス1: ポートナンバーを入力します。
戻り値: 失敗で-1を返します。成功の場合はそれ以外の数値が返ります。
使用例

ソケットクローズの記述
Socketをオフツールを使用してサーバー側と接続を切断します。

プルダウン1: 接続するソケットに1~5のナンバーを設定します。
メッセージ(文字列)送信の記述
SOCKET送信ツールを使用してメッセージを送信します。

プルダウン1: ソケットオープン時に設定したソケット番号を設定します。
値入力ボックス1: 送信したいメッセージを文字列で入力します。
戻り値: 失敗で-1を返します。成功の場合はそれ以外の数値が返ります。
使用例

配列型メッセージ受信の記述
SOCKET配列受信ツールを使用してメッセージを受信します。
受信したメッセージを変数(配列型)messageに割り当てます。

プルダウン1: ソケットオープン時に設定したソケット番号を設定します。
値入力1: 配列の個数
値入力2: データ受信タイムアウト時間。
戻り値: 受信メッセージ(配列)
使用例

文字列型メッセージ受信の記述
SOCKET配列受信ツールを使用してメッセージを受信します。

プルダウン1: ソケットオープン時に設定したソケット番号を設定します。
値入力1: データ受信タイムアウト時間。
戻り値: 受信メッセージ(文字列)
使用例

