USR-TCP232-302 を使ってみました 2019/05/06
RS232C - Ethernet 変換アダプタを TCP Server モードで使ってみました。Amazon などで¥4,000. 程度で販売されているものです。
※UART の時は日本語マニュアルのあるマイクロテクニカの [ETH-UA7] が分かりやすくて良いと思います。
■設定
設定はブラウザで行えます。アドレスバーに "http://192.168.0.7/" を入力すると、ログインメニューが表示されます。
Username、Password とも "admin" を入力します。
・Local Port Number を 20108 にします。これがクライアント側から接続するときのポート番号になります。
20108 はデフォルト値のようです。
・Work Mode は 「TCP Server」 にします。
[Save] ボタンをクリックすると、変更が反映されます。
■設定ツール
設定ツールでも同じことが行えます。
[Search Device] をクリックすると、ネットワークに接続されている機器が表示されます。
設定ツールですが、メーカーのサイトでは見つけにくかったので、
マイクロテクニカのイーサネット-UARTコンバーター [ETH-UA7] のサポートソフトウェアからダウンロードしました。
日本語マニュアルもあり、型番は違いますがとても分かりやすいです。
■クライアント側のプログラム
テストに使った Delphi のソースコードです。
unit Unit4; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,IdGlobal; type TForm4 = class(TForm) IdTCPClient1: TIdTCPClient; Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form4: TForm4; implementation {$R *.dfm} procedure TForm4.Button1Click(Sender: TObject); var cmd, res : string; StrText : String; B : TIdBytes; begin cmd := '123456'; with IdTCPClient1 do begin // タイムアウトを設定 ConnectTimeout := 1000; ReadTimeout := 1000; // IPアドレス Host := '192.168.0.7'; // ローカルポート番号を設定 Port := 20108; try // 接続 if not Connected then Connect; if Connected then begin IOHandler.ReadTimeout := ReadTimeout; // コマンド送信 B := TIdBytes(TEncoding.ANSI.GetBytes(cmd)); IOHandler.Write(B, cmd.Length); Sleep(100); // レスポンス受信 SetLength(B, 0); IdTCPClient1.IOHandler.ReadBytes(B, -1); res := TEncoding.ANSI.GetString(B); Edit1.Text := res; // 切断 Disconnect; end; except // エラーメッセージ on E: Exception do begin StrText := E.ClassName + sLineBreak + E.Message; Application.MessageBox(PChar(StrText), '情報', MB_ICONINFORMATION); end; end; end; end; end.