テクシオ・テクノロジーによるおじさんのためのIOT講座 |
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を指定しています。 通信の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フォームアプリの最低限の内容を取り上げました。
今回は基本的なシリアル通信の設定・送受信を行いました、実際に運用するアプリにするには送受信や表示など を別スレッド・プロセスに変更するなどの修正は必要になるかと思います、 通信のテストや動作の確認として このまま利用も可能です。 ソースプロジェクトのダウンロード
|
©Copyright 2022 TEXIO TECHNOLOGY All Rights Reserved. |