C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: Visual Studion2013のシリアル通信について


(過去ログ 132 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■78137 / inTopicNo.1)  Visual Studion2013のシリアル通信について
  
□投稿者/ あずま (1回)-(2015/12/17(Thu) 09:52:59)

分類:[VB.NET/VB2005 以降] 

お世話になります。

OS、Win7で環境はVisual Studio Express2013でシリアル通信させるソフトを開発しようとしています。
プログラムについては独学で、周りにもプログラムの知識持っている人がいません。

とある装置でTeraterm上で動作確認できているシリアル通信をVSで出来るようにしたいと思っているのですが、
ソフトが途中で固まってしまいます。

Teraterm上で動作確認できたコマンドとレスポンスは以下のとおり。
コマンド:@SendData=3,022000
レスポンス:ACK,@SendData,0,0xB,000000000000000000E7B1

これをVS上で下記の記述で動かそうとしています。

    Public Sub Read_Click(sender As Object, e As EventArgs) Handles Read.Click
        With SerialPort1
            .PortName = rw_port.Text
            .BaudRate = 9600
            .Parity = IO.Ports.Parity.None
            .DataBits = 8
            .StopBits = IO.Ports.StopBits.One
            .Handshake = IO.Ports.Handshake.None
            .NewLine = vbCr
        End With

        SerialPort1.Open()

        SerialPort1.WriteLine("@SendData=3,022000") '<-ここで止まる
        response = SerialPort1.ReadLine()
    
        SerialPort1.Close()

        TextBox1.Text = response

    End Sub


一行づつ実行して「<-」の箇所で動作止まってしまいます。
別の装置ではうまくいった記述なのですが、何が問題なのか分かりません。

シリアルポート設定はTeratermを見ながら同じ設定にしています。

すみませんが、ご教授のほど、よろしくお願いします。

引用返信 編集キー/
■78139 / inTopicNo.2)  Re[1]: Visual Studion2013のシリアル通信について
□投稿者/ ito (9回)-(2015/12/17(Thu) 11:03:39)
No78137 (あずま さん) に返信
>             .NewLine = vbCr
ここを
            .NewLine = vbLf
こうしたらどうなりますか?
なんとなくですが、改行コードの違いによるものかと思います。
一般的なWindowsの改行コード:CRLF (0x0D, 0x0A)
一般的なLinuxの改行コード:LF (0x0A)
...CR (0x0D)を改行コードにしているのはあまり無いかと。

引用返信 編集キー/
■78140 / inTopicNo.3)  Re[1]: Visual Studion2013のシリアル通信について
□投稿者/ 774RR (353回)-(2015/12/17(Thu) 11:11:31)
計測器はある?ループバックケーブルでいいんだけど。
バスに対して送信がされているけど WriteLine から帰ってこない、のか
バスに対して送信がされていなくて WriteLine から帰ってこない、のかで
対処の方法は異なる。

まったく送信できないんだとしたら DtrEnable / RtsEnable あたりを疑うべき。
無手順の場合、こいつらは両方 false でないといけない (false が既定値なんだけど)

# 無手順なら一方的に送りつけて即戻ってくるはずなんだが...
引用返信 編集キー/
■78142 / inTopicNo.4)  Re[2]: Visual Studion2013のシリアル通信について
□投稿者/ あずま (2回)-(2015/12/17(Thu) 11:41:29)
No78139 (ito さん) に返信
> ■No78137 (あずま さん) に返信
>> .NewLine = vbCr
> ここを
> .NewLine = vbLf
> こうしたらどうなりますか?

コメントありがとうございます。

vbLfにしても変化はありませんでした。
vbCrLfについても同様です。
引用返信 編集キー/
■78144 / inTopicNo.5)  Re[2]: Visual Studion2013のシリアル通信について
□投稿者/ あずま (4回)-(2015/12/17(Thu) 12:24:41)
No78140 (774RR さん) に返信
> 計測器はある?ループバックケーブルでいいんだけど。
> バスに対して送信がされているけど WriteLine から帰ってこない、のか
> バスに対して送信がされていなくて WriteLine から帰ってこない、のかで
> 対処の方法は異なる。

コメントありがとうございます。

ループバックケーブルはありません。
オシロならあるので、直接基板上の信号を観察してみます。

また、シリアル通信と書きましたが、RS232Cは使っていません。
USBケーブルで変換して仮想通信ポートとして認識させている装置です。
(これで伝わるでしょうか?)

先に動作確認できた装置ではRS232C接続で、今回動作確認とれていない
のは仮想通信ポートの違いがありました。
情報不足していました。失礼しました。


