H8-3069ネット対応マイコンにMESを入れる > 基本編10.LabVIEWとH8-3069ボード(H8から文字送信)

10.LabVIEWとH8-3069ボード(H8から文字送信)

シリアルポートが認識されているかどうか

ここからはLabVIEWを使った通信を行ってみたいと思います。そして、このサイトの当初の目的である、「現在の温度をH8-3069LANボードに取り込んで、パソコン画面上でグラフにすること」の足がかりにします。
なお、LabVIEWとは?
ご存知の方も多いと思いますが、National Instruments Corporation(米国ナショナルインスツルメンツ社)の計測制御用ソフトです。そして、LabVIEWは同社商標です。製品についての詳しいことは、日本ナショナルインスツルメンツ殿ウェブサイトにて確認ください。

さて今、私の自宅パソコンにはとりあえず「LabVIEW」の試用版8.20がインストールされています(なお、もう一台自分のライセンスを持っています)。
試用版には使用期限がありますのでご注意ください。

まず、今回私がざっと試しにプログラムを考えてみました。考えた、と言っても、実は殆ど考えていません。なぜなら、LabVIEWにはサンプルファインダというサンプルプログラムが沢山入っているので、その中からめぼしをつけて似たようなプログラムを探し出し、自分仕様に修正しただけです。
そして、多分合っているだろうプログラムを実行させてみたのですが、早速エラーが発生しました!
最初、私のプログラムの書き方が良くないのかと思って何度も見直してみました。どうやらそうではなく、シリアルポートに挿したH8-3069LANボードのsci0が認識されてない!ことを発見しました。これがまさにNI(日本ナショナルインスツルメンツ社)殿の技術サポートデータベース上にある、

シリアルポートにアクセスするときに エラー -1073807202 が発生する

状態でした。

NI-Serialのインストール

ここで、技術サポートデータベースの解決策を一つずつ試していくことにしました。

・windows/system32フォルダにvisa32.dllがあるかどうか

まずここで私の環境にはvisa32.dllがないことを確認しました。とりあえず、ないのでNIのサイトからダウンロードしてきて配置してみました。・・・しかし末尾番号が202のエラーは消えません。

・NI-Serial または NI-VISA ソフトを修理する必要がある

次にこちら。「NI-Serialソフトが怪しい」と思い、NIからダウンロードして、インストールしてみました。 そしたらビンゴ!!!見事認識しました。

NI-Serial

下のようなテストプログラムを作って一度実行し、シリアルポートがLabVIEWで認識されているかどうか調べました。もちろん認識のためには、H8-3069ボードの電源を入れておく必要があります。ASRL4:INSTRというのがパソコンのCOM4ポート、ASRL5:INSTRがCOM5を指しているようです。ここで今回私は、COM5をH8とハイパーターミナルの通信用に使っていて、COM4をH8のsci0とつないでいます。

このような認識プログラムももちろん、LabVIEWのヘルプファイルやサンプルファインダを参考に(というか「まんま」)させて頂いております。

シリアル認識テストのブロックダイアグラム

シリアル認識テスト

動かしてみる

実際にH8-3069LANボード側から文字列を送信するプログラムは、基本編7で行った「シリアルポートsci0を使った通信」とまったく同じプログラムsci0_1.cを使用しました。ただし、送信する文字が同じだとつまらないので少しだけ変えてみました。(sci1_1.cおよびsci1_1.elfという名称で保存しました)

結果:動きました。意図したとおりの動きです。以下、その時の絵を貼り付けます。LavVIEWプログラムは、サンプルファインダプログラムをちょっと改良して作っただけ。LabVIEWプログラム(受信側)はsci1_1.elf(送信側)よりも先に実行状態にしておき(受信可能状態にしておく)、文字列を受け取ったら、自動的に実行停止(whileループから抜けるよう)になるようにしてあります。

文字列読み取りプログラム

文字列読み取りプログラムブロックダイアグラム-クリックすると拡大します

LabVIEWプログラムを受信待機させておいた状態でsci1_1.elfを実行する

文字を読み取ったところ。成功。

同時に液晶にも表示してみました。

次は11.LabVIEWとH8-3069ボード(H8で文字受信)です。>>