|
分類:[VB.NET/VB2005 以降]
visual Studio 2019を使用しております。
測定装置からデータを落とすために、以下のプロファイルを作成しました。 うまく落とせるときもあれば、なぜかタイトルのようにエラーが出てしまいます。 エラーは一番下のところで発生します。
開発初心者で申し訳ございませんが、私よりも詳しい方、ご教授いただければ幸いです。
Dim i_debugflg As Integer = 1 '確認をする場合 : 1- OFF 2- Check
Dim i As Integer Dim j As Integer Dim counter As Integer
Dim intDataDim As Integer Dim dlCent As Double Dim dlSpan As Double Dim dlFreq As Double Dim StrStimData1 As String
Dim delimiter() As Char = {","c} Dim StrArrayData1() As String
Dim PathSavefile As String Dim SavefileName As String
Dim StrBuf As String
Dim SwtimedataInit, SwtimedataNow, SwtimedataPast As Long
StrBuf = New String(Chr(&H0S), 30)
counter = Integer.Parse(txtMeasCounter.Text) Txt_SaveFilename2.Text = "Average" & counter.ToString() counter = counter + 1 txtMeasCounter.Text = counter.ToString()
If i_debugflg = 2 Then
U2GPIBAX.gpwrt(GpadrsBuf3, "SING") SwtimedataInit = timeGetTime Do SwtimedataNow = timeGetTime
SwtimedataPast = (SwtimedataNow - SwtimedataInit) / 1000 Loop While SwtimedataPast < 30
End If
'/- 測定ポイント数の読み込み U2GPIBAX.gpwrt(GpadrsBuf3, "POIN?") ' 測定ポイント数 U2GPIBAX.gpred(GpadrsBuf3, StrBuf, Len(StrBuf)) intDataDim = Convert.ToInt32(StrBuf) 'intDataDim = Integer.Parse(StrBuf)
' intDataDim = Integer.Parse(201) If i_debugflg = 2 Then MessageBox.Show("測定ポイント数:” & intDataDim.ToString())
'/- 中心周波数の読み込み U2GPIBAX.gpwrt(GpadrsBuf3, "CENT?") ' 中心周波数 U2GPIBAX.gpred(GpadrsBuf3, StrBuf, Len(StrBuf)) dlCent = Convert.ToDouble(StrBuf) 'dlCent = Double.Parse(StrBuf) If i_debugflg = 2 Then MessageBox.Show("中心周波数(Hz):” & dlCent.ToString())
'/- 中心周波数の読み込み U2GPIBAX.gpwrt(GpadrsBuf3, "SPAN?") ' 周波数幅 U2GPIBAX.gpred(GpadrsBuf3, StrBuf, Len(StrBuf)) dlSpan = Convert.ToDouble(StrBuf) 'dlSpan = Double.Parse(StrBuf) If i_debugflg = 2 Then MessageBox.Show("周波数幅(Hz):” & dlSpan.ToString())
StrStimData1 = New String(Chr(&H0S), intDataDim * 30)
U2GPIBAX.gpwrt(GpadrsBuf3, "FORM4") 'ASCIIフォマットの指定 U2GPIBAX.gpwrt(GpadrsBuf3, "OUTPFORM?") 'Agilent E5100Aのデータトレースの問合せ U2GPIBAX.gpred(GpadrsBuf3, StrStimData1, Len(StrStimData1))
If i_debugflg = 2 Then MessageBox.Show("測定終了")
' カンマ区切りで分割して配列に格納する StrArrayData1 = StrStimData1.Split(delimiter)
PathSavefile = Txt_SavePoint.Text SavefileName = Txt_SaveFilename2.Text & ".csv"
Dim sw As New System.IO.StreamWriter(PathSavefile & SavefileName, False)
sw.Write("Time") sw.Write(",") sw.Write(NowTime) sw.Write(vbCrLf, ToString()) sw.Write("SetTemp") sw.Write(",") sw.Write(setTemp) sw.Write(vbCrLf, ToString()) sw.Write("SetPower") sw.Write(",") sw.Write(setPower) sw.Write(vbCrLf, ToString()) sw.Write("Temp") sw.Write(",") sw.Write(Tempdata) sw.Write(vbCrLf, ToString()) sw.Write("Power") sw.Write(",") sw.Write(Powerdata) sw.Write(vbCrLf, ToString()) ' 改行
For i = 0 To intDataDim - 1
j = 2 * i dlFreq = (dlCent - dlSpan / 2 + (dlSpan / (intDataDim - 1)) * i) ' Frequency[Hz] sw.Write(dlFreq / 1000000.0) ' Frequency[MHz] sw.Write(",")
※エラーが出るポイント ここから sw.Write(StrArrayData1(j).ToString()) sw.Write(",") sw.Write(StrArrayData1(j + 1).ToString())
※エラーが出るポイント ここまで
sw.Write(vbCrLf, ToString()) ' 改行 Next i
sw.Close() '閉じる
お手数をおかけしますが、よろしくお願い致します。
|