COM1に割り当てたUSB接続のRS-232C 1ポートタイプ COM-1(USB)H で、テキストボックスに入力した文字列データをデフォルトデリミタを含めて送信します。
Visual Basic 2005を立ち上げ、新しいプロジェクトを作成し、左図のような画面を作成します。SerialPortコンポーネントを画面に貼り付けます。SerialPortコンポーネントのプロパティの内容を確認します(ボーレートなどの通信設定)。
デリミタコードとは、データの区切り文字、区切り記号を意味します。シリアルポートクラスのデフォルトデリミタコードは「LF」ですが、接続する機器に合わせて、設定する必要があります。接続機器の仕様書に沿って、適切なデリミタコードを使用します。
接続ボタン、切断ボタンクリック時の処理を追加します。Form1.vbに以下のコードを記述します。各オブジェクト(ボタンなど)をダブルクリックすると、ボタンならば、ボタンが押された時の処理を記述するプロシージャが開きます。そこに行いたい処理を記述していきます。
Private Sub Button1_Click(… → 接続ボタンが押されたときの処理 Try '例外処理のはじまり If SerialPort1.IsOpen = True Then 'ポートはオープン済み MessageBox.Show("エラー", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If SerialPort1.PortName = TextBox1.Text 'オープンするポート名を格納 SerialPort1.Open() 'ポートオープン Catch ex As Exception '例外処理 MessageBox.Show(ex.Message, "エラー", MessageBoxButtons.OK,MessageBoxIcon.Error) End Try End Sub
Private Sub Button2_Click(… → 切断ボタンが押されたときの処理 If SerialPort1.IsOpen = True Then 'ポートオープン済み SerialPort1.Close() 'ポートクローズ End If End Sub
Private Sub Button3_Click(… → 送信ボタンが押されたときの処理 If TextBox2.Text.Length = 0 Then '送信データが無ければエラー MessageBox.Show("文字列入力エラー", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub '処理を抜ける End If Try SerialPort1.WriteLine(TextBox2.Text) '送信バッファにデータ書き込み Catch ex As Exception '例外処理 MessageBox.Show(ex.Message, "エラー", MessageBoxButtons.OK,MessageBoxIcon.Error) End Try End Sub
コードの記述でデリミタコードを変更して、データを送信する場合は、以下のように記述します。
Dim strSend As String 'NewLine格納用文字列変数 strSend = SerialPort1.NewLine 'NewLineを取得 strSend = strSend.Replace(vbLf, vbCr) '文字中のLFをCRに置換する場合 SerialPort1.NewLine = strSend '置換したデリミタをNewLineに格納 Try SerialPort1.WriteLine(TextBox2.Text) '送信バッファにデータ書き込み Catch ex As Exception '例外処理 MessageBox.Show(ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try
Try - Catch - End Try構文については、Visual Basic 2005のリファレンスで確認ください。