VIのフォルダパスを調べる2011/02/16 15:00


VIの保存先のパスを調べる時に、"現在のVIパス"で調べる方法がありますが、
実行形式のEXEファイルにするとパスが変わってしまう場合があります。

例えば "c:\Test\Main.vi" の中で "c:\Test\Sub.vi" が使われている場合。
Subの中で、"現在のVIパス"は "c:\Test\Sub.vi"を出します。
ここで、Mainを実行形式にすると、"c:\Test\Main.vi\Sub.vi" となります。
実行形式にする場合には変更が必要になります。
そこで、今回はそのVIが保存されているフォルダを調べるサブVIを作成しました。


このサブVIを使えば、VIの状態でも、EXEでも、そのVIが保存されているフォルダのパスを返します。

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

VIのフォルダパスを調べる

Googleのチャートツールでマップチャートを描く2011/01/19 15:00

Googleのサービスで、様々なグラフやチャートを描くサービスが有ります。
Googleチャートというサービスです。詳しくは Google Chart Toolsを参照してください。
仕組みは簡単、URLに、グラフのデータを添えて送信すると、グラフ画像を返してくれます。


今回はマップチャートです。

"PointData"に、データを入力します。
データは以下の三要素のクラスタの配列です。
 "Country Code "は、プロットする国、地域の選択肢です。
 国と、日本の県、アメリカ合衆国の州の選択肢から選ぶことができます。
 "Legend"は、凡例に表示する文字です。
 "Color"は、プロットの色です。

"Size"に、グラフのサイズを設定します。

"Zoom"では、表示する地域の範囲を指定できます。
 "ZoomOption"では二種類のオプションがあります。
 "auto"では、選択した場所を中心に自動的に範囲を決めます。
  auto場合、"bottom"、"left"、"top"、"right"でピクセル単位で位置を調整できます。
 "fixed"では、緯度経度で表示範囲を決めます。
  fixed場合、"bottom"、"top"、は緯度(南緯はマイナス)、"left"、"right"は経度(西経はマイナス)で指定します。

実行すると、"Chart"に画像が表示されます。
Googleのサイトを利用するので、インターネットへの接続環境が無いと使えません。

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

Googleのチャートツールでマップチャートを描く

バイナリデータを符号無し整数に変換する2011/01/15 15:00

バイナリファイル等を扱う場合に、バイナリデータから整数を取り出す必要が出てきます。
複数バイトのサイズの整数を扱う場合に問題になるのがバイト順序(バイトオーダー)です。
バイトオーダーには、主に「ビッグエンディアン」と「リトルエンディアン」の二種類があります。

「ビッグエンディアン」は、データを大きい値に対応する上位バイトから並べます。
この方式は、IBMの汎用計算機から、UNIX系のCPU、モトローラー系のCPUで採用されていました。
そのため、「Motorola形式」と呼ぶ場合もあります。

「リトルエンディアン」は、データを小さい値に対応する下位バイトから並べます。
この方式は、インテルのCPUで採用され普及したため、「インテル形式」と呼ぶ場合もあります。

ちなみに、LabVIEWの内部処理では、「ビッグエンディアン」が使われています。
これは、LabVIEWが元々AppleのMacintoshで開発されたソフトウェアであるり、当時のMacがMotorolaのCPUを使っていたためです。

この二種類のバイト順序に対応してデータを変換するサブVIを作りました。

サブVIは、16ビット、32ビット、64ビットの3種類がありますが、32ビットを例に説明します。

"Binary Data"に元になるバイナリデータを文字列形式で入力します。
"Byte Order"で、バイトオーダーを"big-endian"か"little-endian"を選択します。
"Index"には、データ読出し位置を入力します。
実行すると、
"U32"から、変換された値が出力されます。
"Bytes"からは、変換に使われた箇所のデータをバイト配列で出力します。

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

バイナリデータを符号無し整数に変換する 

