MSCommプログラミングの実際例


【MSCommの実例】 (参考文献 金藤氏著 「自動計測システムのためのVB6入門」)

MSCommを使った実際の例として単純なテキストの送受信のプログラムを
Visual Basicを使って作成してみます。
MSCommのイベントを使って他の業務が並行処理できるようなイベントを使った
仕組みで作成します。

まず、機能は、単純で下記のようにします。

(1) 通信の初期設定
  COMポート、通信速度、データ長、パリティの有無、ストップビット長、
  フロー制御の有無の設定を行います。簡単にするため下記のような一定の
  条件を設定するものとします。
   
    COMポート : 2
    通信速度  : 9600bps
    データ長   : 8ビット
    パリティ   : 無し
    ストップビット: 1ビット長
    フロー制御 : 無し

(2) テキストデータの送信
   テキストボックスに入力したテキストデータを送信します。
   最後にCRコードを負荷して送信します。

(3) テキストデータの受信と表示
  相手側から送られて来たテキストデータをそのままマルチラインのテキスト
  ボックスに表示します。

下記の例題のVisual Basic Ver6 用のプロジェクトを1式下記からダウンロード
出来ますので解凍してお使い下さい。

  ★ MSCommテストプログラムのプロジェクトファイル1式
      (フォームとプロパティ、コードなど)


実際の実行中の画面は下図のようになります。





【フォームの設定】

まずはフォームを作成します。
外観は下図のようなフォームとし、それぞれの標準コントロールを配置して
各プロパティで下記のような設定をします。
MSCommコントロールはコンポーネントを追加してから配置します。








《プロパティの設定》
 FORM           Caption      => MSComm Test
                オブジェクト名  => CommTest
 MSCommコントロール オブジェクト名  => msSerial

 通信開始ボタン     オブジェクト名  => cmdOpen
                Caption      => 通信開始
 送信ボタン        オブジェクト名  => cmdOut
                Caption      => 送信
 送信テキストボックス  オブジェクト名 => txtOutData
                Text        => なし
 受信テキストボックス  オブジェクト名 => txtInputData
                 Text       => なし
                 MultiLine    => True
                 ScrollBars   => 2-垂直

【コードの作成】

次にそれぞれのコードを記述して行きます。コード記述が必要なイベントは下記
となります。

 (1) FormのLoadイベント
    通信の初期設定を行うためMSCommの設定を行います。
 (2) 通信開始ボタンのclickイベント
    通信の開始をするためMSCommをオープンします。
 (3) 送信ボタンのclickイベント
    送信テキストボックスのデータをMSCommで送信します。
 (4) MSCommのOnCommイベント
    受信により発生するイベントでデータを受信し、受信テキストボックスに
    表示します。

【FormのLoadイベントのプロシージャ】
 Formを開いた時には、まず通信条件を設定して使うCOMポートを設定しておきます。
 このあと、通信開始ボタンでOPENするときの条件をあらかじめ設定しておきます。
 プロシージャの内容は下図のようにします。






  フロー制御をすると相手側でもその制御を組み込む必要がありますので、簡単に
  する目的で、フロー制御は省略します。
  MSCommコントロールの送受信のOnCommイベントを発生させるためには、
  送信はバッファが空になった時に、受信は、毎回のデータの受信ごとに発生する
  ように、スレッショルドを1にセットしておきます。


【通信開始ボタンのclickイベントプロシージャ】
 通信開始ボタンを押したときに、MSCommの通信をOpenします。このとき、すでに
 Open済みの時にはCloseし、Close中の時にはOpenするという交互の制御とします。
 それに対応して、通信開始と通信停止のボタン表示に変更します。







【送信ボタンのclickイベントプロシージャ】
 送信をするためにまず、通信回線がOpenしているかを確認してから、送信
 テキストボックスにあるはずのデータを送信します。まだオープン中でなければ
 何もしません。送信データの最後には改行コードを付加します。






【OnCommイベントプロシージャ】
 MSCommコントロールのOnCommイベントに対応するコードを記述します。
 ここでは、イベント発生要因が沢山ありますので、それぞれに対応した処理
 を記述するのですが、エラー処理は大幅に省略して、受信イベントの時を主に
 記述しています。この受信処理では、受信したデータを順次、受信テキストボックス
 に表示しているだけです。








      目次ページへ