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

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

新規登録して質問してみよう
ただいま回答率
86.12%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

解決済

RS232C接続によるデータの送受信

three-butterfly
three-butterfly

総合スコア11

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

1回答

0リアクション

0クリップ

325閲覧

投稿2022/09/10 22:36

編集2022/09/12 23:39

前提

電子天秤を使用して重量を測定する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ケーブル

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

setoppu

2022/09/10 22:59

RJ-320でしたらマニュアルとかありますが、型番間違っていたりしませんか? https://www.vibra.co.jp/products/detail/8 >data = "O8CR" ← '取説に記載されていた実行したいコマンド CRは文字ではなく、コントロールコードの方ではないですかね? 先のURLにあるマニュアルだと、TeraTermなどの送信改行コードをCR+LFに設定して 入力コマンドをキーボードから入力してEnterキー押せば応答あるように思いますが。
three-butterfly

2022/09/11 03:01

ご指摘ありがとうございます。 記載間違えをしております。  正:RJ-320 質問修正させていただきます。 仰る通り「CR」は文字列ではありません。 添付いただきました取説PDFに「入力コマンドは、ターミネータ(CR/LF)を含む 4 文字で構成されます。」と記載されていたので、こういうことかと思い書きました。 お手数なのですが 「コントロールコード」 「TeraTermなどの送信改行コードをCR+LFに設定して」 この部分の理解が出来ていないため、ご教授いただけないでしょうか。 よろしくお願いします。
matukeso

2022/09/11 03:58

じゃdata=“08”&vbCRLFとかじゃないの
three-butterfly

2022/09/11 20:02

>matukeso様 返信遅くなり申し訳ありません。 そちらのコードはまだ実行していないので、試してみます。 >KOZ6.0 返信遅くなり申し訳ありません。 検索不足ですみません。 用語自体はわかるのですが具体的な使用方法(送信方法)が分からないのでご教授いただけると幸いです。 Windows フォームアプリケーションで、ターゲットフレームワークは 「.NET Framework4.7.2」となります。
KOZ6.0

2022/09/12 00:47 編集

ではターゲットフレームワークについて、質問を編集し、追記してください。 プログラム云々の前に、 Tera Term をダウンロードして通信できるか確認することをお勧めします。 使い方は↓を参照すると良いと思います。 https://www.a-2.co.jp/landevoice/support/teraterm-download.html 「端末の設定」では、改行コードを CR+LF に修正、「シリアルポート設定」は接続する機器の仕様を確認してください。
three-butterfly

2022/09/12 23:38

KOZ6.0様 ご指摘ありがとうございました。 質問の不足について修正しておきます。 Tera Termは全く使用したことがないので、まずは勉強してみます。 いろいろ教えていただき助かります。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。