ウォッチドックタイマ2010/08/12 15:00

ウォッチドックタイマは、装置などが正常に動作しているかを監視する仕組みです。
監視の対象となる装置は、ウォッチドックタイマに対して定期的に信号を送ります。
定期的な信号が途切れると、ウォッチドックタイマが異常と判断して特別な処理を行います。

通常は制御用のハードウェアで利用されるのですが、今回はLabVIEWのループ処理が定期的に動作しているかを監視するサブVIを作りました。
監視対象のループと並列で動作するようにサブVIを実行し、信号はノーティファイアで伝えます。

サンプルは会社のサイトに掲載しましたので下記をご覧ください。

ウォッチドックタイマ

GZIP圧縮/解凍2010/08/13 15:00

.NET Framework 2.0から追加されたGZip圧縮/解凍の機能を使うサブVIが下記に紹介されています。

GZIP compress/uncompress of string using .NET

"dotNET Compress String.vi"が圧縮用のサブVIです。
"String"に元のデータを入力して実行すると、"GZIP compressed string"から圧縮後のデータが出力されます。

"dotNET Decompress String.vi"が解凍用のサブVIです。
"GZIP Compressed String"に圧縮されたデータを入力して実行すると、"Uncompressed String"から元のデータが出力されます。

ファイルに保存する機能は有りませんので、保存の機能は自分で作る必要があります。

ディスカッションフォーラム2010/08/15 15:00

LabVIEWを使っていて何か解らない事が有ったらどうしますか?
有料のサポート契約のSSPを申し込んでいれば電話でサポートを受けるのも良いでしょう。
電話サポートが最も確実で、早い解決方法なのは間違いありません。

もし急ぎで無ければ、サポートに電話する前に、ディスカッションフォーラムを検索してみてください。

ディスカッションフォーラム(日本語)

このディスカッションフォーラムでは、日々様々なディスカッションが行われています。
ほとんどは、ユーザの質問に対して、別のユーザが答えるといった内容です。
場合によっては、具体的なVIや、ダイアグラムの画像を添付して説明されています。

もし、ユーザの間で回答が出なかった場合でも、しっかり、NIの社員の方がフォローしています。
非常にたくさんの質問が有るので、同じような質問が無いか探してみてください。

もし、似た質問が無かった場合には、急ぎ質問でなければ、質問を書き込んでみましょう。
数日から、一週間くらいで、何らかの回答が書き込まれると思います。
このフォーラムの内容は、LabVIEWコミュニティ共有の財産です。
コミュニティがもっと広がって、LabVIEWがもっと使いやすくなるように、あなたも是非、このフォーラムに参加してみてください。

私も、何度もお世話になっていますし、気が向いたら回答を書き込んだりもしています。

表示するグラフを選択する2010/08/19 15:00

LabVIEWの波形グラフに多くのプロットを表示すると、場合によってプロットが重なり合って見えなくなる場合があります。
プロットの表示・非表示を簡単に切替えられれば見たいプロットを簡単に選択できます。

今回作成したサブVIは簡単な操作でこの選択を可能にします。
波形グラフの表示を行うループにサブVIを配置して、波形グラフのリファレンスを接続します。
設定用のデータ端子を右クリックして[作成]-[制御器]で、設定の制御器を作成します。
実行すると、チェックのON/OFFでプロットの表示を切替えができます。同時に名前の変更も可能です。

サンプルは会社のサイトに掲載しましたので下記をご覧ください。

表示するグラフを選択する

Htmlのデータを取り出す2010/08/20 15:00

Webサイトを記述するHtmlは、タグと呼ばれる見出しによって、いくつものセクションが作られ、セクションの集まりとして表現されています。
Htmlを解読するには、このセクションの情報を適切に取り出す必要があります。

Htmlのデータから、指定した名称のタグを探して、そのタグで指定されたセクションのデータを取り出します。
例えば本文を示すタグ< body>でも、< BODY>や、< Body>などの書き方も出来ます。
このVIでは、書き方のバリエーションにも対応した処理を行っています。

サンプルは会社のサイトに掲載しましたので下記をご覧ください。

