オープン/クローズ - Visual Basic 2005 シリアル通信プログラム-

COM1に割り当てたUSB接続のRS-232C 1ポートタイプ COM-1(USB)H で、COMポートのオープン処理とクローズ処理、例外処理を行うプログラム例です。

使用COMポート COM1
通信速度 9600bps
パリティ設定 なし(None)
データビット長 8ビット
ストップビット 1ビット
ハンドシェイク 使用しない
RTSライン 無効

画面の作成とプロパティ設定

Visual Basic 2005を立ち上げ、新しいプロジェクトを作成し、左図のような画面を作成します。SerialPortコンポーネントを画面に貼り付けます。SerialPortコンポーネントのプロパティの内容を確認します(ボーレートなどの通信設定)。

オブジェクト TextBox1 COM1
オブジェクト Button1 接続
オブジェクト Button1 切断

エラー処理(例外処理)

例外処理を行わないと例外エラーが発生した場合、アプリケーションは強制終了してしまいます。それを回避するために例外処理を行います。例外処理を行うとアプリケーションは強制終了しません。左図は、例外処理が発生した場合にメッセージボックスを表示し警告を行った場合の例です。

エラー ポートが開いている間は、'PortName'を設定できません。

プログラム記述例

接続ボタン、切断ボタンクリック時の処理を追加します。Form1.vbに以下のコードを記述します。各オブジェクト(ボタンなど)をダブルクリックすると、ボタンならば、ボタンが押された時の処理を記述するプロシージャが開きます。そこに行いたい処理を記述していきます。

ポートオープン

Private Sub Button1_Click(… → 接続ボタンが押されたときの処理
SerialPort1.PortName = TextBox1.Text	'オープンするポート名を格納
SerialPort1.Open()			                'ポートオープン
End Sub

ポートクローズ

Private Sub Button2_Click(… → 切断ボタンが押されたときの処理
	If SerialPort1.IsOpen = True Then	'ポートオープン済み
 	   SerialPort1.Close()                         'ポートクローズ
	End If
End Sub

例外処理

上記コードに例外処理の追加と、例外エラーの内容の表示を追加した場合の記述例で

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

Try - Catch - End Try構文については、Visual Basic 2005のリファレンスで確認ください。