ハイパターミナルで通信するのであれば、ケーブルはほぼ問題がないと思います。
少し気になる点があるので、以下に述べますので、できたら答えて下さい。
(1) MSComm1.Output = ":SENS:SERNR?" & vbCr
どうして vbCr になっているのですか?
vbCrLf では駄目なのですか?
ハイパターミナルでは、終端文字はvbCrLfだったような気がするが?
(2) テキスト受信になっているので、本来なら問題のないはずだが、
念の為に以下の様に設定しても駄目か確認して下さい。
MSComm1.InputLen = 1
そんな事はないとおもうが、MSComm1.RThreshold = 1 になっているので
1文字受信するごとに割り込みイベントが発生するが、受信モードがテキスト
になっていると、変にOSの方で、よみ取れない時が過去にあったような気
がする。(たとえばCRLFがきないとよみとれないとか、
ある程度バファーに溜まらないと読み出せないとか)
MSComm1.InputLen = 1 にすると、MSComm1.Input は1文字でも強制的に
読み込む事が出来る様にするプロパティなので、一度設定して下さい。
(3) 勿論、記載されていないが、通信速度、パリティ、データビット長、ストップビット長
は機器とあっているのでしょうね。
(4) #1の回答でも述べた様に、MSComm1.Output = ":SENS:SERNR?" & vbCr
を実行した後、MSComm1.OutBufferCount の値はゼロになっていますか?
その当たりは確認されてのでしょうか?
(5) MSComm1.Output = ":SENS:SERNR?" 実行した後に、MSComm1_OnComm()の
イベントは発生するのでしょうか?。その当たりが詳しく書いていないですが。
全く、イベントは発生しないのですか?。
なにか手がかりを書いてください。
(6) 私の過去の顧客で
ハイパーターミナルでは受信するのに、アプリケーションででは受信しないことが
ありました。
ハイパーターミナルとコミュニケーション (MSComm) コントロールの違いはどこかと
いいますと、
ハイパーターミナルでCOMポートをオープンした時は、無条件でRTS信号がONになるが、
MSComm1.PortOpen でオープンした時は、RTS信号がOffになっている事です。
MSComm1.RTSEnable=true にすることで、解決した事があります。
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.RTSEnable=true <==追加されたらどうです。
お礼
MSComm1.RTSEnable=true を追加するとコマンドを受け付けてくれました リアクションもちゃんと帰ってきます 他の機械(電圧計)ではRTS信号がなくても動いていたので そのままにしていましたがこちらでは必要だった様です 問題は解決しました ありがとうございました