Htmlのデータを取り出す

フィードバックノードで機能的グローバル2010/08/23 15:00

機能的グローバル変数は、データ共有のための機能に加えて様々な処理を追加出来る便利なVIです。
通常は、一回しか実行されないループに、初期化されていないシフトレジスタを作って実装します。

今回は、シフトレジスタの代わりに、フィードバックノードを使った、機能的グローバル変数の作り方を紹介します。
フィードバックノードは、シフトレジスタとほぼ同じ役割を果たす関数です。
シフトレジスタと同様に、データの保存するためのメモリ領域を持ち、前回の実行で書き込まれた値を保持しています。
フィードバックノードを使うと、ループが不要なので全体がシンプルに見えます。
しかし、ダイアグラムの見た目がデータフローと矛盾するので、慣れないと解りにくい場合があります。

サンプルは会社のサイトに掲載しましたので下記をご覧ください。

フィードバックノードで機能的グローバル

Waveファイルを再生する2010/08/24 15:00

サウンドデータファイルのWaveファイル(拡張子.wav)を再生するサブVIです。
音声でのメッセージを再生したり、警告音を鳴らすなど様々な用途が考えられます。

最初に、指定されたファイルが有るか、拡張子が".wav"か、等を調べます。
問題が有る場合にはファイルを選択するダイアログを開きます。
次に、VIライブラリの「サウンドファイル簡易読取り」でファイルを開きます。
続いて、サブVIの「PlaySound.vi」で再生します。
一連の処理を一つのサブVIで行いますので、実装が簡単ですし、信頼性も上がります。

サンプルは会社のサイトに掲載しましたので下記をご覧ください。

Waveファイルを再生する

値の変化を調べる2010/08/25 15:00

繰返しループの中で値が変化していないか調べる場合があります。
通常はシフトレジスタで前回の値を次の回に送り、比較をします。
しかし、数が増えるとシフトレジスタも増えてしまい場所を取ります。
たくさんの値の変化を調べるためのサブVIを作りました。

1つのサブVIで4つまでの値を調べることが出来ます。
調べたい値を"Value 1"から"Value 4"までに接続します。
実行すると、"V1 Change?"から"V4 Change?"に、各値が変化したかの結果を出力します。
さらに多くの値を調べたい場合には、"ChangeList"を使用します。

サンプルは会社のサイトに掲載しましたので下記をご覧ください。

値の変化を調べる

境界でチャートの色を変える2010/08/26 15:00

波形チャートのプロットの色を途中で変えると、プロット全体の色が変化してしまいます。
一本の波形を波形の途中で色を変えることはできません。
二本の色違いの波形を巧く表示することでまるで一本の波形が色を変えているように見せることができます。

二本の色違いの波形を表示するために、一方が表示されている時には、もう一方のラインを消します。
ラインを消すには、そこでの値を"NaN"にするとチャートからプロットが消えます。
NaNでプロットを消すと、その前後のラインも消えてしまうため、はじめからラインは表示しません。

サンプルは会社のサイトに掲載しましたので下記をご覧ください。

境界でチャートの色を変える

Htmlの属性情報を取り出す2010/08/27 15:00

LabVIEWを使ってWeb上のデータを利用する時に、HTMLの情報を解読する必要があります。
HTMLのタグと呼ばれる記号には、属性情報を追加することが出来ます。
例えば、リンクを表すタグの < a > では、リンク先属性 "href" を追加して、
< a href="http://www.tectos.co.jp/" > と表記します。
今回は、Htmlの中を検索して、特定のタグの中にある特定の属性情報をリストで取り出すサブVIを作りました。

使い方は簡単で、検索の対象となるHtmlドキュメントを、"HTML"に入力します。
"Section Name"にタグの名前、例えば"a"と入力します。
"Attribute Name"に属性の名前、例えば"href"と入力して実行します。
すると、"Value List"から属性情報のリストが出力されます。
この例の場合は、入力したHTMLの中のリンク先のアドレスをリストで出力してくれます。

サンプルは会社のサイトに掲載しましたので下記をご覧ください。

Htmlの属性情報を取り出す