前提
電子天秤を使用して重量を測定するWinFormアプリを作成したいと考えています。
電子天秤とPCの接続はRS-232Cケーブルを使用して接続しています。
困っていることは
電子天秤側ボタン押下で重量のデータは取得できるようになったのですが
PC(アプリ側)からコマンドを送り、重量を取得する部分ができません。
VisualStudio2019を使用して開発しているのですが
使用しているSerialport、RC232ケーブルの使用が初めてで
どのようにコマンドを送信すればいいか分からず止まっています。
このような接続は初めてとなっており
初歩的な質問かと思いますが、どうかご教授のほどよろしくお願いいたします。
実現したいこと
電子天秤のボタン押下ではなく、アプリ側からのコマンド送信で重量測定を行いたい。
発生している問題・エラーメッセージ
下記コードをサイトで発見し、試してみましたがコマンド送信できているのか分からず
天秤の取説にはコマンドの送信をすると、返信があるとなっているのですが
下記コードでは何も応答がないように思われます。
該当のソースコード
'テキストボックスから、送信するテキストを取り出す. Dim data As String data = "O8CR" ← '取説に記載されていた実行したいコマンド '送信するテキストがない場合、データ送信は行わない. If String.IsNullOrEmpty(data) Then Return End If Try Dim byt_str As Byte() = System.Text.Encoding.GetEncoding("SHIFT-JIS").GetBytes(data) 'シリアルポートからテキストを送信する. SerialPort1.Write(byt_str, 0, byt_str.GetLength(0)) '送信データを入力するテキストボックスをクリアする. txt_send.Clear() Catch ex As Exception MsgBox(ex.Message) End Try
補足情報(FW/ツールのバージョンなど)
開発環境:VisualStudio2019
開発言語:VB.net
ターゲットフレームワーク:NET Framework4.7.2
使用天秤:新光電子 RJ-320
接続方法:RS-232Cケーブル
RJ-320でしたらマニュアルとかありますが、型番間違っていたりしませんか?
https://www.vibra.co.jp/products/detail/8
>data = "O8CR" ← '取説に記載されていた実行したいコマンド
CRは文字ではなく、コントロールコードの方ではないですかね?
先のURLにあるマニュアルだと、TeraTermなどの送信改行コードをCR+LFに設定して
入力コマンドをキーボードから入力してEnterキー押せば応答あるように思いますが。
ご指摘ありがとうございます。
記載間違えをしております。
正:RJ-320
質問修正させていただきます。
仰る通り「CR」は文字列ではありません。
添付いただきました取説PDFに「入力コマンドは、ターミネータ(CR/LF)を含む 4 文字で構成されます。」と記載されていたので、こういうことかと思い書きました。
お手数なのですが
「コントロールコード」
「TeraTermなどの送信改行コードをCR+LFに設定して」
この部分の理解が出来ていないため、ご教授いただけないでしょうか。
よろしくお願いします。
じゃdata=“08”&vbCRLFとかじゃないの
分からない用語はネット検索してみましょう。
CRLF(CR/LF)とは
https://e-words.jp/w/CRLF.html
コントロールコードとは
https://www.sophia-it.com/content/%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89
Tera Term
https://ttssh2.osdn.jp/
ところで、Windows フォームアプリケーションで、ターゲットフレームワークは何ですか?
>matukeso様
返信遅くなり申し訳ありません。
そちらのコードはまだ実行していないので、試してみます。
>KOZ6.0
返信遅くなり申し訳ありません。
検索不足ですみません。
用語自体はわかるのですが具体的な使用方法(送信方法)が分からないのでご教授いただけると幸いです。
Windows フォームアプリケーションで、ターゲットフレームワークは
「.NET Framework4.7.2」となります。
ではターゲットフレームワークについて、質問を編集し、追記してください。
プログラム云々の前に、 Tera Term をダウンロードして通信できるか確認することをお勧めします。
使い方は↓を参照すると良いと思います。
https://www.a-2.co.jp/landevoice/support/teraterm-download.html
「端末の設定」では、改行コードを CR+LF に修正、「シリアルポート設定」は接続する機器の仕様を確認してください。
KOZ6.0様
ご指摘ありがとうございました。
質問の不足について修正しておきます。
Tera Termは全く使用したことがないので、まずは勉強してみます。
いろいろ教えていただき助かります。
回答1件
あなたの回答
tips
プレビュー