tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^10: シリアル通信で異常に時間がかかってしまう
投稿日: 2010/01/28(Thu) 23:27
投稿者るる
ぽるとさんのプログラムは受信データ長ですべてのデータが入ってきたと判断し、まとめて受信データをごっそり取り出す方法ですよね?
そこをデータ長で判断せず、確実に1文字とか数文字毎に取り出しその文字の中に最後の文字であるか?を判定してやる方がいいのかな?と思ったのです。
以下参照。

>ACK、NAK、STXやETX 等でしょうか。
>装置側のシーケンサの資料はあるようですので、
>そちらを確認して見ようとおもいます。
三菱シーケンサは使用した事ありませんが、おそらく最終文字がASCIIコードで言うLF(0x0A)とかCR(0xOD)とかでないですか?いずれにせよ資料を確認する必要がありそうですね。
ちなみにACK,NAKは通信成功、通信失敗を意味する場合が多いです。
STXは通信の始め、ETXは通信の終わりのアクセントとして使われます。


あと、
lstrSendData = <コマンド文字列>
lintDataLength = <コマンドに応じて設定されてます>
ここ。確実にコマンドに対する受信データ長がセットされてますかな?
送信コマンドと受信データ長が本来のと一致しない場合が出てる可能性もあるかも。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。