BT3564_user_manual_chi_20191017H.pdf - 第161页

8.8 示例程序 155 8 catch (Exception ex) { MessageBox.Show(ex.Message); } } //Set measurement conditions private void SendSetting() { try { SerialPort1.WriteL ine(":TRIG:SOUR IMM"); //Select inte rnal triggering Ser…

100%1 / 198
8.8
示例程序
154
下面所示为使用 Visual Basic
®
2017 进行 RS-232C 通讯,设置本仪器的测量条件并读入测量结果,然后保存到文
件中的示例程序。
示例程序记述如下。
为开始测量而创建的按钮 ..........................................................................
Start
为结束应用程序而创建的按钮 ....................................................................
Exit
如果按下 “测量开始”按钮,则进行 10 次测量,并将测量值写入 data.csv”文件中
按下 Stop”按钮,结束程序。
以下所示程序全部记述为 Form1”的代码。
示例程序 (Visual Basic
®
2017)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.IO.Ports;
namespace CSSample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Perform process when Button1 is pressed
private void button1_Click(object sender, EventArgs e)
{
StreamWriter sw;
string recvstr;
int i;
try
{
button1.Enabled = false; //Disable buttons during communication........(a)
button2.Enabled = false;
//Communication port setting..............................................................(b)
SerialPort1.PortName = "COM1";
SerialPort1.BaudRate = 9600;
SerialPort1.DataBits = 8;
SerialPort1.Parity = Parity.None;
SerialPort1.StopBits = StopBits.One;
SerialPort1.NewLine = "\r\n"; //Terminator setting..........................(c)
SerialPort1.ReadTimeout = 2000; //2 seconds time out..........................(d)
SerialPort1.Open(); //Open a port
SendSetting(); //Instrument settings
sw = new StreamWriter(@"data.csv"); //Create text file to be saved................(e)
for (i = 0; i < 10; i++)
{
//Begin measurement and read measurement results Command..............................(f)
SerialPort1.WriteLine(":FETCH?");
recvstr = SerialPort1.ReadLine(); //Read measurement results
sw.WriteLine(recvstr); //Write to file
}
sw.Close(); //Close file
SerialPort1.Close(); //Close port
button1.Enabled = true;
button2.Enabled = true;
}
8.8
示例程序
155
8
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//Set measurement conditions
private void SendSetting()
{
try
{
SerialPort1.WriteLine(":TRIG:SOUR IMM"); //Select internal triggering
SerialPort1.WriteLine(":INIT:CONT ON"); //Continuous measurement ON
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//Close program when Button2 is pressed
private void button2_Click(object sender, EventArgs e)
{
Dispose();
}
}
}
8.8
示例程序
156
如果利用 Visual C#
®
2017 记述与 Visual Basic
®
2017 相同的示例,则如下所示。
示例程序 (Visual C#
®
2017)
(a) 通讯期间,将 Begin Measurement”按钮与 Close”按钮设为无法按下。
(b) 的通讯条件与计算机的使用条件相匹配。
计算机使用的端口编号:1
传输速度:9600 bps
奇偶性:无
数据长度:8
停止位:1
(c) 将表示收发字符串结束段的终止符设为 CR + LF
(d) 将读入操作时间设置为 2 秒。
(e) 打开文件 data.csv。但是如果已有同名文件存在,则删除以前的文件 data.csv,生成文件。
(f) 向本仪器发出 “进行 1 次测量并将其结果返回计算机”的命令。
Imports System
Imports System.IO
Imports System.IO.Ports
Public Class Form1
'Perform process when Button1 is pressed
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim recvstr As String
Dim i As Integer
Try
Button1.Enabled = False 'Disable buttons during communication......(a)
Button2.Enabled = False
'Communication port setting.......................................................(b)
SerialPort1.PortName = "COM1"
SerialPort1.BaudRate = 9600
SerialPort1.DataBits = 8
SerialPort1.Parity = Parity.None
SerialPort1.StopBits = StopBits.One
SerialPort1.NewLine = vbCrLf 'Terminator setting......................(c)
SerialPort1.ReadTimeout = 2000 '2 seconds time out......................(d)
SerialPort1.Open() 'Open a port
SendSetting(SerialPort1) 'Instrument settings
FileOpen(1, "data.csv", OpenMode.Output) 'Create text file to be saved............(e)
For i = 1 To 10
'Begin measurement and read measurement results Command.......................(f)
SerialPort1.WriteLine(":FETCH?")
recvstr = SerialPort1.ReadLine() 'Read measurement results
WriteLine(1, recvstr) 'Write to file
Next
FileClose(1) 'Close file
SerialPort1.Close() 'Close port
Button1.Enabled = True
Button2.Enabled = True
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
'Set measurement conditions
Private Sub SendSetting(ByVal sp As SerialPort)
Try
sp.WriteLine(":TRIG:SOUR IMM") 'Select internal triggering
sp.WriteLine(":INIT:CONT ON") 'Continuous measurement ON
Catch ex As Exception