質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

Q&A

解決済

2回答

3763閲覧

おんどとりとの通信で返答がない

heatmen

総合スコア6

Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

0グッド

0クリップ

投稿2019/08/22 05:48

前提・実現したいこと

TeraTermを使っておんどどとり(T&D製)でLAN経由でデータのやり取りをしたい

発生している問題・エラーメッセージ

TeraTermの下記の設定で接続
TCP/IP ホスト(T) 192.168.5.100
Telnet TCPポート#(P) 62500

で接続を試み、おんどとりからLoginと帰ってきましたのパスワードを入力
おんどとりからOkと帰ってきました。 接続完了

機器情報の取得をしたいと思い(メーカの仕様書通りの書式)
T2 size RUINF: sum(54 32 06 00 52 55 49 4E 46 3A BE 01)
を send $54 $32 06 00 $52 $55 $49 $4E $46 $3A BE 01 と記載して送信しました。
おんどとりの方は「ACTIVE」ランプが数回点滅しますが何も帰ってきません。

teratermの設定に問題があるか、送信内容に問題があるかご教授ください。

TeraTermのバージョンは4.103です。
おんどとりはRTR-500NWです。

初歩的な質問ですがよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

heatmen

2019/08/26 06:58

(メーカの仕様書通りの書式) T2 size RUINF: sum(54 32 06 00 52 55 49 4E 46 3A BE 01) のなかで'size'と'sum'は2byteのバイナリ値と記載があります。 このようなときTeraTermはどの様に記載したら仕様書通り送信してくれるのでしょうか。
guest

回答2

0

Tera Termを日本語モードで使う場合、必要に応じて漢字コードの変換が行われます。
今回のようにバイナリデータを送る場合、変換を行わなくさせる為にTera Term を英語モードにする必要があります。

[設定]-[全般]にある[言語]を“English”に変更してください。
[言語UI]の方は変更する必要はありません。

投稿2019/08/28 04:02

doda

総合スコア947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

heatmen

2019/08/28 06:10

doda様 有難うございます。 設定を変更してやってみます。
guest

0

ベストアンサー

まだだいぶ分からないんですけど、「'size'と'sum'は2byteのバイナリ値」というのでちょっと分かってきました。

T2 size RUINF: sum(54 32 06 00 52 55 49 4E 46 3A BE 01)

不可解ですね。sumというのはチェックサムかと思いますが、サムを取る内容の中にサム自身が含まれています。本当にそう書かれているのですか?

send $54 $32 06 00 $52 $55 $49 $4E $46 $3A BE 01

sizeとsumの部分だけ「$」が抜けているのは書き間違いですか? そのまま送ったなら何が送られるか分かりません。
また、BE 01というのはどこを計算したのでしょうか。「RUINF:」の部分だけ合計するとちょうどそうなりますが。
BE 01が含まれているのは間違いとしても先頭の54からBEの前の3Aまでを合計した値の方がそれっぽい気がします。


バイト数ということで抜いてしまいました

どちらも同じくバイナリ値を送っているものですから抜いては駄目です。
仕様を見るとチェックサムは「RUINF:」の部分だけで正しいようですね。
そうなると

T2 size RUINF: sum(54 32 06 00 52 55 49 4E 46 3A BE 01)

というsumの記述がいよいよもって不可解になりますが、これはどこにあったものですか?

とりあえず今までの話を総合するとsumの値は正しく、間違いは「$」が抜けているだけに見えます。それで動かなければ分かりません。
(状況から推測する)sumの計算方法は、「52 55 49 4E 46 3A」を1バイトごとに足し合わせて01BE、リトルエンディアンなので「BE 01」です。

投稿2019/08/27 00:38

編集2019/08/28 00:45
ikadzuchi

総合スコア3047

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

heatmen

2019/08/27 06:22 編集