引用返信 編集キー/
■78158 / inTopicNo.6)  Re[3]: Visual Studion2013のシリアル通信について
□投稿者/ 甕星 (2回)-(2015/12/18(Fri) 06:42:54)
No78144 (あずま さん) に返信
> また、シリアル通信と書きましたが、RS232Cは使っていません。
> USBケーブルで変換して仮想通信ポートとして認識させている装置です。

これ、割と鬼門で制御信号線とかのOn/Offを頻繁に行っていると思ったように動かないことがあります。
物理ポートなら電気的直結されているので遅延ないのですが、USB経由では同じレスポンスにはなりませんから。

またオンボードの物理ポートも制御信号線が繋がっていない事があります。
まずは制御信号線がどのように始末されているか確認することをお勧めします。
引用返信 編集キー/
■78167 / inTopicNo.7)  Re[4]: Visual Studion2013のシリアル通信について
□投稿者/ あずま (5回)-(2015/12/18(Fri) 13:47:43)
No78140 (774RR さん) に返信
No78158 (甕星 さん) に返信
> これ、割と鬼門で制御信号線とかのOn/Offを頻繁に行っていると思ったように動かないことがあります。
> 物理ポートなら電気的直結されているので遅延ないのですが、USB経由では同じレスポンスにはなりませんから。
>
> またオンボードの物理ポートも制御信号線が繋がっていない事があります。
> まずは制御信号線がどのように始末されているか確認することをお勧めします。

USB端子の出力をオシロで確認してきました。
2本信号線があるようですが、いずれもCLKのような波形となっていて頻繁にOn/Offを繰り返していました。
ずっとCLKのような信号があるので、うまくトリガかけることができず正常動作と異常動作の差を確認する
ことはできませんでした。

また、他にもいろいろと試してみたところ、制御装置で命令を受け付けるとHになる信号がずっとLのまま
なので、送信がうまくいっていないようです。
このような場合、どのようにすれば良いのでしょうか?
引用返信 編集キー/
■78170 / inTopicNo.8)  Re[3]: Visual Studion2013のシリアル通信について
□投稿者/ 774RR (358回)-(2015/12/18(Fri) 14:26:29)
えーっと、どこの信号を測定したのか書いてないのでアレだけど
USB D+/GND 間や USB D+/USB D- 間を測定したのなら、この信号は常に変化し続けて停止しないので
(信号が 3msec 中断したら disconnect)
そこを測定しても今回の目的には役に立たないです(要 USB プロトコルアナライザ)

構成1.PC---RS232---対象デバイス (PC には内蔵 COM ポートがある)
構成2.PC---USB---USB/COM 変換機---RS232---対象デバイス
構成3.PC---USB---対象デバイス(VCOMM 機能内蔵)

過去に動いたという構成はどれで
今動かない構成はどれだろう。

とりあえず今できる範囲で SerialPort1.DtrEnable や SerialPort1.RtsEnable の値を確認して味噌。
構成2や構成3なら COM ポートドライバの更新を試してみるとか。

っていうかその対象デバイスとのフロー制御は「無手順」なの?
オイラたちにはその対象デバイスの詳細はわからないので、わかるのは元発言者氏のみ。
マニュアルを確認しよう。

引用返信 編集キー/
■78173 / inTopicNo.9)  Re[4]: Visual Studion2013のシリアル通信について
□投稿者/ あずま (6回)-(2015/12/18(Fri) 15:34:26)
No78170 (774RR さん) に返信
> えーっと、どこの信号を測定したのか書いてないのでアレだけど
> USB D+/GND 間や USB D+/USB D- 間を測定したのなら、この信号は常に変化し続けて停止しないので
>そこを測定しても今回の目的には役に立たないです(要 USB プロトコルアナライザ)

D+/GND間とD-/GND間を見ていました。
初めてUSBの信号を見たので、何が何だか分かりませんでした。

> 構成1.PC---RS232---対象デバイス (PC には内蔵 COM ポートがある)
> 構成2.PC---USB---USB/COM 変換機---RS232---対象デバイス
> 構成3.PC---USB---対象デバイス(VCOMM 機能内蔵)

過去動いていたのは構成1で今のは構成3です。

> っていうかその対象デバイスとのフロー制御は「無手順」なの?
> オイラたちにはその対象デバイスの詳細はわからないので、わかるのは元発言者氏のみ。
> マニュアルを確認しよう。

少ない情報のなか、いろいろとアドバイスいただきありがとうございます。

新しいことを始めようとしており、不明な点ばかりで質問させていただきました。
自分がもう少しレベルアップする必要があると感じたので、本件は一旦クローズと
させていただきたいと思います。
もう少し頑張りますが、目処立たなかったら、元のTeratermに戻ることとします。

改めて、いろいろとアドバイス頂きありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -