テクシオ・テクノロジーによるおじさんのためのIOT講座


(2) Visual Studio C# によるシリアル通信プログラミング
【Windowsフォームアプリケーション】


Visual C#はプログラミングのための参考資料やサンプルが豊富にありますが、通信を使って計測機器などを制御する汎例はそれほど多くありません。今回は簡単な操作と通信の組合わせについてアプリで必要となるGUIとボタン処理を簡単に説明いたします。
制御対象はRS-232CまたはUSB-CDC対応の機器 となっていますのでシリアル通信で接続する電源やオシロスコープの他にRS-232C/RS-485を使ったセンサ類にも対応が可能です。

Visual Studioの準備などの手順はここでは扱いません、個人などで利用される方は、無償のVisual Studioコミュニティ版をダウンロードしてPCにインストールしておいてください。業務利用や企業の場合はライセンス違反にならないように手配してご利用ください。ここでは2022バージョン17.2を使用していますが配布しているプロジェクトはどのバージョンでも問題無いと思います。また、PCの管理者権限は必須ではありませんが権限が無い場合、操作のたびに
パスワード入力などが求められますので、有効なマイクロソフトアカウント と共に準備して置くと安心です。

プログラムはシリアルポートの初期設定、書き込み、読み取りのみとなります。ファイル処理やグラフ出力などはインターネットに豊富にサンプルがありますので紹介していません、必要に応じて追加してみてください。


 
1.プロジェクトの準備
初めにVisal Studioの新しいプロジェクトの作成でC# Windowsフォームアプリケーション(.NET Framework)を選択・作成します、.netFrameworkは4.8を指定しています。
       

    

今回作成するVisual C# でのGUI表示

  フォーム(画面)の構成としてはボタン:4個、コンボボックス:2個、テキストボックス:2個、ラベル:4個で、
  通信のOPEN/CLOSE、送信、受信、COMポートの再取得を割当ています。通信のモジュールとしてツールボッ
  クスのコンポーネントからシリアルポートを追加します。また、ボタンをダブルクリックすると処理のひな形が
  ソースコードとして作成されます。

2.必要なライブラリとグローバル変数を登録します。
  コードを表示してusing定義(Management、IO.Ports、Text.RegularExpressions)とシリアルポートの使用状況
  用の変数を追加します。
              
  ソリューションエクスプローラーの参照を右クリックし参照を追加します。アセンブリのフレームワークから
  System.Managementを検索し追加します。
      

3.コンボボックスの内容を登録します。
          
   シリアルポートのボーレートを選択するコンボボックスにボーレートを登録し、シリアルポートの使用状況の
   変数を初期化します。COMポートのコンボボックスは後述のポート収集を利用して登録しています。

4.イベントの処理を登録します。
   ボタンクリックの処理はフォーム編集のボタンをダブルクリックすることで登録をおこないます。
   OPEN/CLOSEのボタンは、シリアルポートの初期化、オープンまたはクローズをおこないます。
        

   Sendのボタンは送信テキストを送信し、Readのボタンは受信内容を表示します。
        
   ウインドウ右上の×をクリックした時にポートクローズ追加します。
   存在するCOMポートの情報を収集してコンボボックスに登録する処理を用意します。
   
   SerialPortクラスのポート列挙を利用するとRS-232C変換器が表示されないためレジストリから取得します。

5.まとめ
  実用アプリケーションには至っていませんが、Windowsフォームアプリの最低限の内容を取り上げました。
        ・GUIのボタン、コンボボックスの扱いを説明しました。
・シリアルポートの初期化、送受信の例を記述しました。
・シリアルポートの情報収集の例を記述しました。
・最低限のエラー処理を記述しました。
・グローバル変数の利用方法を記述しました。
・必要なUSING定義を記述しました。
・参照設定の追加を記述しました。
・.net Frameworkは4.8で作成されていますが、 
 利用する環境に合わせて変更してください。

後は使う方が必要なものを追加してご利用ください。

  今回は基本的なシリアル通信の設定・送受信を行いました、実際に運用するアプリにするには送受信や表示など
  を別スレッド・プロセスに変更するなどの修正は必要になるかと思います、 通信のテストや動作の確認として
  このまま利用も可能です。

目次に戻る



ソースプロジェクトのダウンロード
プロジェクトをダウンロード後にフォルダへ解凍し、csprojファイルをVisualStudioで開いてください。

◆プロジェクトの利用方法についてのご注意
 現在のWindows10/11のPCではインターネットからダウンロードしたファイル
 などには通常の方法では変更できない属性が追加されています。ファイルを操作
 する場合にこの属性がアクセスをブロックする働きをするようです。
 このためそのままではVisualStudioでは利用できません。ダウンロードし解凍
 したファイルのプロパティを見ると表示のように追加されたセキュリティが確認
 できます。

 属性の解除方法は、
 @ダウンロードした圧縮ファイルをエクスプローラでデスクトップに移動します。
 A次に圧縮ファイルを右クリックのすべて展開で解凍し、元の圧縮ファイルを
  削除します。
 B解凍してできたフォルダを右クリックし、送る→圧縮(zip形式)フォルダーで
  再圧縮します。
 B解凍してできたフォルダを削除した後に、再圧縮したファイルを解凍します。

 以上でダウンロードしたプロジェクトファイルが利用できるようになります。
 
 

©Copyright 2022 TEXIO TECHNOLOGY All Rights Reserved.