「$」が抜けていたのはバイト数ということで抜いてしまいました。 メーカの通信仕様を記載します。  コマンドフォーマット コマンドは全て以下のフォーマットを持つ。”T2”を識別バイトとして扱いコマンド開始の判断基準とする。”T2”から始まらないデータ列は全て無視する。またチェックサムによってコマンドの正当性のチェックを行う。 0 1  2  3      4~n     n+1 n+2 'T' '2' コマンドサイズ  コマンド      チェックサム    (4~nのバイト数)   +パラメータ (4~nを1バイト単位で加算)                        上位切捨て コマンドサイズはバイナリ値で後続のコマンド+パラメータエリアのサイズのバイト数を指すものとする。 チェックサムはコマンド+パラメータエリアを1バイト単位で加算したものとする(上位切捨て) 機器情報の設定(機器名称をABCに温度単位を摂氏に設定) T 2 size WUINF : NAME = size "ABC" 54 32 19 00 57 55 49 4E 46 3A 4E 41 4D 45 3D 03 00 41 42 43 UNITS = size "0" sum 55 4E 49 54 53 3D 01 00 30 EB 05 機器情報の取得(コマンド名のみでパラメータは指定できない) 今回質問させて頂いて部分です。 このような仕様の場合、size の部分は2byteのバイナリ値でしたがsumの方は1バイト単位で加算したもでした。 今部分の考え方と記述方法をご教授頂ければ助かります。 よろしくお願いいたします。
heatmen

2019/08/28 03:13

仕様書について 型式RTR-500シリーズ 通信仕様書(Rev1.30)最新と思います。 上記に記載がありました。 $を付けて実施してみます。 駄目な場合はTeraTermの設定などを変更してみます。 その中で躓いた場合にはよろしくお願いいたします。 貴重な時間を回答に当てて頂き本当にありがとうございました。
doda

2019/08/28 03:50

> T2 size RUINF: sum(54 32 06 00 52 55 49 4E 46 3A BE 01) ()の中はsumの対象という意味ではなく、送るコマンド全体を16進表記したものでしょう。 実際に送る内容はこれだよという事ですね。
ikadzuchi

2019/08/28 04:56

> dodaさん 状況を見るにそのようですね…。 関数っぽい書き方で出力が入力に入っているように見えるのが理解しづらいです…。
heatmen

2019/08/28 08:23

ご指摘の部分は T2 size RUINF: sum (54 32 06 00 52 55 49 4E 46 3A BE 01)と行等を変えて記載するべきでした。 申し訳ありませんでした。
ikadzuchi

2019/08/28 12:40

ああー、そういうことかー。納得。
heatmen

2019/09/04 06:05 編集

お世話をお掛けします。 Tera Term を英語モードにして、表示を初期設定でDebug=onに変更して 実施してみました。 TeraTermの下記の設定で接続 TCP/IP ホスト(T) 192.168.5.100 Telnet TCPポート#(P) 62500 で接続を試み、おんどとりからLoginと帰ってきましたのパスワードを入力 おんどとりからOkと帰ってきました。 接続完了 機器情報の取得をしたいと思い(メーカの仕様書通りの書式) T2 size RUINF: sum (54 32 06 00 52 55 49 4E 46 3A BE 01)を send $54 $32 $06 $00 $52 $55 $49 $4E $46 $3A $BE $01 をワード文書からコピーして送信しました。 おんどとりの方は「ACTIVE」ランプが数回点滅しますが何も帰ってきません。 問題点 ・送信方法の設定 ・受信方法の設定 ・表示方法の設定 ・セキュリティソフトの影響 このほかにチェックしたほうが良い点がありましたら、ご教授下さい。 なおログを取ってデータが送られているかなど確認する予定です。 また、ワイヤーシャークなどの通信監視などを考えたほうがいいでしょうか。 よろしくお願いいたします。 TeraTermのバイナリ送信等の間違いでした。 解決しました。 有難うございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問