投稿者 素人  (学生) 投稿日時 2019/6/12 11:34:32
Timerイベントのコードを追加します。

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

        Dim ModbusClient As EasyModbus.ModbusClient = New EasyModbus.ModbusClient(TextBox1.Text, 502)
        Registers = ModbusClient.ReadHoldingRegisters(0, 3)
        Label1.Text = Registers(0)
        Label2.Text = Registers(1)
        Label3.Text = Registers(2)
        xdata = Registers(0)
        Chart1.Series("受信データ").Points.AddXY(time, xdata)

        'Saveコード
        Dim sw As System.IO.StreamWriter
        sw = New System.IO.StreamWriter("rdata.csv", True,
                                              System.Text.Encoding.GetEncoding(932))
        sw.WriteLine(xdata & "," & time)
        sw.Close()


        '秒表記
        time += CDbl(TextBox2.Text) / 1000

        '残りデータ数の表示
        CountData -= 1
        If CountData < 0 Then
            timeLabel.Text = "測定終了"
        Else
            timeLabel.Text = "残り" & Format(CountData, "#") & "個"
        End If

        If CountData < 0 Then

            If CheckBox1.Checked Then
                ''繰り返したい場合は、True
                time = 0
                '*1000は、msecのため秒表記へ変更
                CountData = CDbl(maxX / (CDbl(TextBox2.Text) / 1000))
                System.Threading.Thread.Sleep(300)
                Chart1.Series(0).Points.Clear()

            Else
                Timer1.Enabled = False
                MessageBox.Show("測定終了")
            End If
        End If
    End Sub