- 締切済み
Ni-VISAによるRS232C制御プログラム
Ni-VISA+VB.NETでRS232C付きの計測器の制御プログラムを作成したいと考えています。 現在まで、USBTMCとGPIB接続での制御プログラム作成経験がありますが、RS232C接続での制御プログラム作成は初めてです。 Ni-MAXで動作確認できていますので計測器とPCはRS232Cで正常に接続できています。 しかしながら、下記プログラムコードでうまく動作しません。 プログラムの修正点などアドバイス頂けないでしょうか? Public Function DcOutput_P4305(DcValue As Double) ' リソースの宣言 Dim RM As New Ivi.Visa.Interop.ResourceManager ' VISA COM リソースマネージャ Dim VCG As New Ivi.Visa.Interop.FormattedIO488 ' VISA COM フォーマッテッドIO ' 通信の開始 VCG.IO = RM.Open("ASRL1::INSTR") ' 処理待機時間を設定 System.Threading.Thread.Sleep(500) ' DC出力値設定(例:VOLT 10 ・・・10V出力) VCG.WriteString("VOLT" & " " & DcValue.ToString() & vbLf) ' 処理待機時間を設定 System.Threading.Thread.Sleep(500) ' 通信の終了処理 VCG.IO.Close() System.Runtime.InteropServices.Marshal.ReleaseComObject(VCG) System.Runtime.InteropServices.Marshal.ReleaseComObject(RM) '処理待機時間を設定 System.Threading.Thread.Sleep(500) Return 0 End Function
- みんなの回答 (1)
- 専門家の回答
みんなの回答
Ni-VISAとやらを存じませんが通信手順が無くただ改行で終わるテキストを送るだけの通信なのでしょう。RS232cは負論理なので相手の電源が落ちていると1を連続受信中と読みます。つまり計器がON、PCがOFFから始まるとエラー文字の受信から始まってしまいます。これを避けるために電源ONの最初の通信は無意味な通信、たとえばただ改行を送ってエラーメッセージを受け取るとか・・・計器の仕様を知りませんが、ということが必要じゃないですか。空想ですが。
お礼
コメントありがとうございます。 もう少し調べてみます。