VIの説明をまとめて編集する2010/12/27 15:00

VIの説明をまとめて編集するViを作りました。
大きなプロジェクトで、たくさんのVIを作った場合に、まとめて作業できると便利です。

このVIでは、ファイル名のリストからVIを動的に開いて、プロパティノードから説明を変更します。
編集後には、インボークノードを使ってVIを保存します。

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

VIの説明をまとめて編集する

音のフィルター2010/12/03 15:00

LabVIEWで波形のフィルタ処理を行うViを作りました。
タイプは、"ローパスフィルター"、"ハイパスフィルター"、"バンドパスフィルター"、"バンドストップフィルター"の4種類です。
カットオフ周波数を指定して実行します。

今回はバターワースフィルタ関数を使用しています。

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

音のフィルター

ネット接続をピングで調査する2010/12/02 15:00

TCP/IPの通信状態を調べるPingを行うサブVIを作成しました。
ネットワークを利用したシェア変数などを利用している場合の不具合の対処などでTCP/IPの状態確認に利用できます。


今回は、コマンドプロンプトを利用せずに.NETのPingクラスを使いました。
実は、WindowsのPingコマンドは、Windows Vista以降に日本語化されたため、メッセージも日本語になっています。
レスポンスの解析をXP以前とVista以降で分けると煩雑になるので、今回は.Netとしました。

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

ネット接続をピングで調査する

Googleのチャートツールでレーダーチャートを描く2010/12/01 15:00

Googleのサービスで、様々なグラフやチャートを描くサービスが有ります。
Googleチャートというサービスです。詳しくは Google Chart Toolsを参照してください。
仕組みは簡単、URLに、グラフのデータを添えて送信すると、グラフ画像を返してくれます。


今回はレイダーチャートです。
"Data"にデータ、"Labels"に各項目名称、"Colors"に項目の色を指定します。
実行すると、"Chart"に画像が表示されます。
Googleのサイトを利用するので、インターネットへの接続環境が無いと使えません。

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

Googleのチャートツールでレーダーチャートを描く

画像の解像度変換2010/11/30 15:00

画像の解像度を変換するサブVIを作成しました。
"Picture In"に基となる画像を入力します。
"1/n"に解像度を何分の一にするかを入力します。
実行すると"Picture Out"から、解像度が変換された画像が出力されます。


画像のサイズは変換しないので、いわゆるモザイク処理となります。

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

画像の解像度変換

ウィンドウをタイリングして表示する2010/11/29 15:00

同じ機能を持ったウィンドウをたくさん表示したい場合、モニタ全体にタイリングすると見やすいです。
そこで、一つの再入可能VIをタイリングして複数表示するためのサブVIを作成しました。

呼び出し側のVIは、タイリングで表示する位置を計算して、呼び出されるVIに渡しながらVIを開いていきます。
呼び出されるVIは必ず"再入実行可能"に設定する必要が有ります。
呼び出されたVIはそれぞれの処理を別々に行うことができます。
呼び出されたVIの全てが終了すると、自動的に呼び出し側のVIも終了します。

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

ウィンドウをタイリングして表示する

ダイヤルトーン音を出す2010/11/26 15:00

電話のトーンダイヤルで使用される、Dual-Tone Multi-Frequencyの音を出すサブVIを作りました。
電話の「ぴぽぱ」音です。
電話では、0から9の数字と#、*しか使いませんが、本来は、さらにA,B,C,Dを加えた16種類の信号を送信できます。

信号の種類に応じて決められた周波数の2つの音を重ねて合成し、再生します。
信号は、高音4種類、低音4種類の君合わせで16種類の音を表現します。
オートダイヤラなどで電話回線を使いたい時に利用できます。
トラブル時に、電話をかけてメッセージを再生すれば、アラームなどを通報できます。
その場合は、技術基準適合認定を受けなければ、電気通信事業法に抵触しますのでご注意ください。

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

ダイヤルトーン音を出す