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

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

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

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

Q&A

解決済

1回答

603閲覧

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

three-butterfly

総合スコア11

VB.NET

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

0グッド

0クリップ

投稿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ケーブル

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

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

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

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

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

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は全く使用したことがないので、まずは勉強してみます。 いろいろ教えていただき助かります。
guest

回答1

0

自己解決

コントロールコードが理解できておらず、文字列として送信していたのが原因のようです。

教えていただいたように
「data=“08”&vbCRLF」といった形で思い通りの動きをさせることができました。

投稿2022/09/12 23:43

three-butterfly

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問