お願い 大学,研究所,メーカーの方々から多くのアクセスをいただいています。このサイトが有用であると思われましたら,LabVIEW TOPページへのリンクをよろしくお願いします。
お詫び:2015/7/6から2015/7/8まで,DNSの設定ミスにより 一部のURLにアクセスができなかったことをお詫びいたします。

 「LabVIEW Helpのヒント集」

(Since 2003/10/10,最終更新日:2014/11/10)

「サイトマップ」

LabVIEW TOPに戻る


 ここにあるのはLabVIEWを独習した過程で,わからなくて困ったことや,何回かHelpを参照したことをまとめたものです( このサイトの内容は逐次更新されていますので,最新の内容にアクセスするには「サイト全体の改定履歴」を参考にしてください)。
 マニュアルをそのままコピーしたものではなく,自分の経験からLabVIEWの初心者がとまどいそうな部分を重点に述べているつもりです。

 自分でいろいろ試して,経験的にまとめたものですので,もっと効率的な実現方法/操作方法があったり,ことによると間違ったことを書いているかもしれませんので,参考程度に考えて,ご自分で確認してくださるようにお願いします。

 基本的にはLabVIEW 6.1に関する説明ですが,LabVIEW 7以降に関してもかなりの部分がそのまま通用し,バージョンによる違いがある部分は補足説明を加えてあります。LabVIEW 6.1でのいくつかの問題点が,LabVIEW 7以降では改善されているようです。また,LabVIEW 7のBug FixもLabVIEW 7.1では行われています。

目 次

操作関連
デバッグ
フロントパネル固有
ブロックダイアグラム固有
ヘルプ関連
配線関連
制御器パレット
関数パレット
ファイル入出力
同期関連
通信関連
Cコードの利用手順
MAX
LabVIEWのバグほか
私のビジネス関連

LabVIEW TOPに戻る


操作関連

共通(フロントパネル/ダイアグラム)

1 操作バー 操作バーの説明用の図
画面で,メニューバーとは,「ファイル」,「編集」などの表記がある,上から2行目である。
ツールバーとは,「実行」,「停止」,「整列」などのボタンがある上から3行目である。
2 ショートカットメニュー ショートカットメニューとは,オブジェクト上でマウスを右クリックしてあらわれるメニューのことである。
3 メニューバー
関連
「ファイル(F)」 「全て保存(V)」とは,開いている全てのVIを保存することである。
「編集(E)」 「ファイルから画像をインポート(I)...」は画像をクリップボートに取り込む。その後,フロントパネルやブロックダイアグラムの場所をクリックしてペーストすれば,マウスで指定した位置を画像の中心として取り込める。
もっと実用的な貼り付け操作は,通常のウインドウズのファイルダイアログからフロントパネルに画像ファイルをドラッグするだけでよい。マウスカーソル位置が画像の左上になる。
ヘルプによれば,CLP(windows CLiPboard file),EMF(Enhanced Meta File),WMF(Windows Meta File)またはBMP(Bit Map)形式が取り込めるような記述だが,実際にはPNG(Portable Network Graphics),GIF(Graphics Interchange Format, 透明GIFを含む)形式も取り込める。LabVIEW 7ならば,さらにJPG(Joint Photographic Experts Group)ファイル形式も取り込める。
「操作(O)」 「現在のすべての設定をデフォルト設定にする(M)」は,よく使います。
「ツール(T)」 「上級」「一括コンパイル(M)...」では,指定したディレクトリやVIライブラリに含まれるすべてのVIをメモリにロードしてコンパイルします。ディレクトリを指定した場合,そのSubディレクトリのVIもコンパイル対象になります。そのため,VI間の階層構造が変わってリンク切れになっていても,リンク処理がやり直されるので正常になります。
「オプション(O)...」「その他」で,「実行モードでVIを開く」に「v」を入れてからVIを開くと,編集ができなくなり,実行/デバッグのモードになる。Tabキーでのツール切り替えも,「オブジェクトの操作」と「ブレークポイントのセット/クリア」,「データのプローブ」間の切り替えになる。
「オプション(O)...」で,TCP/IPでのVIサーバ通信を行うには,
(1)「VIサーバ:構成」で,TCP/IPに「v」をつける。
(2)「VIサーバ:TCP/IPアクセス」で,アクセスリストに相手のIPアドレスを追加する。
「参照(B)」 VI階層の表示は,「VI階層を表示(V)」
「ウィンドウ(W)」 パネルの大きさが小さくて,このメニューが見えない時に,フロントパネル/ブロックダイアグラムを開くには,Ctrlキーを押しながらEキーを押す。
「ヘルプ(H)」 パネルの大きさが小さくて,このメニューが見えない時に,ヘルプウィンドウを開閉するには,Ctrlキーを押しながらHキーを押す。
4 ツールバー
関連
連続実行ボタンの図
「連続実行」
「連続実行」ボタンは,繰り返しループの無いVIを連続に繰返せる
実行停止ボタンの図
「実行停止」
ボタン
実行停止ボタンでVIの実行を停止できるが,NI社のコメントによると,できるだけ実行停止ボタンは使わずに,VI中に停止ボタンを作りこむようにとのことである。独習なので理由はわからないが,おそらく,メモリ管理に問題がでるのだと思う。
テキスト設定
ボタン
テキスト設定ボタンの図
(1)ここで指定されたフォントがテキスト用のフォントとして使用される。ただし,アプリケーションフォント,システムフォント,ダイアログフォントの3つは同一であるので,このままでは意味が無い。
(2)オブジェクトを指定しないで,フォントの変更を行なうと,それが「現在のフォント」に割り当てられる。
 (2-1)オブジェクトを指定しないで,プルダウンメニュから「フォントダイアログ...」を押して現れる,「パネル/ダイアグラムのデフォルトフォント」ダイアログで指定した任意のフォント/サイズは,「現在のフォント」に割り当てられるので,以後,2種類をボタンの切り替えで使うことができる。
 (2-2)上記で「現在のフォント」割当て後は,必ず,オブジェクトを指定するか,テキストの編集ツールに切り替えてからフォント切り替えを行なうこと。オブジェクトを指定しないで,フォントをアプリケーションなどの他のフォントに変更すると,せっかく新たに割り当てた「現在のフォント」指定がもとに戻ってしまう。
(3)1つのテキストの中で,フォントの種類/サイズを混在して使うこともできる。
オブジェクトのサイズ調整ボタンの図
「オブジェクトのサイズ調整」
ボタン
(LabVIEW 7のみ)
複数のオブジェクトのサイズをそろえて見掛けを整えるために使う。
並べ替えボタンの図
「並べ替え」
ボタン
オブジェクトの上下重なりの優先順序は,後から配置されたものが上に表示されるが,これを変更するには,ツールバー右端の「並べ替え」ボタンを使う。
オブジェクトのグループ化も「並べ替え」ボタンを使う。
Helpボタンの図
「Help」ボタン
(LabVIEW 7のみ)
Helpウィンドウ表示のON/OFF
5 制御器パレット フロントパネルのなにもない部分で右クリックすると,そこに一時的に制御器パレットが現れる。
上記の制御器パレットを表示したままにするには,パレット左上の「ピン」をさす。
6 関数パレット ブロックダイアグラムのなにもない部分で右クリックすると,そこに一時的に関数パレットが現れる。
上記の関数パレットを表示したままにするには,パレット左上の「ピン」をさす。
7 ツールパレット フロントパネルやブロックダイアグラム上で,Shiftキーを押しながら右クリックすると,一時的にツールパレットが現れる。
8 制御器/関数/ツール
パレットの位置
パレット類をドラッグして位置を変更した場合,パレットを消さないでLabVIEWを終了すれば,次回の起動時に変更した場所にパレットが現れる。一旦,パレットを消してLabVIEWを終了すれば,次回にパレットを表示すると,初期位置に現れる。
9 パレットの
カスタム化
パレットビュー (1)制御器/関数パレットに表示されるアイコンの種類や並びは,LabVIEW n\menus (n:6.1〜7.1)ディレクトリにあるパレットビューフォルダに記録されており,デフォルトでLabVIEW 6.1では4種類,LabVIEW 7〜7.1では2種類あります。
(2)パレットビューを変更するには,
 (2-1)制御器/関数パレットを表示し,パレット上部の「オプション」ボタンを押します。
 LabVIEW 6.1では「関数ブラウザオプション」ダイアログで希望のパレット形式を選択して「OK」ボタンを押します。
 LabVIEW7〜7.1では「オプション」ダイアログで希望のパレットセットを選択して「OK」ボタンを押します。
自分用のカスタムパレットビューを作成するには,
(1)制御器/関数パレットを表示し,パレット上部の「オプション」ボタンを押します。
(2)LabVIEW 6.1では「関数ブラウザオプション」ダイアログで「パレットの編集...」ボタンを押します。
  LabVIEW 7〜7.1では,「ツール(T)」「上級(A)」「パレットセットを変数(L)...」
(3)「制御器および関数パレットを編集」ダイアログでパレット形式から「新しい設定...」を選択します。
(4)「パレットセット名」ダイアログで,作成するパレットセットの名前を入れて「OK」を押します。これでLabVIEW n\menusディレクトリに新しいパレットビューフォルダが作成されます。
サブメニュー
の操作
サブメニューのアイコン図や階層構造,アイコン位置並びはパレットビューフォルダや,user.lib内のmnuファイルに記録されています。
上記パレットビューの(2)までの操作の後,
(3)「制御器および関数パレットを編集」ダイアログで,パレット形式から編集したいパレットを選択します。
(4)パレット上の追加/変更したい位置や制御器/関数アイコンを右クリックして,現れる指示に従って操作します。サブメニューの追加/削除,アイコン位置の移動,図の編集などが行えます。
10 日本語変換パレットの
表示位置
日本語変換パレットの位置移動はパレット左下をドラッグする。日本語変換パレットは,一旦,位置を変更すれば以後はその場所に現れる。(日本語変換パレット自体が現れず,画面の左上で変換される場合がある!)
11 ツールの切換え (LabVIEW 6.1)操作ツール操作ツールの図や位置決めツール位置決めツールの図など,「ツール」の変更はTabキーで行う。
(LabVIEW 7)デフォルトで自動ツール選択モードになっているので,Tabキーを押してツール切換えはできない。自動ツール選択モードを止めるには,「ツール(T)」「オプション(O)...」「7.0での新しい点と変更点」「新規その他のオプション」の「「自動ツール選択をONにロック」の「v」をはずすこと。
Shift+Tabを押すと,自動ツール選択モードをON/OFFできる。自動ツール選択モードでは位置決めカーソル(+形)の右上に °が付く。
(LabVIEW 6.1)フロントパネルで,操作ツールと位置決めツールの切換えは,スペースバーで行える。ただし,Microsoft IMEをOFFにすること。
(LabVIEW 7)デフォルトで自動ツール選択モードになっているので,オブジェクトに応じて自動的に,操作ツールと位置決めツール,テキスト編集ツールが切り換る。
 ただし,テキスト変更ツールはオブジェクトのラベル/キャプション領域には出ないので,名前の変更時は不便。フロントパネルにオブジェクトを配置直後か,「表示項目」を「ラベル」/「キャプション」に設定した直後のみテキスト変更ツールとなる。
(LabVIEW 6.1)ブロックダイアグラムで,位置決めツールと配線ツール配線ツールの図の切換えは,スペースバーで行える。ただし,Microsoft IMEをOFFにすること。
(LabVIEW 7)デフォルトで自動ツール選択モードになっているので,自動的に位置決めツールと配線ツールが切り換る。
12 説明とヒント オブジェクトを右クリックして「説明とヒント...」を選び,上段部分に説明を記入すると,そのオブジェクトにアイコンを重ねたとき,ヘルプウインドウにその文章が表示される。
「説明とヒント」の下段部分に記入すると,オブジェクトの操作ツール操作ツールの図をそのアイコンに重ねたとき,フローティングウインドウにその文章がヒントラベル表示される。ヒントラベル表示のON/OFFは「ツール(T)」から行なえる(ヒントラベルは後述)。
13 オブジェクト操作 作成したオブジェクトの四つ角をクリックしたままにすると,大きさが(幅,高さ)のピクセル単位の数値で表示される。それを参考にして,複数のオブジェクトの大きさをそろえる。
(LabVIEW 7)オブジェクトのサイズ調整ボタンで大きさをそろえることができる。
(1)フロントパネルやブロックダイアグラムで,オブジェクト間に隙間を確保するには,Ctrlキーを押しながら,広げたい希望の部分をドラッグする。Caseやシーケンス部分では,裏側の領域も広げられることに注意。
(2)ストラクチャの境界で,Ctrlキーを押しながらドラッグすると,ストラクチャの両側境界が移動する。
フロントパネル上の制御器をダイアグラムにドラッグすると,制御器ラベル名の定数が作られる。
ダイアグラム上の定数をフロントパネルにドラッグすると,制御器が作られる。
複数のVIが画面に表示されているとき,VI間でオブジェクトをドラッグしてコピーできる。
オブジェクトをコピーするには,Ctrlキーを押しながらドラッグする。
14 オブジェクトの
ラベルとキャプション
ラベルを右クリックして,外枠の大きさを自動的にテキストサイズに合わせることができる。
ラベルの外枠をなくすには,色の設定ツール色の設定ツールの図でオブジェクトを右クリックし,カラーピッカーを表示して,Tの付いたボックスを選択する。
枠をつけるには,色の設定ツールの前面色指定を黒にしてオブジェクトをクリックする。
ラベル領域は通常透明であるが,背景と同じ色に塗ると影付きの枠ができる。
初期設定を透明ラベルにするには,「ツール」,「オプション」,「フロントパネル」or「ブロックダイアグラム」で「透明名前ラベルを使用する」に「v」を入れる。
ラベルの文字列の枠内での左/右/中央位置指定は,文字列をドラッグして選択して,上部のツールバーのフォントツールテキスト設定ボタンの図の下黒三角をクリックし,「位置調整」,「左/中央/右」を選択する。
ラベルはオブジェクトを識別するためのもので,フロントパネルとダイアグラム上のラベル名は一致する。
どちらかを変更するとそれが反映される。(クラスタ内に置かれた制御器は,クラスタラベルが代表するので,内部制御器のラベルは例外である)
キャプションはラベルの補助的なもので,ブロックダイアグラム上には表示されない。
15 キーボード
ショートカット


(パネルの幅が小さくて
メニューバーの右側が
見えない時にも便利です)
(1)Ctrl+S:VIを保存する
(2)Ctrl+R:VIを実行する
(3)Ctrl+E:単にフロントパネルとブロックダイアグラムの切換えだけでなく,パネルの幅が小さくて,「ウィンドウ(W)」メニューが見えない時に,フロントパネル/ブロックダイアグラムを開くには,Ctrlキーを押しながらEキーを押す。
(4)Ctrl+H:単にヘルプウィンドウの表示/非表示の切換えだけでなく,パネルの幅が小さくて,「ヘルプ(H)」メニューが見えない時に,ヘルプウィンドウを開閉するには,Ctrlキーを押しながらHキーを押す。
(5)Ctrl+?:オンラインヘルプリファレンスの表示 (?はShiftキーも押すこと)
(6)Ctrl+B:壊れたワイヤの削除
16 LLBの編集 ライブラリ
からの削除
「ツール(T)」,「VIライブラリを編集(E)...」で現れるダイアログで編集したいLLBを選択し,現れるダイアログで削除したいVIを選択して 「消去」(LabVIEW 7では「削除」)とすると,VI名称の頭にゴミ箱マークがつくので,これをくりかえす。
最上位VIの
変更
上記において,最上位にしたいVIを選択して,右の「最上位」に「v」をつける。
17 サブVIの
操作
選択範囲を
サブVIに変換
いったんサブVIにしてしまうと,もとに戻せないが,サブVIの修正はコネクタ端子の増加/削除で構成変更できる。
既存のVIを
サブVIに
変換する
手順
(1)VIのフロントパネル右上のアイコンを右クリックして,「コネクタを表示」とすればデフォルトのコネクタペーンが表示される。
(2)コネクタペーンを右クリックして「パターン」から適当なコネクタパターンを選択し,必要に応じてパターンを回転させる。
(3)入出力の制御器/表示器などの端子をVIのコネクタに割り付ける。
 端子をフロントパネルの制御器や表示器に割当てるには,ブロックダイアグラム上でカーソルを配線ツール配線ツールの図にしてから,フロントパネル右上のコネクタペーンの端子をクリックすると端子が黒くなるので,次に,フロントパネルでその端子に割当てたいオブジェクトをクリックし,さらに,フロントパネルの空いているところをクリックする。
(4)デフォルト設定では,サブVIの端子名は制御器/表示器のラベル名ではなく,キャプションがつけられる。通常,ラベルとキャプションは一致しているが,ユーザーがラベル名を変更してもSub VI端子名には反映されないので注意すること。
 制御器/表示器のラベル名表示にするには,「ツール(T)」「オプション(O)」「ブロックダイアグラム」で,「サブVIのヒントラベルに制御器のキャプションを使用」の「v」をはずすこと。
(5)必要に応じて,フロントパネルの制御器/表示器を隠す。(LabVIEW 7のI/Oの波形制御器/表示器とデジタル波形制御器/表示器は一旦隠すと,二度と表示できないバグがあるようです。これはLabVIEW 7.1ではBug修整されています。)
サブVIの
アイコン
編集
サブVIのフロントパネルの右上のアイコンを右クリックして「アイコンを編集」するか,または,既存のBMPファイルをフロントパネルのアイコン上にドラッグすると,32×32ピクセルアイコンになる。(*1)
アイコン編集は,アイコンエディタで256色をクリックしてから行う。
32×32ピクセルより小さいアイコンを作成する場合,白黒/16色/256色ともアイコンを定義しないと32×32ピクセルサイズで表示される
既存関数VIのアイコンをコピーするには,VIをクリックして選択後,クリップボードにコピーし,「ペイント」プログラムを起動してペースト/bmp保存する。その後,上記の(*1)を行う。
サブVIの
コネクタ
編集
サブVIの端子を増減させるには,アイコン上で端子を選択し,右クリックして,端子を追加/削除とする。追加した端子は必要になるまで配線しなくてもよい。
端子の並びを変更したい場合は,一旦,「端子を切断」してから,再度割り当てる。
サブVIの
ダイアグラム
表示
サブVIをダブルクリックすると,サブVIのフロントパネルが前面に現れるが,サブVIのダイアグラムを先に表示するには,CTRLキーを押しながら,サブVIをダブルクリックする。
18 サブVIが見つからない VIロード中に,サブVIが見つからないというメッセージ画面が出て,サブVIのパスを指定するように要求される場合がある。これはVIの階層構造変更やディレクトリ移動などによっておこるが,見慣れないVIの場合,どこにあるのかよくわからないことがある。
この時,画面の「ロード中:」以下に表示されているパス名の一部が変更されたことがほとんどであるから,この表示を参考にして正しいパスを「参照」ボタンで指定すればよい。
19 サブVIの
ダイナミック
呼び出し
VIプロパティ メモリ上にダイナミックに呼び出されるVIは,「VIプロパティ(I)」,カテゴリ:「ウィンドウの外観」で,カスタムをチェックし,「呼び出されたらフロントパネルを表示する」,「元々閉じていたら閉じる」のみに「v」を入れる。
「ロードされたらフロントパネルを表示する」に「v」があると,VIが終了してもフロントパネルが閉じないので注意
Open VI Reference Open VI Reference関数に入力するタイプ識別子VI Refnumには,厳密タイプVI Refnumを使う。この厳密タイプVI Refnumは,サブVIの端子形状と各端子のデータタイプ情報を持っている。厳密タイプVI Refnumを作成するには,
 (1)制御器パレットから「Refnum」「VI Refnum」でVI Refnum制御器をフロントパネルに置く。
 (2)VI Refnum制御器を右クリックして,「VIサーバークラスを選択」「参照...」で現れるダイアログで呼び出したいVIを開く。
もしくは,
 (2')ウインドウズのファイル表示ダイアログから,呼び出したいVIをドラッグしてVI Refnum制御器に重ねる。
どちらの方法でも,VI Refnum制御器のアイコンがサブVIの端子を反映したものに変わる。
Call By Reference Node Call By Reference Nodeでは,サブVIとして起動するので,サブVIが終了しないと呼び出したMain VIは終了できない。
Plug InはCall by Reference Nodeで呼び出す。
参照:examples\viserver\plugins.llb\Plug In Example.viとexamples\viserver\pluginsディレクトリ内のVI群
Call by Reference NodeにPlug Inとして用いるVIの端子パターンを反映させるには,
(1)フロントパネルにVI Refnumオブジェクトと仮のVIパス制御器を置く。
(2)ダイアグラムに,Open VI Reference関数とCall by Reference Nodeを置き,互いのVIレファレンスとエラーを配線する。
(3)Open VI Reference関数の入力に仮VIパスとVI Refnum端子を配線する。
(4)VI Refnum端子を右クリックして,「VIサーバクラスを選択」「参照...」で,Plug Inとして用いるVIを指定する。
(5)仮のVIパス制御器を本来のパスに取り替える。
20 タイトル名称 ウィンドウのタイトルバーにVI名とは異なるタイトルを表示すると,
そのVIをPlug Inとして使う場合などに,Plug In選択名としてVI名ではなく,そのタイトルを表示することができるので,「.vi」のような拡張子が表示されず,見かけがよくなる。
ウィンドウのタイトルバーにVI名とは異なるタイトルを表示するには,
「ファイル(F)」「VIプロパティ(I)...」「ウィンドウの外観」のウィンドウタイトルの「VI名と同じ」の「v」をはずし,ウィンドウタイトルに希望の名称を入れる。
21 色の設定 ツールパレット下端の,色の設定ツール色の設定ツールの図を使って,フロントパネルオブジェクトまたはフロントパネル背景,ブロックダイアグラムの作業スペース(オブジェクトのない部分)に色を追加または変更できる。
オブジェクトには前景と背景を持つものがあり,別々に色を設定できる。たとえば,メータの前景色は輪郭線の色で,背景色は前面に浮き上がった輪郭線内側の色です。(これらは,メータのデフォルトでは共にグレーなので色を変えてみるとわかる)
カスタム色を作成したり,オブジェクト間で色をコピーしたり,透明なオブジェクトを作成できる。
オブジェクトまたはフロントパネルの背景またはブロックダイアグラムの作業スペースの色を変更するには,以下の手順で行う。
色の設定ツールの図
色の設定
ツール
前面色の
選択
「色の設定ツール」の前面色(四角重なり上側)をクリックして「カラーピッカー」を表示し,色をクリックして選択する。
背景色の
選択
「色の設定ツール」の背景色(四角重なり下側)をクリックして「カラーピッカー」を表示し,色をクリックして選択する。
オブジェクトや
作業スペース
の色設定
上記の色選択後,「色の設定ツール」の筆部分をクリックして 黒く選択し,矢印アイコンをActiveなフロントパネルまたはダイアグラムにもっていくと,筆型のアイコンに変わる。
オブジェクトまたは作業スペースをクリックするとツールで指定された前面色と背景色が設定される。
以上の手順で色設定するか,もしくは,筆のアイコンでオブジェクトまたは作業スペースを右クリックすると「カラーピッカー」が現れるのでそこで指定する。
カラー
ピッカー
カラーピッカーの図
色選択 色を選択するには,「カラーピッカー」上でカーソルを動かしてクリックする。オブジェクトまたは背景は,現在カーソルが置かれている色で再描画され,新しい色でのオブジェクトまたは背景のプレビューが表示される。
カラーバー 色選択を簡単化するため,「カラーピッカー」には3本のカラーバーが用意されている。
一番上のバーはグレイスケールです。
中央のバーは,背景やフロントパネルオブジェクトに適する淡色のスペクトルです。
3番目のバーは,ハイライトに適した色のスペクトルです。
ユーザー ユーザー用に用意された色であり,色区別は標準的な使用分野で示される。
履歴 LabVIEWのいままでの操作で使われた11色の履歴が保存される。色区別はRGB値で示される。
システム LabVIEWシステムのパネルやオブジェクト,テキストなどに標準に使われている色である。
透明色 透明色を選択するには,右上にあるTのプレースホルダをクリックする。
カラー
ウィンドウ
左下にあるカラーウィンドウには,現在選択している色が表示される。前景色と背景色を持つオブジェクトの場合,その前景色はカラーウィンドウの左半分に表示され,背景色は右半分に表示される。
前景色と背景色の選択切替はスペースバーで行う。
カラー
パレット
右下のカラーパレットボタンをクリックしてOSの色設定パレットにアクセスする。そのダイアログボックスから色調,彩度,輝度,および赤,緑,青の値を選択できる。
OSカラーパレットの図
OSの色設定
パレット
OSの色設定パレットの右側のカラーパレットで,
(1)クロスカーソルを左右に水平に動かすと,「色合い(E)」が0〜239の範囲で選択できる。
 「色合い(E)」の値が,0:Red,80:Green, 160:Blueである。
(2)クロスカーソルを上下に垂直に動かすと,「鮮やかさ(S)」が0〜240の範囲で選択できる。
 これは色のくすみ度合いを規定する。
(3)左端のスライダーを上下に動かすと,「明るさ(L)」が0〜240の範囲で選択できる。
 「明るさ(L)」の値が,0:Black,120:色中心, 240:Whiteである。
 ブールランプの色を変えたとき,点燈/消灯はこの明るさで選択する。
(4)「色合い(E)」,「鮮やかさ(S)」,「明るさ(L)」部分に直接に数値を指定することもできる。
(5)「赤(R)」,「緑(G)」,「青(U)」に数値を入れて色設定もできる。
22 VIディレクトリの
上書き更新
VIの動作を終了させた後,そのVIフロントパネルをVIサーバで閉じると,そのVIはメモリからアンロードされるが,LabVIEWはそのVIの入っているDirectory名称を使用中である。そのため,そのDirectory名称を変更する操作はできないが,そのDirectoryを上書き変更することはできる。これは,リモート・ステーションにあるVIディレクトリ内容を,ローカル端末からLAN経由で上書き更新する場合の操作に関係する。
23 リエントラント可能 サブVIをリエントラント可能にするには,「VIプロパティ」,「実行」で「再入可能」に「v」を入れる。
24 EXEファイルの作成
(プロフェッショナル
開発システム)
たとえば,D:\Programs\Sample.viのEXEファイルを作成すると,現在のパスは,
         D:\Programs\Sample.exe\Sample.vi
のように,.exeの下に.viが付く。そのため,パス関連の動作がviのまま走らせる場合と異なり,ブロックダイアグラムの変更が必要になる。これを回避するダイアグラム作成法がある。(LabVIEW Tips)
EXEファイルのオプション設定は,VIでの設定と独立で,再設定を必要とする。そのため,EXEでメニューバーを非表示にしてしまうと設定できない。
25 VI内容説明を
HTML化する手順
VIの内容説明をHTML文書に変換してWEBブラウザで見られるようにするには,メニューバーから,「ファイル(F)」「印刷...」で現れるダイアログでHTML化したいVIが選択されていることを確認して,「次へ>」を押し,「文書のすべて」を選択して,「次へ>」,「次へ>」を押し,出力先として「HTMLファイル」を選択して「次へ>」とし,「保存...」を押して現れるファイルダイアログで保存先を指定する。
26 数値
(制御器/表示器/定数)
のSI表示
数値関連のオブジェクトを右クリックして,「形式と精度...」でSI表記を選択すると,SI単位の付いた数値で表示できる。たとえば,20000→20k,0.01→10m,1000000→1Mなどとなる。
27 アライメントグリッド アライメントグリッドのグリッドサイズは新規VIの時にそのサイズになる。既存VIのグリッドサイズは各VIのファイルメニューのVIプロパティで定義されている。

目次に戻る


デバッグ

1

ブレーク
ポイント

ツールパレットのブレークポイント設定/解除ツールブレークポイント設定/解除ツールの図で,ブロックダイアグラムのVI,ノード,ワイヤにブレークポイントを設定できる。

ブレークポイントの解除は,設定したブレークポイントを再度クリックする。
ブレークポイントが設定されていると,VIならば赤枠になり,ノードやワイヤは赤丸が付く。

端子にブレークポイントが設定されていると,端子枠が赤くなるが,わかりにくい。

(LabVIEW 6.1)ブレークポイントの赤丸がブロックの下敷きになっている場合があり,わかりにくい。
(LabVIEW 7)下敷きになっている場合も,赤丸がちゃんと上に表示される。

2

Sub VI

サブVIがデバッグできない場合には,「ファイル(F)」,「VIプロパティ(I)...」,「実行」,「デバッギングを許可」

3

エラー
リスト

こわれた「実行ボタン」こわれた実行ボタンの図をクリックすると,エラーリストが出てくる。

4

ループの
エラー

ループ処理でのエラーは必ずシフトレジスタなどで,すべてのエラーが累積表示されるようにしなければならない。

5

シフトレジスタ
の初期化

同じSub VIが2度呼ばれたとき,内部のwhile loopのシフトレジスタ入力が初期化されていない場合は,前回のシフトレジスタ出力が初期値として使われる。

6

複数の
While Loop
処理

(1)並列に動作するはずのWhile Loopの一方が動かない場合,最初からそのLoopの停止条件が成立している場合がある。

(2)複数のWhile Loopを共通の「停止ボタン」操作で停止させる場合,他のWhile Loopは「停止ボタン」制御器のローカル変数を終了条件端子に接続して停止させる。この場合,「停止ボタン」制御器の機械的動作として,「押されたらラッチ」を選択できない。機械的動作として「放されるまでスイッチ」を使うと,VIが「停止ボタン」の状態を読み取るまで,ある程度長い時間SWを押し続けないと停止しない場合がある。
 この対策としては,「停止ボタン」制御器の機械的動作として「押されたらスイッチ」を用いて,VI処理の先頭で「停止ボタン」制御器のローカル変数にFalseを書き込んで初期OFF状態に設定しておけばよい。
 どうしても「押されたらラッチ」動作をさせたい場合には,「停止ボタン」出力を一旦,ブール表示器(仮にW停止条件成立Wと呼ぶ)に接続し,W停止条件成立W表示器のローカル変数を他方のVIの終了条件端子に接続すればよい。ただし,VI処理の先頭でW停止条件成立WをFalseに初期化しないと上記(1)の状態になってしまう。

7

ループと
タイマ

リング制御器やリスト制御器のあるループでは,内部にタイマ待ちを入れないと,動きが遅くぎくしゃくする。

8

数値制御器
やカーソルの
直接代入不能

ループ処理中で,プロパティノードを用いてヒントラベルのTipStripに繰り返し書き込むと,タイマ待ちを入れても数値制御器やカーソル凡例に,直接に値を代入して変更することができなくなるので,LabVIEW TipのEasyFFT.viのように,ロジックを組んで書き込み回数を制限すること。

9

エラー
コード

I/Oエラーコードの説明は,「ヘルプ(H)」,「エラーの説明(X)...」

エラー・コードが負の場合は致命的エラーで,正の場合は警告である。

10 一致判定
の異常
基本的には一致判定は整数に対して行なうこと。浮動小数点数の場合,2進数で10進浮動小数点数を表現するため,
(1)浮動小数点数に対してEqual To 0?関数や,Equal?関数などの一致判定を使う場合は注意を要する。制御器や表示器,プローブで値が一見一致していても,実際の値は不一致の場合がある。これは表示桁数を多くしてみるとわかる。そのため,一致判定が予想と異なった結果となる場合がある。
(2)浮動小数点数の制御器の増分を,0.1など整数値以外に設定すると,2進数表現ができない場合があるため,上記(1)の状態になりやすい。(EqualError.vi)
 このために,ループ回数の異常や終了判定異常が発生することがある。
11 四捨五入
時の注意
浮動小数点数を整数に変換する際,小数部分が0.5の場合には,最も近い偶数に変換される。たとえば,1.5も2.5も2に変換される。これはLabVIEWの仕様であり,バグではないとのこと。整数型への強制変換,整数への変換関数,Round To Nearest関数(LabVIEW 6.1),最近値に丸込み関数(LabVIEW 7以降)のすべてでこうなる。そのため,通常の発想でプログラムを組むと,ループ回数の異常や終了判定異常が発生することがある。

目次に戻る


フロントパネル固有

1 ボタンの
点滅速度
押しボタンなどをプロパティノードで点滅するようにプログラムした時,点滅速度の調整は「ツール(T)」,「オプション(O)」,「フロントパネル」,「点滅速度」のデフォルトの「v」をはずし,数値を設定する。
EXEファイルにした場合は,また再度上記の設定を行う必要がある。
点滅色 点滅するときの色の設定は,「ツール(T)」,「オプション(O)」,「色」の「デフォルトの色を使用する」の「v」をはずし,点滅の前景色を変える。
2 ヒントラベル 操作カーソルを制御器上にもっていったとき,フローティングのヒントラベル(TipStrip文字列)を表示するには,
「オプション(O)...」「フロントパネル」で,「フロントパネル制御器にヒントラベルを表示します。」に「v」をつける。VI操作に慣れて,ヒントラベル表示がわずらわしくなったら「v」をはずす。
ただし,VIを作成/編集する際にはヒントラベル表示に「v」を入れておかないと,フロントパネルオブジェクトやスクロールバーをクリックした時に,オブジェクトの大きさや,パネル座標位置が表示されない。
プログラムで制御器のヒントラベルを表示/変更するには,
(1)制御器上で右クリックし,「作成」「プロパティノード」でダイアグラムに制御器のプロパティノードを出し,
(2)ダイアグラムで,制御器プロパティノードを,VI処理フローの希望の位置に移動させる。
(3)制御器プロパティノードの要素(Visibleなど)上で右クリックし,「プロパティ」「」「Tip Strip」を選ぶ。
(4)再度,制御器プロパティノードの要素上で右クリックし,「書き込みに変更」とする。
(5)再度,制御器プロパティノードの要素上で右クリックし,「作成」「定数」とすると,空の文字列定数が接続されるので,希望の文字列を定数に入力する。
3 Run前の状態 VIを一度Runさせた後に再度Runさせる場合,Runさせる前にすでにフロントパネルに表示されている状態や値は無意味で,それが初期値として使われるわけではない。
4 フロントパネルの
初期設定
フロントパネルを開いたときの制御器の初期値設定は,制御器を希望の初期値に設定してから,「操作(O)」,「現在のすべての設定をデフォルト設定にする(M)」で「すべて保存」とする。
5 キーフォーカス VIをRunさせた時,文字入力する文字制御器に事前にカーソルを位置づけるには,文字制御器のプロパティノードをつくり,キーフォーカスにTrueを書き込むこと
6 Tabキー 実行中にフロントパネルでタブキーを押すと,制御器が順番に選択される。この選択順序は,「編集(E)」,「タブ順序を設定(T)...」で指定できる。
7 グループ化 オブジェクトをグループ化するには,複数オブジェクトを選択して,「並べ替え」並べ替えボタンの図,「グループ」
フロントパネルオブジェクトを編集しようとしても選択できない場合がある。これはグループ化されている場合だと思われるが,ブロックダイアグラムから「検索」,「制御器」とすると,破線で囲まれた領域が表示される。その後,キーボードの矢印キーを使って位置を少し変更すると,選択できるようになる。アイコンを選択アイコン(+)に変えてからそのオブジェクトの回りを選択すると,ロック解除できるようになり,グループ化されたものも含めて解除される。
8 数値制御器
の値変更
数値制御器の値変更を高速にするには,Shiftキーを押しながらUP/DOWNボタンを押す。Shiftキーは後押しでもよいが,Shiftキーを5回以上押すとWin OSの「ユーザー補助」の「固定キー機能」のダイアログが出るので注意。
UP/DOWNボタン操作では,数値の1桁目が変化する。カーソルで桁位置を指定してUP/DOWNボタン操作をすれば,その桁が変化するが,1度きりで,その後は1桁目の変化に戻る。
これに対して,カーソルで桁位置を指定してから,キーボードの↑↓キーを押すと連続してその桁の数値を変えられる。桁位置を変えるには←→キーを押す。
スライドやノブなど,すべての数値制御器の操作で,飛々の値をとらせる,すなわち,0, 100, 200, ...などにするには,制御器を右クリックして,「データ範囲...」のダイアログで「デフォルトを使用」の「v」をはずし,「増分」に希望の増分を入れる。
こうするとそれ以外の値を入れても,49→0, 50→100のように丸められる。
9 データ範囲 表示器/制御器を右クリックしてデータ範囲を設定できるが,有効なのは制御器に対してのみであり,表示器では無視される。(サンプルVI)
10 配列 要素の追加/削除
(1)既存の1次元配列の要素の追加挿入を行うには,挿入したい要素位置の次の要素を右クリックして,「データ操作」,「前に要素を挿入」とすると,要素が1つ挿入されるので,そこに希望の値を入れる。
(2)既存の1次元配列の要素の削除を行うには,削除したい要素を右クリックして,「データ操作」,「要素を削除」
行/列の追加/削除
(1)既存の2次元配列の行/列の追加挿入を行うには,挿入したい行/列の,次の行/列の任意の要素を右クリックして,「データ操作」,「前に行/列を挿入」とすると,要素がすべて0値の行/列が挿入されるので,そこに希望の値を入力する。
(2)既存の2次元配列の行/列の削除を行うには,削除したい行/列の任意の要素を右クリックして,「データ操作」,「行/列を削除」
配列の指標領域が小さくて,桁数がはみ出すときは,位置指定カーソル(+形)を指標領域にゆっくり近づけるとカーソルが矢印に変わり,指標領域が2重枠線で囲まれるので,左にドラッグして領域を大きくする。
(LabVIEW 7)やることは同じですが操作はもっと簡単です。
11 配列,クラスタ
画像リング(ピクチャリング@LabVIEW 7)
立体枠
消去方法
(1)この操作は,配列などのオブジェクトに要素をドラッグする前に行なう。
(2)ツールパレットの「色の設定ツール」色の設定ツールの図の「前面色」,「背景色」をともに「T」にする。
(3)色の設定ツール色の設定ツールの図で,配列などのオブジェクトの中央をクリックすると,オブジェクトがフロントパネルの色と同じになる。
(4)色の設定ツールで,オブジェクトの立体枠を右クリックすると,カラーピッカーが現れる。左下にあるカラーウィンドウの右側が「T白枠」となっているので,スペース・キーを2回押して選択を変更する。
(5)その後,カーソルを右上の「T」にもっていくと立体枠が消える。
12 グローバル
定義
(LabVIEW 6.1)Global定義の作成は,「新規VI」で現れる名称未設定のウィンドウの「ファイル(F)」,「新規(N)...」として現れるウィンドウで「グローバル変数」
(LabVIEW 7)「新規(N)...」で現れるダイアログの「新規作成:」で「その他のドキュメントタイプ」「グローバル変数」
13 フロントパネル
の原点
プロパティノードを用いてフロントパネルをスクロールさせるときには,「Panel Window:Origin」に値を設定して移動させるが,その(0,0)位置は,フロントパネルの水平/垂直のスクロールバーをクリックしたときにウィンドウ周辺に現れる,「起点(x, y)」が,「起点(0, 0)」となるようにスクロールバーを操作したときの,フロントパネルの左上座標である。

目次に戻る


ブロックダイアグラム固有

1 ヒントラベル 配線ツールをオブジェクトの各端子にもっていったとき,その端子に関するフローティングのヒントラベルを表示するには,「オプション(O)」,「ブロックダイアグラム」で,「端子のヒントラベルを表示する」に「v」をつける。
2 フロントパネル
オブジェクトを
削除
ブロックダイアグラムにおいて,フロントパネル端子を指定して対応するフロントパネルオブジェクトを削除できるようにするには,「ツール(T)」,「オプション(O)」,「ブロックダイアグラム」で,「ダイアグラムからフロントパネル端子を削除する」に「v」をつける。
(LabVIEW 7)これがデフォルト設定になっています。
3 ブロックの属性 特定のブロックの属性を知るには,配線ツール配線ツールの図でそのブロックの出力ワイヤを調べる。
4 制御器/表示器 ダイアグラムにおいて,制御器制御器端子の図の外枠は太く,表示器表示器端子の図の外枠は細い。信号の入出力位置を示す黒三角の配置でもわかる。
5 サブVIのブロックダイアグラム サブVIのブロックダイアグラムを前面側に開くには,Ctrlキーを押しながらサブVIをダブルクリックする。

目次に戻る


ヘルプ関連

1 ヘルプで説明を表示させるには,メニューバーから「ヘルプ(H)」,「ヘルプを表示(H)」とし,ダイアグラムのオブジェクトにカーソルをもっていくこと。
2 ブロックダイアグラムで関数上にカーソルをもっていった時,ヘルプの関数アイコン説明図でカーソル位置に対応する配線端子をブリンクさせるには「配線ツール」配線ツールの図を使う。ただし,入力数を変えられる関数(Build Arrayなど)の説明図ではブリンクしない。
3 「説明とヒント」でフロントパネルオブジェクトの説明を入れる場合,上段に入れた「W???Wの説明」はヘルプダイアログに表示され,下段に入れた「W???Wの簡単な説明」はフロントパネルでオブジェクトにカーソルをもって行ったときにヒントラベル表示される。ただし,カーソルは「オブジェクト操作ツール」操作ツールの図でなければならない。
4 独立したサブVIの説明は,そのVIのフロントパネルの「ファイル(F)」,「VIプロパティ」,カテゴリ「ドキュメント」のVI説明に記入すると,ヘルプダイアログに表示される。
5 アイコン上にカーソルをもって行ったときに表示される説明内容を固定し,カーソル移動しても変わらないようにするには,ヘルプ画面左下の「ロック」アイコンHelpロックアイコンの図をクリックする。
6 ヘルプ説明の「シンプル/詳細」を切換えるには,ヘルプ画面左下の「シンプル/詳細」アイコンHelpのシンプル/詳細切り替えアイコンの図をクリックする。
7 ヘルプの説明文中で,「dB On (F)」等と表記されている場合,Trueにすると「dB表示がON」となる信号であり,defaultではFalseであることを示す。
8 チャートやグラフのサンプルVIの探し方
「オンラインヘルプレファレンス」,「LabVIEW ヘルプ」,「検索(S)」,(1)探したい語句入力に「chart」,(2)検索範囲を限定するに「2行目のChart」,(3)表示するトピックに「チャートサンプル」or「グラフサンプル」を入れる。
9 データ収録ハードウェア関連HELP
「オンラインヘルプレファレンス」,「LabVIEW ヘルプ」の「目次(C)」タブの「VIおよび関数レファレンス」,「データ収録VI」のヘルプにしてから,「キーワード(I)」タブでキーワードに「表」を入力して各ハードウェアの設定を見る。

目次に戻る


配線関連

1 不良ワイヤの削除は「Ctrl+B」または,「編集」,「不良ワイヤを削除」
  太破線:未接続配線
  細実線:スカラー
  太実線:配列
  黒細破線:こわれたワイヤ
2 ブロックダイアグラムのワイヤ交点にドットを表示するには,「ツール」,「オプション」,「ブロックダイアグラム」で設定する。
(LabVIEW 7)この設定がデフォルトです。
3 ブロックダイアグラムの配線を行なっている途中で,ストラクチャ領域を縮小したとき,見えない領域にオブジェクトが隠れてしまう場合がある。
(LabVIEW 7)改善されており,このようなことはおこらない。ただし,配線は隠れてしまう。
4 ストラクチャの壁に張り付いて見えない配線を動かすには,ダブルクリックして配線全体を選択してから動かす。
5 配線の仮止め
配線時に,配線相手が画面からはみ出している場合,そのまま配線しようとすると画面スクロールに時間がかかる。一旦途中で仮止めして,ダイアグラムを相手の端子が見えるまでスクロールしてから,相手の端子側から逆に仮止めの位置に配線することができる。
配線ツール配線ツールの図で,1つ前に前に仮止めした点を取り消すには「Ctrl+左クリック」する。
6 配線の90度曲がりを,
   [端子]━┓方向と
    ┗━━ 方向で切換えるには,スペース・キーを押す。
7 配線途中でのキャンセルは,ESCキーを押すか,右クリックする。
8 既存の配線の道筋を変更するには,その配線を削除しないで,その配線の途中から新たに希望の道筋の配線を行う。重複する古い部分は自動的に削除される。
9 Shift+Tabを押すと,自動ツール選択モードをON/OFFできる。自動ツール選択モードでは位置決めカーソル(+形)の右上に °が付き,位置決めカーソルと配線カーソルが自動的に切替る。
(LabVIEW 7) デフォルトで「自動ツール選択がONにロックされているので,「ツール(T)」「オプション(O)...」「7.0での新しい点と変更点」「新規その他のオプション」の「「自動ツール選択をONにロック」の「v」をはずすこと。

目次に戻る


制御器パレット

一般

1 表示器 フロントパネルに表示器を配置する場合,まず制御器のパネルから選びだし,配置後,オブジェクトを右クリックして「表示器に変える」こと。
表示器/制御器の見かけをカスタマイズできる。「右クリック」,「上級」,「カスタマイズ」
ブール表示器のTrue/False時の状態表示テキストは,ブールテキストである。
2 数値
表示器の
データ範囲
と精度
ノブなどの数値制御器オブジェクトを右クリックして,「データ範囲...」ダイアログを出し,「最小限」と「最大限」を設定し,数値が範囲外の場合「強制」に設定すると,ノブに表示されている目盛りに許容範囲外の領域があると,その領域は操作できない。当然だけれども,あとで目盛り範囲を拡大した場合に,操作できない範囲が出るのでとまどう。
(LabVIEW7.1)数値表示器はデフォルトで6桁を表示し,それより大きい数字は自動的に指数表示に変わる。ただし,表示器の幅が狭いと指数部分が見えない場合があり,小さな小数値と誤解する場合があるので注意。表示桁数は,「形式と精度...」の有効数字の指定でも変わる。有効数字の指定は,LabVIEWの計算精度には影響せず,表示のみに関係する。
3 スイッチの
機械的動作
(ラッチ)
押しボタン制御器を右クリックして現れる「機械的動作」のラッチ指定は,
(1)押されたらラッチ:押すとデータがラッチされ,そのデータが読み取られるとリセットされる。結果として,押した一瞬間(1〜8ms程度)だけTrueになるパルスを発生する。
(2)放されたらラッチ:押して離すとデータがラッチされ,そのデータが読み取られるとリセットされる。結果として,放した後に,一瞬間(1〜8ms程度)だけTrueパルスを発生する。
(3)放されるまでラッチ:押している間と,離した後,読み取られるまでTrueパルスを発生する。
4 制御器の
Disable
プロパティ
制御器のDisableプロパティは制御器の操作が可能かどうかを示す。設定は,
 0:制御器を表示し操作可能
 1:制御器を表示するが操作不能
 2:制御器をグレー表示とし操作不能
 ただし,VI停止中は常に操作可能で,VIを走らせると停止時の状態が反映される。
5 オブジェクト
のコピー
フロントパネルのオブジェクトのコピーは,
(1)Ctrlキーを押しながら,マウスの左ボタンを押してオブジェクトを選択し,
(2)そのまま左ボタンを押しつづけたまま目的の位置にドラッグして
(3)左ボタンを離す。マウスのクリック・ロックを使っている場合は,マウスの左ボタンを離してもボタンを押しつづけた状態がロックされてオブジェクトの枠だけが移動する状態になるので,枠を目的の場所に位置決めして,左ボタンを再度クリックする。
6 オブジェクト
の色
オブジェクトのテキスト色はテキスト自体の色である。テキスト背景色とはテキスト描画部分が占める部分の色であり,オブジェクトの大きさとは一致しない。
7 ファイルパス
制御器
ファイルパス制御器の右にある参照ボタンを右クリックして,「参照オプション...」をクリックして現れる参照オプションダイアログの,選択モードを「既存ディレクトリ」にすると,参照ボタンを押して,ディレクトリを「選択」できるようになる。
8 クラスタ 配列が同じタイプの要素をまとめたものであるのに対して,クラスタはタイプの異なる要素を1つにまとめたものです(同じタイプの要素の場合もあります)。
クラスタ要素の順位を変更するには,
(1)クラスタオブジェクトの境界で右クリックし,「クラスタ内の制御器の並べ替え...」をクリックする。
(2)要素の現在の順位が黒地白抜き文字で示されます。
(3)「セットするためにクリック」部分をクリックします(不要な場合もあります)。これにより,右側の順位指定入力部がアクティブになります。
(4)順位指定入力部に,順位を変更したい要素の,変更後の順位希望値をいれます。
(5)順位カーソルを,順位を変更したい要素の順位表示部分にもっていき,クリックすると順位が変更されます。
9 リストボックス
リストボックスは,スクロールバー付の文字列表示器/制御器と外見はそっくりですが,文字列の入力や表示が目的ではなく,
(1)事前にリストボックスに入力されている文字列リスト行から,ユーザーがクリック選択した文字列行の行番号値を入力したり,
(2)行番号値を指定することにより,事前に入力されている文字列リストの対応する行を選択状態に表示する。
そのため,データタイプはI32となっています。
ただし,リストボックスの選択肢として表示する文字列群は,プロパティのItemNamesと文字列配列を用いてプログラムから行なうこともできます。
 複数列リストボックスも,表示が表形式になっていますが,選択/指定できるのは行番号の値のみで,データタイプはI32となっています。
10 リングとEnum リング表示器/制御器の入力/出力は選択番号を示すU16値です。
Enum表示器/制御器の入力/出力も選択番号を示すU16ですが,それだけではなく,選択肢リスト文字列の情報も持っているようです。そのため,Enumと数値表示器/制御器を配線すると,強制型変換が行なわれる。また,Caseストラクチャの選択子に配線すると,ケース名が選択肢文字列になります。
フロントパネルのオブジェクトが,リング表示器/制御器なのかEnum表示器/制御器なのかは,ダイアグラムの端子アイコンを見ないと区別できない。
11 Refnum (1)サブVIに引数をRefnum渡しにすると,渡されたVI内部で,そのRefnumで指定されたオブジェクトに対する処理は,プロパティノードやインボークノードで行うことになる。
(2)フロントパネルにRefnumを置くには,制御器パレットの「Refnum」から行う。
(3)表示器のRefnumは,制御器Refnumを置いてから,右クリックし,表示器に変更する。さらに,
    「VIサーバクラスを選択」,「Generic」,「GObject」,「制御器」,「文字列」とする。
12 ダイアログ
制御器
LabVIEWのVIを複数のプラットフォーム(Windows, Mac, Unix)で実行する場合に関係します。普通の制御器はLabVIEWの各Version固有の色彩や外観をしており,プラットフォームに依存しませんが,ダイアログ制御器の色と外観は,各プラットフォームの標準ダイアログボックスに見えるように変化します。
13 制御器の
パレット内
位置検索
制御器名は,ぼんやりとわかっているが,その正確な制御器名や機能を知りたいときにはLabVIEW Helpの「検索(S)」で調べられます。あいまい名の制御器がパレット内のどこにあるのかわからない時に,それを調べるには,
フロントパネル上部の「ウインドウ(W)」「制御器パレットを表示」で制御器パレットを出し,パレット上部にある虫眼鏡アイコンをクリックし,検索行に制御器名を入力すると,下に候補が現れるので,それをダブルクリックする。

目次に戻る

カスタム制御器/Type Def/厳密Type Def

カスタム
制御器
カスタム制御器では,コピーして使われているVIと,カスタム制御器が保存されているファイルとのリンクは無く,カスタム制御器側を編集して変更しても,既に使われているVIには影響しない。
アナログ
カスタム
制御器の作成
図形などのオブジェクトを1次元/2次元で動かすために使える。
1次元動作はスライダー制御器をカスタム化して,「スライドまたは針」の部分に望みの図形をインポートして取り替える。
(1)カスタム化するスライダー制御器を制御器の編集画面にコピーする。旧バージョンの「シンプル水平スライド」がよい。
(2)ハウジング部分を位置決めツール位置決めツールの図でドラッグして,動かしたい直線範囲の大きさに制御器の大きさを変更する。
(3)編集モードで,ハウジングやUP/DOWNボタンなど元の制御器の表示したくない部分の色を透明にする。軸や名前ラベル,デジタル表示などはそのままでよい。
(4)編集モードをカスタマイズ・モードに変えて,消せない部品の大きさを小さくするか,制御器の中央に集める。
(5)メニューバーの「編集(E)」,「ファイルから画像をインポート(I)」で取り替えたい画像をクリップボードにコピーする。
 LabVIEW 7の場合は,GIFフォーマットが読めるので,画像は不必要な周辺を透明にした透明GIFフォーマットのものが望ましい。透明GIFを使うと,固定背景に別の図を用いた時に背景がちゃんと表示されるが,透明でないと四角の画像領域がマスクされて背景が見えない。
(6)位置決めツールでスライダーの「針」を右クリックして,
   画像をインポート:元の画像ファイルの大きさのままインポートするので,普通はこれを選ぶ。
   同サイズでインポート:元の制御器部品の大きさに合わせて寸法変更する。LabVIEWの日本語では
                 同次元でインポートとなっており,意味がわからなかったが,英文資料によると
                 Same Sizeとなっており,誤訳ではないかと思います。
   復元:フロントパネルにすでにある制御器をカスタマイズするために別ウィンドウでの作業中に,
       編集で変更した部品の外観を,元のフロントパネルにある制御器の部品外観に戻す。
   元のサイズ:インポート後に寸法変更した画像を,元の画像ファイルのサイズに戻す。
   独自のサイズ:???意味がわかりません。
(7)作成したカスタム制御器をVIで使う時には,ラベルやデジタル表示を消して使う。
(8)メーターなどの回転型計器の針を別の画像で置き換えても画像は回転せず,円弧状に移動する。
(9)2次元で動作させるには,上記のようにカスタム化したスライダー制御器をフロントパネルに置き,ブロックダイアグラムにこのカスタム制御器のプロパティノードを作成して,垂直方向の動作データでPosition Topプロパティを書き換える。
画像リング
カスタム
制御器
画像リングを使ったカスタム制御器からの部品コピー方法は,
(1)カスタム制御器をカスタマイズモードで部品にばらす。
(2)リングピクチャを右クリックして,コピーしたい画像項目を選択する。
(3)リングピクチャを右クリックして,クリップボードにコピーする。
(4)新しい画像リングにコピーする。
Type Def Type Defとは,カスタム制御器の一種で,事前に形式を設定された配列やクラスタの雛形であり,共通の形式を複数のVIで使用する場合などに便利なものである。
Type Defとは,コピーして使われているVIとType Defとして保存されているファイルとのリンクを保ったカスタム制御器をいう。Type Defを編集してData Typeを変更すると,コピーして使われている全てのVIでのData Typeが変更される。
Type Defでは,Masterが保存されているファイルとのリンク情報をもっているため,Data Typeが同じでも,単なる表示器とは異なるので,Type Def制御器と単なる表示器を配線すると,表示器左端に型変更の黒半円(強制dot)が現れる。
厳密Type Def 厳密Type Defでは,上記のType Defの性質に加えて,装飾的な変更もVI側に反映される。
Typedef
の作成
Typedefの作成は,「新規VI」で現れる名称未設定のウィンドウの「ファイル(F)」,「新規(N)...」として現れるウィンドウで「制御器テンプレート」
Typedef
の使用
(1)Typedefを使うには,制御器パレットから配列を選んで,フロントパネルに置き,その内部をクリックしてから,制御器パレットの「制御器を選択」で現れるダイアログで,希望するTypedefを選択する。
(2)フロントパネルにカーソルを持っていくと,手形カーソルで移動できるTypedefが破線枠で現れるので,配列内部に手形カーソルを持っていきクリックする。
(3)出来上がった配列の要素は空で,薄くグレーになっているので,内部に数値や文字を設定して,使えるようにする。

目次に戻る

グラフとチャート

チャートと
グラフ
の識別
フロントパネルで波形チャートと波形グラフを識別するには,表示器上で右クリックして,「データ操作」とした時,選択肢の最下段に「チャートをクリア」が現れるものは波形チャート表示器であり,「グラフをクリア」が現れるものが波形グラフ表示器です。
表記法 フロントパネルに置いたチャートやグラフの表記法とプロット数は,そのままではDBLの1プロットとなっている。この表記法やプロット数を変更するには,ブロックダイアグラム上に自分の希望するプロット数に対応した行数をもつ2次元で希望する表記法の配列定数をいったん作成し,それをチャートやグラフ端子に配線する。
チャート (1)一度に1つのデータ点を2次元プロットする。内部のFIFOを使うので,高速である。
 データ点が追加されるとそのデータについてのみ描画する。
(2)ストリップ・チャート:波形が画面をオート・スクロールして表示される。(ただしスクロールするので表示は低速)
(3)スコープ・チャート :画面の左端を開始点として右端まで表示され,一旦画面がクリアされた後,
        左端から再度繰り返し表示される。(ストリップ・チャートより高速表示)
(4)スイープ・チャート :画面の左端を開始点として右端まで表示され,画面の軌跡を残したまま,
        左端から書き換えモードで表示される。(ストリップ・チャートより高速表示)
(5)上記のチャート種類の切換えは,フロント・パネルでチャートを右クリックし「上級」「更新モード」
(6)波形チャートは横軸が,データのサンプル番号であり必ずしも時間とは一致しない。
 たとえばランダム時間でサンプルされたものを波形チャートで表示すると,横軸は均等になる。
  ただし,横軸の数値はΔ1には限らず,Δ0.25なども設定できる。
(7)横軸ΔX(標準で1)の変更は,波形チャートを右クリックし,「X軸」「形式」
グラフ (1)波形グラフはデータをためておいて,一気に2次元/3次元表示する。そのため,オーバーヘッドがありチャートより遅い。データが追加されると全データについて再描画する。
(2)「波形グラフ」の横軸は必ず時間軸である。
(3)波形グラフにはカーソルを追加できる。
(4)入力と描画結果
 (4-1)1次元配列を接続すると,デフォルトのX0, ΔXを用いて描画する。
 (4-2)Xo,ΔX,1次元Y配列をバンドルしてクラスタにして接続すると,指定したX0,ΔXを用いて描画する。
 (4-3)Xo,ΔX,N次元Y配列をバンドルしてクラスタにして接続すると,指定したX0, ΔXを用いて複数グラフを表示する。Y配列の行データが1つのグラフ情報を表す。
XYグラフ XYグラフは,単にリサージュ描画などに使えるだけでなく,マルチプロットXYグラフでは,完全に独立した2つの(x, y)配列を同一画面に重ねて描くことができます。たとえば,サンプル周期の異なる時暦データ群を重ねて図示できます。
2 軸目盛り 軸目盛りの範囲を変えるには,オブジェクト操作ツール操作ツールの図で変えたい目盛り端の数値をダブルクリックしてから値を入力する。
軸目盛の間隔や値を変えたいときは,「オブジェクト操作ツール」でスケールの数値を右クリックして,「マーカー間隔」,「任意」に「v」を入れた後,既存のマーカーの目盛部分を適当にドラッグしてコピーし,その後,数値をダブルクリックして希望の値に修正する。
軸の両端に入れる数値の大小を逆にすれば,軸増分の方向を通常と逆,すなわち原点方向に増加するようにできる。もしくは,プロパティノードで,XScale.Flipped/YScale.FlippedにTrueを書き込む。
ルースフィットに「v」をつけると,軸目盛右端が最終プロットデータと一致せずに,等間隔の目盛値となる。ルースフィットの「v」をはずすと,軸目盛右端が最終プロットデータ値となる。
3 複数
スケール
すべてのチャートおよびグラフでは,複数のxおよびyスケールがサポートされている。
縦軸/横軸ラベルにカーソルを合わせて,右クリックすると「スケール複製」,「スケール削除」,「サイドのスワップ」などが可能になる。
プロット凡例内のプロットを右クリックしてプロットを新しいスケールに関連付ける。
 (Cf. LabVIEWヘルプ→検索→探したい語句に「スケール複製」→グラフまたは...)
4 第1象限
以外の
グラフ
デフォルトである第1象限以外のグラフを描くときには,
(1)第2象限のグラフならば,Y軸ラベルにカーソルを合わせて,右クリックし,「サイドのスワップ」
(2)第3象限のグラフならば,上記の後,X軸ラベルにカーソルを合わせて,右クリックし,「サイドのスワップ」
(3)第4象限のグラフならば,X軸ラベルにカーソルを合わせて,右クリックし,「サイドのスワップ」
5 グラフ
パレット
グラフパレットの図
ズームのやり方:ズームボタンを押し,X軸ズームならば,拡大したい時間領域が含まれるように四角形の領域をクリック,ドラッグして指定する。Y軸ズーム,領域ズームも同様。
カーソル移動ツール:カーソルを標準モードに戻す?
6 プロット凡例 プロット凡例の図
描かれるグラフの線太さ,色,ラインスタイル,マーカー等を変更するには,操作ツール操作ツールの図で右上の「プロット凡例」のプロット線をクリックする。
凡例表示領域の大きさ変更で,位置決めツール位置決めツールの図で左側をドラッグすると文字領域が増え,右側にドラッグすると凡例プロット線が伸びる。
(LabVIEW 7)文字領域に関しては,自動的にテキストの大きさに合わせられる。
7 スケール
凡例
スケール凡例の図
オートスケールボタン(中央ボタン):ズームなどで表示を変更した後に,表示をオートスケールに戻す
複数プロットの時,スケール凡例領域を位置決めツール位置決めツールの図で下にドラッグして,スケール凡例の数を増やしたとき,新しい凡例にラベル文字を入れるには,ラベルのグレーの領域をクリックして入力する。
8 カーソル
凡例
(グラフ)
カーソル凡例の図
グラフにはカーソルを表示できる。チャートにはカーソルがなく,かわりにスクロールバーがある。
カーソル凡例を表示後,カーソルを有効にするには,
(1)凡例の左端のグレー領域にカーソル名を入力する。
(2)右に3個並んだボタン中央の「x」ボタン(Formatting Ring)を押し,「カーソルスタイル」を選択する。
(3)適当にカーソルの「色」を変える。
(4)凡例の右端の鍵アイコンボタン(Lock Ring)で,カーソルとプロットの交点ポイント値を読み取るための設定ができる。「解放」にすると交点ポイントと無関係になり,鍵アイコンが開いた状態になる。「ポイントにスナップ」すると,カーソルを動かした時,Y値はプロットに追従する。
(5)カーソルはマウスのドラッグで移動できるが,凡例の右の3個のボタンの左ボタン(Cursor Movement Selector)を押して,緑マーカーをONにすると,凡例右端のカーソル移動用4ボタン(カーソルムーバ)でもカーソルを移動させられる。
異なる目盛りのY軸を2つ表示した場合で,「ポイントにスナップ」/「ロック」しないで開放したとき,カーソルのY座標をどちらの目盛りにするかを選択するには,各目盛りに関連ずけされたプロットに一旦「スナップ」させてから再度開放する。
カーソルを消す/出すには,「カーソル凡例」を出し,消したいカーソル行で右クリックし,「データ操作」「要素を削除」とし,その後,「カーソル凡例」を消す。
(1)カーソルムーバーで動かすときに,カーソルが「解放」に設定されていると,細かく動かすことができない。
(2)もとの各プロットデータに応じた操作分解能にするには,カーソルを「ポイントにスナップ」もしくは「ポイントにロック」に設定すること。
(3)ただし,上記(2)の場合,カーソル凡例のx座標に直接に値を代入してカーソルを移動させても,ぴったりその位置には移動しないことがある。(???)
9 プロパティ
ノード
グラフ類の凡例プロパティの設定は,最初にLegend Visibleに設定してから,他のプロパティを設定すること。そうしないと正しく反映されないことがある。
プロパティノードでX軸の範囲を設定しても,フロントパネルでの設定でX軸がオートスケールになっていると指定した範囲にならない。
プロパティノードでカーソル位置を設定する場合,カーソルの「ポイントにスナップ」や「ポイントにロック」の指定をやめ,「開放」にすること。
プロパティノードでカーソルを「ポイントにスナップ」すると,プロットデータの最初の点にスナップされる。
10 行/列と
プロットの対応
複数グラフ/複数チャートでは,通常,配列の特定の行データが特定のプロットを表すが,複数チャートでは,パネルオブジェクト上での右クリックしたとき,Defaultで「配列を転置」にチェックがつけられているため,逆になるので注意すること。
11 プロットの
重なり
複数プロットの重なりで上下関係は,プロット番号の若いものが上に書かれる。
12 XやY軸
形式

(LabVIEW 6.1
のみ)
グリッドオプションの図
グリッドオプションの左端をクリックして,3つのグリッド表示形式を選択できる。
グリッドオプションの真中が主目盛線の色を示し,右が補助目盛りの色を示す。Tと表示された場合はグリッドを表示しない。
時間表示のX軸 (設定にくせがあります)
X軸を00:00:00から始まる時間表示にするため,X軸形式ダイアログで,形式を「時間と日付」,「カスタム時間形式の(24時間, HH:MM:SS)」,「カスタム日付形式」に設定すると,スケール係数のXoは09:00:00.00の01/01/1904になる。この際,必ず「カスタム日付形式」を選ぶこと。
(1)スケール係数のXoの01/01/1904のみを現在の年月日に修正してから,時間09を00に変更してOKとする。
(2)チャートをクリアしないで,再度VIをRunしてチャートを描くと,前回終了した時刻から継続して描かれる。チャートをクリアすると開始時間がXo値に戻る。
(3)X軸の両端位置が必ずしもdXの倍数にはならないため,両端位置に表示される時間はdXの倍数にならず中途半端な時間になる。これは,X軸時間の少数以下の桁数を増やして,X軸スタイルを目盛り付にすればわかる。

プロパティノードでのプロパティ設定では,チャートをクリアしてから設定すること。
(1)X軸が1本の時にはActive X Scaleの指定は不要
(2)X Scale.Offsetは常に指定した値に正しく設定される。
(3)X Scale.Offset=0は,1904/1/1の09:00:00を意味するので,プロパティノードでこれを設定すると,時間が1904/1/1の09:00:00となる。
(4)X Scale.Offsetは,
 (4-1)この値がX Scale RangeのMinimum値にも設定される。
 (4-2)この値はX軸の左端に関係するが
 (4-3)時間の開始が0にはならない。
10進数のX軸
プロパティノードでのプロパティ設定では,チャートをクリアしてから設定すること。
(1)X軸が1本の時にはActive X Scaleの指定は不要
(2)X Scale.Offsetを設定すると,これがXo値となる。
 X Scale RangeのMinimum値やX Scale.Range:Start値を指定しない場合,デフォルト値としてXoが使われる。
(3)X Scale.Multiplierを設定すると,これがdX値となる。
(4)X Scale.Range:Minimumは,X軸左端の値である。
 X Scale.Range:Start値を指定しない場合,デフォルト値としてX Scale.Range:Minimumが使われる。
(5)X Scale.Range:Maximumは,X軸右端の値であり,チャート記録紙の長さに無関係に設定できる。
(6)X Scale.Range:Incrementは,隣り合うX軸主Grid線の増分である。
(7)X Scale.Range:Minor Incrementは,副Grid線の増分であり,Increment値の1/N(整数)となる。
(8)X Scale.Range:Startは,左端から最初の主X軸Grid線の位置であるが,設定にくせがあり,
  (8-1)OffsetやMultiplierの前に指定しても無視される。
  (8-2)Start値を指定すると,
   (8-2-1)(Start-Increment)≦0の場合は,Start値が最初に書かれるX軸主Grid線となる。
   (8-2-2)(Start-Increment)>0の場合は,(Start-Increment)値が最初に書かれるX軸主Grid線となる。
13 チャート長さ (1)チャート記録長さとは,X軸のスクロールバーでスクロールできるデータ点数のことである。
(2)チャート記録長さを大きくしてもX軸のスケール範囲は変化しない。逆にチャート長さを現在のスケール範囲より短くするとスケール範囲はチャート長さになる。
(3)データプロット中のスクロール速度を変えたい場合は,X軸のスケール範囲を変える。そのためには,チャート記録長さは十分とっておいて,プログラムの先頭で1度だけ,プロパティノードでXScale.Maximumを希望の長さに設定すればよい。
(参考VI)
14 グリッド
消去
グリッド線を消すには,スケール凡例のスケール形式ボタンX軸スケール形式ボタンの図Y軸スケール形式ボタンの図をクリックして,グリッドカラーを指定し,主目盛線/補助目盛線かを左下のカラーウインドウを見ながら,スペースバーで選び,グリッドカラーに透明を使う。
15 チャートや
グラフの
消去
チャートやグラフは右クリックして,「データ操作」「チャート/グラフをクリア」で消去できる。
「LabVIEW Help」,「検索」,「chart」,2行目の「chart」,「チャートサンプル」or「グラフサンプル」
チャートをプログラムで消去するには,チャートのプロパティノードのHistoryに空データを書き込む。ただし,History書き込み完了後にチャートへの表示データ書込みが開始されるようにシーケンスを組まないとX軸の時間がずれることがある。
グラフをプログラムで消去するには,グラフのローカル変数に空データを書き込む。
16 領域変更 グラフの表示器外形とは別に,内部の描画領域の4隅をドラッグして大きさを変更できる。

目次に戻る


関数パレット

1 未配線
入力
配列関連の関数などで,端子の数値入力が配線されていない場合,HELPでの関数の説明にDefault指定がなければ,0入力とみなされる。
2 ストラクチャ
全般
繰り返しループの入力/出力変数を配列にしないためには,トンネルを右クリックして,指標付け不使用にする。
ストラクチャの境界にOne Button Dialog関数を配線すると,ダイアログ入力が入ってから,ストラクチャの処理を開始する。これはOne Button Dialog関数に限定されたものではなく,任意の信号をストラクチャ境界に配線すると,その信号が得られるまでストラクチャ処理の開始を待たせられる。
ケース
ストラクチャ
デフォルトのケースストラクチャは,True/Falseケースですが,
 (1)数値ケースに変えるには,セレクタ端子に数値オブジェクトを接続する。
 (2)文字列ケースに変えるには,セレクタ端子に文字列オブジェクトを接続する。
数値ケースでは,範囲を指定できる。たとえば,10以下ならば「..10」,11〜14ならば「11..14」,15以上なら「15..」
ケースストラクチャのセレクタ端子セレクタ端子の図から,ケースセレクタ識別子セレクタ識別子の図に明示されていない値や文字列が入力された場合の処理ケースがデフォルトケースである。
ケース追加/複製(ケースストラクチャの境界で右クリックする)
 (1)あるケースを表示している状態で,「ケース複製」とすると,そのケースの後ろに複製される。
 (2)True/Falseケースで,「ケース複製」とすると,ケースセレクタが空白のケースとして複製されるが,このケースセレクタはTrueにもFalseにも直せないので,ケース複製する前に,不要な方のTrue/Falseケースを削除してからケース複製すると自動的にロジックケースとなる。
 (3)ケース境界で右クリックして,「ケースといっしょにダイアグラムを交換」とすると,ダイアグラムの中身が入れ替わる。
 (4)数値ケースNを表示している状態で,境界を右クリックして,「ケースにダイアグラムをシフト」としてケースMを指定すると,ケースN〜M間でダイアグラムの中身がシフトされる。表示されていたケースNの方向に残りのケースのダイアグラムがシフトされ,シフト後に空いたケースMにケースNのダイアグラムが移動する。
 (5)数値ケースで「ケース追加/複製」すると,最大値のケースが追加/複製されるが,ケース番号の順序がくるうので,境界で右クリックして「ケースの再配列...」で現れる「ケースの再調整」ダイアログで順序を整える。ただし,順序がくるっていてもVIの動作には影響しない。文字列ケースの場合で,ケース文字列が処理シーケンス順序を表す場合には,順序がくるっているとプログラムがわかりにくくなるので,再調整したほうがよい。
出力トンネルを右クリックして,「未配線の場合はデフォルトを使用」にした場合に設定される値は,LabVIEW 7の「オンラインヘルプレファレンス(V)...」のキーワードに「デフォルト値」を入れて,サブエントリとして「データタイプ」をクリックすると現れる「制御器および表示器のデータタイプ」の説明の右端のデフォルト値である。LabVIEW 6.1のHelpには明記されていない。
具体的には,数値は0,ブールはFALSE,文字列は空文字列,パスは空パス,タイムスタンプは日付と時間(ローカル)などが設定される。
Forループ (1)Forループの実行回数について
 (1-1)配列をForループ入力として自動指標付けすると,配列サイズが実行回数として使われるため,カウント端子Nを指定する必要がありません。
 (1-2)カウント端子Nの指定や配列自動指標付けなど,複数の実行回数候補があるときは,それらのうちの最小値が実際の実行回数になります。
(2)繰り返し端子 i は0から始まります。
イベント
ストラクチャ
(LabVIEW開発システムおよびプロフェッショナル開発システムのみ)
(1)Timeoutケース
 (1-1)ダイアグラムにイベントストラクチャを作ると,デフォルトでTimeoutケースがでてくるが,TimeoutケースはTimeout時の処理が必要な場合のみ使えばよく,そうでなければ編集して他のイベントケースに変更してよい。
 (1-2)Timeoutケースを復活させるには,イベント編集ダイアログで,「イベントケースを追加...」,イベントソースで<アプリケーション>,イベントで「タイムアウト」とする。
(2)イベント編集ダイアログを出すには,イベントストラクチャの境界で右クリックして現れるショートカットで「このケースで処理されるイベントを編集...」をクリックする。
(3)ダイアグラムで,制御器オブジェクトは,それに関するイベントを定義したケース中に入れる。
(4)イベントストラクチャを含むWhileループを終了させるためのブールボタンは,「値変更」イベントとしてイベントストラクチャの内部で処理すること。(参考VI)
(5)VIサーバ,グローバル変数,ローカル変数などを使用してフロントパネルオブジェクトをプログラム的に変更する場合,イベントは発生しない。
(6)スタティックイベント
 スタティックイベントのケース名の制御器や表示記名は," "で囲まれている。
(7)ダイナミックイベント(LabVIEW 7のみ)
 (7-1)ダイナミックイベントのケース名の制御器や表示記名は,< >で囲まれている。
 (7-2)ダイナミックイベント登録を取り消すには,Not a Refnum定数をイベント登録関数の入力につなぐ。
(8)ユーザーイベント(LabVIEW 7のみ)
 LabVIEW 6.1ではプログラムの演算処理でイベントを生成することはできないが,LabVIEW 7ではプログラム処理でイベントを発生できる。
3 シフトレジスタ 作成するには,ループの左右の境界線上で右クリックする。
左側に複数のシフトレジスタ要素(上側i),(下側i−1)...を出すには,そのシフトレジスタを右クリックして,要素を追加/削除
4 整数⇔文字 符号なし8bit整数をASCII文字に変換するには,
 (1)制御器パレットの「上級」「データ操作」のType Cast関数の「x入力」に符号なし8bit整数をつなぎ,「タイプ」に空文字列定数などの文字列型定数を接続する。
 (2)1入力のBuild Array関数で1要素配列に変換してから,Byte Array To String関数で文字に変換する。
5 単位系と
変換
(1)フロントパネルの制御器を右クリックして,「表示項目」「単位ラベル」とし,現れる黒い単位入力部分にftなどの単位を入れると,制御器出力はその単位付きの数値となる。ただし,Helpウィンドウの「ワイヤのデータタイプ」でみてみると,その単位系のデフォルト基本単位であると表示されるので,まぎらわしい。
 以後は,この単位ラベルを制御器に表示しないようにしても,数値にはその単位が付いている。
(2)単位の付いている数値をConvert Unit関数に配線すると,出力は,Convert Unit関数のラベルに記入された単位に変換された,単位の無い数値となる。
(3)単位の無い数値にConvert Unit関数で単位を付けると,変換もなにもなく単に,Convert Unit関数のラベルに記入された単位が付いた数値となるが,Helpウィンドウの「ワイヤのデータタイプ」には,その単位系のデフォルト基本単位であると表示されるので,まぎらわしい。
(4)単位付きの数値を,単位付きの表示器に表示すると,表示器の単位系に変換されて表示される。
(LabVIEW 6.1)Convert Unit関数のラベルに入れられる単位がわからない場合は,関数を右クリックして,「単位...」で現れる「互換性をもつ単位」ダイアログで,基本単位と互換単位をリストからクリックして選択する。接頭辞は直接「新しい単位」の部分にキー入力する。
(LabVIEW 7)関数を右クリックして「単位文字列を作成...」で現れる「単位文字列を作成」ダイアログで,「単位を追加」ボタンを押し,?が表示されたら単位リストから希望の単位をクリックして選択する。さらに接頭辞を付けるには接頭辞リストから希望の接頭辞をクリックする。
LabVIEWの三角関数はrad引数なので,フロントパネル表示に度数表示を行ないたい場合は,制御器/表示器にdeg単位付きのものを使い,Convert Unit関数でradに変換された単位無し数値を内部演算では使用する。こうすれば,MultiplyやDivide関数などを組み合わせて変換せずにすみます。
関係のあるサンプルVIを「制御器/関数のヒント」に示します。
6 文字列の
区切りコード
LabVIEWでは,文字列の区切りはLF(\n)のみです。これは通常,何の問題もありませんが,データ通信などでは注意する必要があります。Windows系の文字列をクリップボード経由でLabVIEWのダイアグラムにコピーすると,CR/LF(\r\n)の2バイト区切りが自動的にLF(\n)の1バイトに変換されます。文字列定数の上で右クリックし,「'\'コード表示」にするとそれを確認できます。このとき,LF(\n)の前にCR(\r)を追加し,「標準表示」に戻しても見かけ上は元の文字列と変わりがありませんが,文字列長さは異なりますし,データ通信ではCR/LF文字列が重要な区切りになっている場合がありますので,標準のLabVIEW文字列では正しく動作しない場合があります。
7 文字列の
正規表現
文字列関数のMatch Patternのヘルプの中の緑表示の「正規表現」や,「Match Pattern関数のための文字列の例」をクリックしてHelpを出すこと。
. はすべての文字をあらわすが,[ ]で囲んだ[.]は少数点を表す。
? は?の直前の表現の0または1インスタンスを表す。
+ はその前の最長のインスタンスと一致する。一致するために1つ以上のインスタンスが必要です。[0-9]+は1桁以上の数字です。
- は範囲を表すが,[-]はマイナスを意味する。
[ ]は選択範囲を示し,[ +-]はスペース,プラス記号,マイナス記号を示す。
[-][0-9]+ ならば,-123などを意味する。
[-]?[0-9]+ならば,-123や123などを意味する。
[~0-9]+ならば,数字以外の1文字以上を示す。

例1)[-]?[.]?[0-9]+ :文字列をスキャンして,-or小数点or 1桁以上の数字かを判別し,
 数値例)52 123.45 -1.7 -12.7 → 52 123 .45 -1 .7 -12 .7 に分ける。
 数値例)-12.7 → -みつけたから取出す。次の文字1は小数点ではないので,次の正規表現[0-9]+についてチェックし,12を取出す。その次は少数点で数字ではない。これより数字-12を切り出す。

例2)[0-9]+[.]?[0-9] :文字列をスキャンして,数字かを判別し,1桁以上の数字を組立てる。
 小数があれば小数点を付け,小数1桁の数値を組立てる。
 数値例)52 123.45 -1.7 -12.7 → 52 123.4 5 1.7 12.7

例3)[0-9]+[.]?[0-9]+ :文字列をスキャンして,数字かを判別し,1桁以上の数字を組立てる。
 小数があれば小数点を付け,小数以下の複数桁の数値を組立てる。
 数値例)52 123.45 -1.7 -12.7 → 52 123.45 1.7 12.7

例4)[-]?[0-9]+[.]?[0-9]+ :文字列をスキャンして,-or数字かを判別し,-があれば-をつけ,
 1桁以上の数字を組み立てる。小数があれば小数点を付け,小数以下複数桁の数値を組み立てる。
 数値例)52 123.45 -1.73 -12.7 → 52 123.45 -1.73 -12.7
?や*は,直前の検索表現が,文字列中にあっても無くてもOKで,あれば取出すという意味です。
例5)bd?c : bcやbdcを検索する。
正規表現に?や*があると,文字列の検索は必ずマッチするので「マッチからのオフセット」は-1にはなりません。
さらに検索を続けたいならば,?や*の後に別の正規表現が続かなければならない。
^ABC : ABCが文字列内のオフセット位置から始まる場合のみ,ABCと一致する。
ABC$ : ABCが文字列の最後に表示される場合のみ,ABCと一致する。
正規文字で,~ の入力方法は,英字入力モードで,Shiftキーを押しながら,^ キーを押す。
関係のあるサンプルVIを「制御器/関数のヒント」に示します。
8 配列 Build Array関数は,同じ次元の配列を連結する機能もしくは,n+1次元の配列の要素としてn次元の配列を入れる機能の2つがあり,右クリックして現れるショートカットから指定する。入力数を増減するにはオブジェクト境界の上/下をドラッグする。
要素数の異なる配列をBuild Arrayで高次元化すると,できあがった配列の要素数は,組み合わせた配列の中のもっとも大きい要素数になる。要素数の少なかった配列の残りの部分は0で埋められる。そのため,Buildしてしまった後では,元の有効な要素数を知ることはできない。
このような場合に,配列のクラスターにすれば個々の配列の要素数を保ったまま,まとめられるが,構造が複雑になる。(参考VI)
配列を初期化して空配列にするには,
(1)オフラインでは,指標位置で「右クリック」「データ操作」「配列を空にする」
(2)プログラム中では,配列のプロパティノードをつくり,Valueプロパティに空配列定数を書き込む。
9 クラスタ 配列が同じタイプの要素をまとめたものであるのに対して,クラスタはタイプの異なる要素を1つにまとめたものです(同じタイプの要素の場合もあります)。
クラスタの個々の要素はUnbundle関数や,Unbundle by Name関数で取り出せます。名前の無い要素を取り出すときにはUnbundle関数を用いますが,この際にクラスタ要素の順位(順番)がわからないと取り出せません。
クラスタ定数の要素の順位を変更するには,
(1)クラスタ定数の境界で右クリックし,「クラスタ内の制御器の並べ替え...」をクリックする。
(2)要素の現在の順位が黒地白抜き文字で示されます。
(3)「セットするためにクリック」部分をクリックします(不要な場合もあります)。これにより,右側の順位指定入力部がアクティブになります。
(4)順位指定入力部に,順位を変更したい要素の,変更後の順位希望値をいれます。
(5)順位カーソルを,順位を変更したい要素の順位表示部分にもっていき,クリックすると順位が変更されます。
10 比較 配列に対して,≠=の比較を行う場合,比較関数を右クリックして
 「要素の比較」とすれば,出力は各要素ごとの比較結果の配列となり,
 「基礎群の比較」とすれば,出力は配列の要素数や個々の値など,全部をまとめて比較した1つのブール値となる。
11 入力待ち 人間の入力待ちなど,応答性が低くてもよい待ち処理ループにタイマー待ち時間を設定しないと,他の処理が遅れるため,レスポンスが悪くなる。
12 Wait関数
関連
(1)Wait関数は単に現在のミリ秒タイマに待ち時間を足した時間まで待つ。処理ブロック内部で,Wait関数とWait以外の処理にデータフローの関係がない場合,並行して処理されるので,どちらか長いほうがそのブロックの処理時間となる。繰返し処理に用いた場合,Wait関数で指定した時間の方が長い場合には,そのブロックはほぼWait時間周期で繰返す。
 ただ,時刻に同期しているわけではないので,タイマで制御されている別の並行処理ブロックとの同期はずれていく可能性がある。
(2)Wait関数の引数に0を使うのは,最速で動作はしてほしいが,他の並行処理コードが走る切替えタイミングを与えるためである。
 Wait 0が無いと,他の並行処理への切替えが遅れる。
(3)Wait Until Next ms Multiple関数は,初回はミリ秒タイマが待ち時間の倍数の時刻になるまで待ち,次回以後は待ち時間の周期時刻まで待つ。そのため,最初の1回は待ち時間が短いことがある。それ以後の処理終了時間はほぼ時刻に同期する。そのため,複数の処理ブロック間の同期をとることができる。
(4)どちらのWait関数も,待ち時間精度が乱れる場合がある。(参考VI)
(5)関数の出力は通常使わないが,待ち時間後のミリ秒タイマ値が出力される。
13 SMTP E-mail
(LabVIEW 7以降)
最近のメールサーバーはユーザーの認証を行うものが多いので,プロバイダのネットワーク外からメール送信する場合にはメールサーバーがSMTP応答を拒否することがあります。これを避けるには,メール送信前に一度,ダミーでメールの受信操作を行ってから送信してください。
14 外部コード
呼び出し
(1)ライブラリ関数呼び出しノード(Call Library Function Node)は,既存の共有ライブラリ(dll)を呼び出す場合に適しています。ただし,LabVIEWとのデータのやり取り方法には,「数値」「配列」「文字列」...などいくつかに制限されています。
(2)Code Interface Node(CIN)は,C言語で書かれたコードを呼び出す一般的な方法で,LabVIEWが持つ任意のデータ構造でやり取りできます。クラスタなど,LabVIEWでのデータ構造のまま,C言語とやり取りしたい場合などに適しており,フォーマット変換が不要なので効率がよい方法です。
(3)多くの場合,ライブラリ関数呼び出しノード(Call Library Function Node)のほうがCode Interface Nodeを使うより簡単です。
15 バリアント
関連
バリアントデータとは,本体データそのものと,そのデータに関係した付属的な情報(Attribute)をまとめたデータ形式です。たとえば,時暦データ本体に対して,採取した日時,採取条件などをくっつけて1つのバリアントデータにすることができます。
このデータ形式は通信などに便利なもので,複数個のバリアントデータを送った時,そのいくつかがパケットロスなどでなくなっても,各バリアントデータそのものの整合性はとれています。もし,時暦データと採取日時,採取条件などを別々に送信して,どれかのデータがなくなってしまうと,互いの関係がわからなくなってしまいます。
ただし,バリアントデータの特徴は,複数のデータをまとめて送れるということであり,どのデータが本体であるとか属性であるとかは意味がない場合があります。Set Variant Attribute関数を使う場合,たとえば,周波数と振幅,DCオフセット,波形の形などを指定する制御器のデータを1つのバリアントデータにまとめて,相手先のコンピュータに送ったりできますが,これらの制御器データのうちどれを本体にして,どれを属性にするかは任意にプログラムできます。
16 Type Cast 入力は,数値,ブール,文字列,1次元配列です。パスや2次元以上の配列,クラスタ,クラスタの1次元配列などは入力できない。
17 グローバル
定義
Global定義を使うには,関数パレットの「VIを選択...」で現れるダイアログでGlobal定義を選択する。
18 関数の
パレット内
位置検索
関数名は,ぼんやりとわかっているが,その正確な関数名や機能を知りたいときにはLabVIEW Helpの「検索(S)」で調べられます。あいまい名の関数がパレット内のどこにあるのかわからない時に,それを調べるには,
ダイアグラム上部の「ウインドウ(W)」「関数パレットを表示」で関数パレットを出し,パレット上部にある虫眼鏡アイコンをクリックし,検索行に関数名を入力すると,下に候補が現れるので,それをダブルクリックする。この方法では,複数のカテゴリに入っている関数(例:プロパティノード)は,特定の場所(例:Image Acquisition)のみで見つけられますが,別に不具合はないと思います。
(LabVIEW 7)ではすべてのカテゴリから見つけられます)。

目次に戻る


ファイル入出力

ファイルI/O機能 VI名称 機能説明 Sub VI
テキストファイル(.txt/.csv)
への
一括書込み
文字列
書込み
Write Characters To File.vi (1)ファイルパスで指定された文字列ファイルを開くか,無ければ新規に作成します。
(2)文字列をファイルに書込んだり,既存ファイルと置換したり,既存ファイルに追加します。
(3)書込み後,ファイルを閉じます。
・Open/Create/Replace File.vi
・Write File+ (string).vi
・Close File+.vi
・General Error Handler.vi
数値
書込み
Write To Spreadsheet File.vi (1)ファイルパスで指定された数値文字列ファイルを開くか,無ければ新規に作成します。
(2)単精度(SGL)数値の2次元または1次元配列を,指定形式の数値文字列に変換し,ファイルに書込んだり,既存ファイルと置換したり,既存ファイルに追加します。
(3)書込み後,ファイルを閉じます。
各数値の区切りはTab(.txt)やカンマ(.csv)を指定します。オプションでデータを転置できます。
・Open/Create/Replace File.vi
・Write File+ (string).vi
・Close File+.vi
・General Error Handler.vi
テキストファイル(.txt/.csv)
からの
一括読取り
文字列
読取り
Read Characters From File.vi (1)ファイルパスで指定された文字列ファイルを開きます。
(2)指定した文字オフセット位置から読取りを開始して,指定の文字数分を読取ります。
(3)読取り後,ファイルを閉じます。
・Open File+.vi
・Read File+ (string).vi
・Close File+.vi
・General Error Handler.vi
Read Lines From File.vi (1)ファイルパスで指定された文字列ファイルを開きます。
(2)指定した文字オフセット位置から読取りを開始して,指定の行数分を読取ります。
(3)読取り後,ファイルを閉じます。
・Open File+.vi
・Read File+ (string).vi
・Close File+.vi
・General Error Handler.vi
数値
読取り
Read From Spreadsheet File.vi (1)ファイルパスで指定された数値文字列ファイルを開きます。
(2)指定した文字オフセット位置から読取りを開始して,指定の行数分を読取ります。
(3)そのデータを指定形式の単精度(SGL)もしくは,整数の2次元配列に変換します。
(4)読取り後,ファイルを閉じます。
元の数値文字列ファイルが1次元配列の場合,2次元配列の最初の行として出力される。各数値の区切りは,Tab(.txt)やカンマ(.csv)を指定します。オプションで配列を転置できます。
・Read Lines From File.vi
バイナリファイルへの
一括書込み
数値
書込み
Write To I16 File.vi (1)ファイルパスで指定されたバイナリファイルを開くか,無ければ新規に作成します。
(2)符号付きワード整数(I16)の2次元または1次元配列を,バイナリー形式でファイルに書込んだり,既存ファイルと置換したり,既存ファイルに追加します。書込まれたデータは1次元形式になり,元の次元数の情報は失われる。
(3)書込み後,ファイルを閉じます。
・Open/Create/Replace File.vi
・Write File+ [I16].vi
・Close File+.vi
・General Error Handler.vi
Write To SGL File.vi (1)ファイルパスで指定されたバイナリファイルを開くか,無ければ新規に作成します。
(2)単精度数値(SGL)の2次元または1次元配列を,バイナリー形式でファイルに書込んだり,既存ファイルと置換したり,既存ファイルに追加します。書込まれたデータは1次元形式になり,元の次元数の情報は失われる。
(3)書込み後,ファイルを閉じます。
・Open/Create/Replace File.vi
・Write File+ [SGL].vi
・Close File+.vi
・General Error Handler.vi
バイナリファイルからの
一括読取り
数値
読取り
Read From I16 File.vi (1)ファイルパスで指定されたバイナリーファイルを開きます。
(2)指定したバイトオフセット位置から読取りを開始して,
(3)2次元列数/1次元カウント,2次元行数の指定にしたがって,符号付きワード整数(I16)の2次元または1次元配列のデータに変換します。
(4)読取り後,ファイルを閉じます。
・Open File+.vi
・Read File+ [I16].vi
・Close File+.vi
・General Error Handler.vi
Read From SGL File.vi (1)ファイルパスで指定されたバイナリーファイルを開きます。
(2)指定したバイトオフセット位置から読取りを開始して,
(3)2次元列数/1次元カウント,2次元行数の指定にしたがって,単精度数値(SGL)の2次元または1次元配列のデータに変換します。
(4)読取り後,ファイルを閉じます。
・Open File+.vi
・Read File+ [SGL].vi
・Close File+.vi
・General Error Handler.vi
テキストファイルへの
逐次書込み
文字列
書込み
Write File+ (string).vi
(*2)
(1)すでにOpen/Createされ,そのrefnumで指定された文字列ファイルに対して,
(2)位置モードと位置オフセットで指定した位置から文字列を書込みます。
(3)書込み後,ファイルマーク位置を更新します。
・Write File
バイナリファイルへの
逐次書込み
数値
[I16]
書込み
Write File+ [I16].vi
(*2)
(1)事前にOpen/Createされ,そのrefnumで指定されたバイナリファイルに対して,
(2)位置モードと位置オフセットで指定した位置から符号付きワード整数(I16)の2次元または1次元配列を書込みます。書込まれたデータは1次元形式になり,元の次元数の情報は失われる。
(3)書込み後,ファイルマーク位置を更新します。
・Write File
バイナリファイルへの
逐次書込み
数値
[SGL]
書込み
Write File+ [SGL].vi
(*2)
(1)事前にOpen/Createされ,そのrefnumで指定されたバイナリファイルに対して,
(2)位置モードと位置オフセットで指定した位置から単精度数値(SGL)の2次元または1次元配列のデータを書込みます。書込まれたデータは1次元形式になり,元の次元数の情報は失われる。
(3)書込み後,ファイルマーク位置を更新します。
・Write File
テキストファイルからの
逐次読取り
文字列
読取り
Read File+ (string).vi
(*2)
(1)事前にOpenされ,そのrefnumで指定された文字列ファイルに対して,
(2)位置モードと位置オフセットで指定した位置から文字列を読取ります。
(3)読取り後,ファイルマーク位置を更新します。
・Read File
バイナリファイルからの
逐次読取り
数値
[I16]
読取り
Read File+ [I16].vi
(*2)
(1)事前にOpenされ,そのrefnumで指定されたバイナリファイルに対して,
(2)位置モードと位置オフセットで指定した位置から読取り,
(3)2次元列数/1次元カウント,2次元行数の指定にしたがって,符号付きワード整数(I16)の2次元または1次元配列に変換します。
(4)読取り後,ファイルマーク位置を更新します。
・Read File
バイナリファイルからの
逐次読取り
数値
[SGL]
読取り
Read File+ [SGL].vi
(*2)
(1)事前にOpenされ,そのrefnumで指定されたバイナリファイルに対して,
(2)位置モードと位置オフセットで指定した位置から読取り,
(3)2次元列数/1次元カウント,2次元行数の指定にしたがって,単精度数値(SGL)の2次元または1次元配列のデータに変換します。
(4)読取り後,ファイルマーク位置を更新します。
・Read File
任意タイプファイルへの
逐次書込み
書込み Write File (1)事前にOpen/Createされ,そのrefnumで指定されたバイトストリームファイルに対して,
(2)位置モードと位置オフセットで指定した位置から,任意タイプのデータを書込みます。
(3)書込み後,オフセット位置を更新します。
任意タイプファイルからの
逐次読取り
読取り Read File (1)事前にOpenされ,そのrefnumで指定されたバイトストリームファイルに対して,
(2)位置モードと位置オフセットで指定した位置から,任意タイプのデータを読取ります。
(3)読取り後,オフセット位置を更新します。

(*2) LabVIEW n\vi.lib\utility\file.llb (nは6.1〜7.1)の中にあります。
逐次書込み/逐次読取りで扱えるファイル容量は2GBまでです。一括書込み/一括読取の最大ファイル容量については不明ですが,普通そんな使い方はしないと思います。

目次に戻る


同期関連

Notifier 1つのタスクから1つまたは複数の別個の並列タスクに同期用のタイミングデータを送るには,
 関数→上級→同期→ノーティフィケーションVIもしくは,vi.lib→Utility→notifier.llbを使用する。
特定のVIまたはブロックダイアグラムの一部が同期用データを送信(Send Notification.vi)するまで,他の1つ以上のVIまたはブロックダイアグラムの一部を待機(Wait On Notification.vi)させる場合にこのVIを使用する。Notifierを使えば,待機するかどうかをポーリングで調べる必要はなく,CPUの負荷にならない。
関数パレットにあるものは,notifier文字列を引数とし,notifier.llbにあるものはrefnumを引数とする。
(例:アプリケーションを最適化する→タスクを同期する)
 Notifierは単に同期用のタイミングだけでなく,グローバル変数やローカル変数のように,値も渡すことができる。複数のNotificationがあった場合に,各々の値を記憶することはできず,最新の値のみが渡される。
Occurrence Occurrenceがセットされるまで待機(Wait on Occurrence)させる。Notifierと違い,値は渡せない。NI社ではオカレンスの代わりにNotifierを使うことを推奨している。
Queue 待ち行列を用いたタスクの同期方法である。1つのタスクから他の並列タスクに渡すデータ要素を,待ち行列に入れて渡すには,
 関数→上級→同期→キューVIパレットにあるキューVIを使用する。
他のタスクがデータを待ち行列に入れるまで,そのデータを処理するタスクを待機状態にするために使用する。Queueを使えば,待機するかどうかをポーリングで調べる必要はなく,CPUの負荷にならない。
最初のタスクが与えた待ち行列データを,他のタスクが処理し終えるまで待つ場合にも使用できる。
  Queue Refnum制御器は,vi.lib\Utility\queue.llb中にある。
Rendezvous 複数の別個の並列タスクの実行開始を同期させるには,
 関数→上級→同期→ランデブーVIパレットもしくは,vi.lib→Utility→rendezvs.llbを使用する。
ランデブーで指定した数だけのタスクが揃って実行可能になるまで待機(Wait at Rendezvous.vi)する。各タスクでWait at Rendezvous.viが呼ばれ,最後のタスクでWait at Rendezvous.viが呼ばれた時点ですべてのタスクの実行が開始される。
(例:アプリケーションを最適化する→タスクを同期する)
Semaphore 共有(保護された)リソース上で動作可能なタスク数を1つに制限するには,
 関数→上級→同期→セマフォVIパレットにあるセマフォVIを使用する。
セマフォVIを使用して,複数の別個の並列タスクを同期させると,1つのタスクだけが共通セマフォによって保護されたコードの重要セクションを実行できるようにできる。
セマフォを入手したVIやブロックダイアグラムの一部のみが処理を行えるようにプログラムし,処理終了後,セマフォを手放すようにする。その間,残りの並列タスクはセマフォが得られるまで待機状態になるようにプログラムする。
(例:アプリケーションを最適化する→タスクを同期する)
  Semaphore RefnumはLabVIEW 6.1\vi.lib\Utility\Semaphore.llb内にある。

目次に戻る


通信関連

1 サーバの
プロトコル
VIサーバによる通信とDataSocketサーバによる通信は,内部動作のプロトコルとしては共に,TCP/IPを使っています。
VIサーバは,デフォルト設定では,ポート3363を使って相手からの接続を待ちます。
DataSocketサーバは,ポート3015を用いて相手からの接続を待ちます。
ファイアウォールを持つ外部LANのLabVIEWシステムと通信する場合は,これらのポートが使えるようにファイアウォールが設定されていなければ通信できません。
2 ポート番号
ソケット
1つのコンピュータ(IP=www.xxx.yyy.zzz)内で複数のアプリケーションを処理しており,それらがすべてTCP/IPやUDPで外部と通信を行なっている場合,
 (1)そのコンピュータの特定のアプリケーションが,外部にデータを送る時,指定されたポート(abcd)を使って送ります。
 (2)外部から,送り先コンピュータ(IP=www.xxx.yyy.zzz)の,特定のアプリケーションにデータを渡すために指定されたポート番号(abcd)宛てに送ります。
IPアドレスとポート番号の組合せをまとめてソケットと呼ぶ。www.xxx.yyy.zzz:abcd
3 VIサーバ
の準備
VIサーバによる通信を行うには,
 (1)「オプション(O)...」「VIサーバ:構成」で,TCP/IPに「v」をつける。
 (2)「オプション(O)...」「VIサーバ:TCP/IPアクセス」で,アクセスリストに相手のIPアドレスを追加する。
4 DataSocket
サーバの
準備と起動
DataSocketによる通信は,送信側コンピュータ(Publisher)と受信側コンピュータ(Subscriber)が直接に通信を行なうのではなく,サーバを介して通信を行ないます。すなわち,送信側コンピュータはサーバにデータを送信し,受信側コンピュータはサーバからデータを読み取ります。そのため,DataSocketサーバの準備と起動が必要です。
 (1)Windowsの「スタート」「全てのプログラム(P)」「National Instruments」「DataSocket」「DataSocket Server Manager」として,サーバマネージャを起動する。
 (2)「Permission Groups」の,
  (2-1)「DefaultReaders」をクリックして,AddHostボタンを押し,最下段の<NewHost>の所に通信を許可する相手先のコンピュータ名かIPアドレスを入れる。とくに指定しなければ,デフォルトでeveryhostとなっているので,全Hostにサーバからの読み出しを許可する。
  (2-2)「DefaultWriters」をクリックして,AddHostボタンを押し,最下段の<NewHost>の所に通信を許可する相手先のコンピュータ名かIPアドレスを入れる。
  (2-3)「Creators」をクリックして,AddHostボタンを押し,最下段の<NewHost>の所に通信を許可する相手先のコンピュータ名かIPアドレスを入れる。
 (3)右上の閉じるボタン「X」を押してサーバマネージャを終了させる。
 (4)Windowsの「スタート」「全てのプログラム(P)」「National Instruments」「DataSocket」「DataSocket Server」として,DataSocketサーバを起動します。
(1)「Permission Groups」に登録されていないHostから,サーバにアクセスすると,「DataSocketサーバに、アイテムを読み取り、書き込み、そして作成するための権限が十分ではありません。」というエラーメッセージダイアログが表示される。
(2)「Permission Groups」の「Creators」に登録されていないHostから,プログラムで動的に新しいItemをサーバに作ろうとすると,上記のエラーメッセージダイアログが表示される。
(3)「Permission Groups」の「Creators」に登録されていないHostでも,既にサーバに作成されているItemには書き込める。
DataSocket Server Managerの内容を変更した場合,DataSocketを再起動しないと,変更が反映されない。
DataSocketを停止させるには,右下トレイのDataSocket Iconを右クリックして,Shutdown DataSocket Serverとする。
5 Front Panel
DataSocket
Front Panelの制御器や表示器のデータをDataSocketでやり取りするには,
オブジェクトを右クリックして,「データ操作」「DataSocketへ接続...」で現れるDataSocket接続ダイアログで,接続先に
  DSTP://コンピュータ名or IP/任意Item名
を入れる。接続先とは,DataSocketサーバがあるコンピュータとItem名です。
接続タイプとして,送信ならば「パブリッシュ」,受信ならば「サブスクライブ」,双方向ならば「パブリッシュとサブスクライブ」を選び,添付ボタンを押します。
これにより,各オブジェクトの右上に四角い接続状態LEDが現れます(これは隠すこともできます)。ただし,このLEDはサーバとの接続状態を示すもので,相手のコンピュータと通信ができていることを示すものではありません。
フロントパネルの制御器や表示器のデータをDataSocketでやりとりすると,Data変更があった時のみ,パケットが送られる。
必ずデータが届くとは限らず,パケットロスの可能性があります。
オブジェクトをループの中に入れた場合,DataSocketでのデータ転送はループ周期とは無関係です。周期タイマが1000msに設定されていても,オブジェクトのデータ変更はほぼ瞬時に反映されます。
6 DataSocketのItem URLの最期に記述された部分で,サーバに作られるRead/Write領域です。
  DSTP://Machine Name/Item
プログラムで動的に作成することも,DataSocket Server Managerから静的に作成することもできます。
サーバの静的Itemには初期値が設定されているので,そのItemに対してサーバへの送信(Publish)が行なわれていない場合に,そのItemをサーバから受信(Subscribe)すると,初期値が読み取られます。
7 DataSocketで
ファイル
読み取り
URLのプロトコル部分に「dstp」でなく,「http」や「ftp」を使えば,httpサーバやftpサーバからテキストファイルの読み取りもできます。たとえばURLとして,
 http://kasais.net/LabVIEW/index.html
としてDataSocketを開き,「DataSocket Read」関数を1回呼べば,このLabVIEW独習サイトのTopページのファイルがテキスト文字列として読み取れます。
8 LabVIEW 6.1の
DataSocket
LabVIEW 6.1でのDataSocketはどこかにバグがあり,長時間の通信でNT 4.0 OSがダウンする場合がありました。他のOSで起こるかどうかは不明です。「大規模試験計測システム」では結局DataSocketでの通信方法を取りやめ,UDPで通信する方法にプログラム変更しました。これに関して,どこかにアップデータはでているのでしょうか?
上記の障害の対策かどうかはわかりませんが,LabVIEW 6.1とLabVIEW 7のDataSocket関数には違いがあります。LabVIEW 6.1では,DataSocket Read/DataSocket Write関数の中に,TCP Open ConnectionやTCP Close Connectionの機能が含まれていました。ただし,ループでDataSocket Read/DataSocket Write関数を繰返し呼んだ場合,最初の呼び出しのみにTCP Open Connectionに相当する処理を行ない,ループの終了時のみにTCP Close Connectionに相当する処理を行なっています。
LabVIEW 7の
DataSocket
LabVIEW 7では,「DataSocketを開く」と「DataSocketを閉じる」の2つの関数が追加されており,Open時に動作モードを指定するようになっています。これらの処理を独立させたことにより,「DataSocket 読み取り」と「DataSocket 書き込み」関数の機能もLabVIEW 6.1とは異なっているはずです。こちらのほうが,プロトコルの手順としては一般的だと思います。
9 TCP/IP TCP/IP関連の関数を直接使って通信する場合には,上記3, 4のサーバの準備は不要です。
10 UDP Transport Layerのプロトコルで,Network LayerのIP(Internet Protocol)にポート指定処理を追加した程度のものです。データ転送の効率はよいのですが,エラーが発生しても再送しないので,相手に確実に届く保証はありません。
UDP Open関数のポートは,自分がデータを送受信する時に使うポート番号で,タイプは符号無し16bit(U16)です。
UDP Write関数のアドレス/ポートは,宛先のIPアドレス(U32)/ポート番号(U16)です。
IPアドレス(U32)に16進のFFFFFFFFを使うと,不特定多数に対して送信する,いわゆる,ブロードキャストになります。
UDP Read関数のアドレス/ポートは,データを送ってきた相手のIPアドレス(U32)と送受信に使っているポート番号(U16)です。
11 TCP/IP,UDP
のデータタイプ
TCP/IPやUDPでは,文字列型のデータをやりとりするので,それ以外のデータをTCP/IPで扱う場合には,「上級」「データ操作」のType Cast関数で文字列型に変換する。

目次に戻る


Cコードの利用手順

(A)DLLとLabVIEW関数サブVIの両方を新規に作成する方法

(手順1) LabVIEW関数サブVIプロトタイプの作成
 (1-1)「ファイル(F)」「新規VI」として,新規VIのフロントパネルとダイアグラムを出します。
 (1-2)「ファイル(F)」「別名で保存(A)...」として,この関数サブVIプロトタイプに希望する処理内容を表すVI名称
    (例:SampleFunction.vi)をつけて保存します。
 (1-3)ダイアグラム上に,関数パレットの「コネクティビティ」「ライブラリ&実行可能ファイル」サブメニュから
    ライブラリ関数呼び出しノード(Call Library Function Node)オブジェクトを置きます。

 (1-4)ライブラリ関数呼び出しノード(Call Library Function Node)オブジェクト上で右クリックして,「構成...」を選ぶと
    ライブラリ関数の呼び出しダイアログが現れます。
 (1-5)「関数名」に名前(例:Sfunc)を入れます。これはDLL内部の関数名となります(DLL名称ではありません)。
 (1-6)「パラメータ」に表示されているC関数の戻り値であるreturn typeを,適切な名称(例:error)に変更します。
    戻り値を使わない(タイプがVoid)場合は変更不要です。
 (1-7)「タイプ」プルダウンメニュから,このパラメータのタイプ(数値,配列,文字列など)を指定します。

 (1-8)これ以降は指定したタイプによって,さらに指定する項目が異なりますが,たとえばタイプが数値の場合は,
 (1-9)「データタイプ」プルダウンメニュから,このパラメータのデータタイプを指定します。
 (1-10)「渡す形式」プルダウンメニュから,値で直接渡すのか,ポインタで渡すのかを指定します。

 C関数呼び出しに必要な全ての引数を指定するまで,以下の(1-11)〜(1-14)までを繰り返します。
 (1-11)「引数を後に追加」ボタンを押すと,関数の引数がarg1という仮名称で1つ追加される。
 (1-12)「パラメータ」arg1の名称を,適切な名称(例:in_ary)に変更します。
 (1-13)「タイプ」プルダウンメニュから,このパラメータのタイプ(数値,配列,文字列など)を指定します。
 (1-14)指定したタイプに応じて「データタイプ」以下を設定します。

 (1-15)下段の「関数プロトタイプ:」にC言語の関数形が表示されるので,自分が作成したい関数形と一致していることを確認します。
 (1-16)「OK」ボタンを押すと,ダイアグラムのライブラリ関数呼び出しノード(Call Library Function Node)の端子数が,
    引数の分だけ増えて表示される。
    左列端子が入力引数群で,右列端子が出力引数群です。
    同じ行並びの左右ペアは,同じ引数の入力値と関数演算後の出力値です。
 (1-17)ライブラリ関数呼び出しノード(Call Library Function Node)オブジェクト上で右クリックして,「.cファイルを作成...」を選ぶと
    「.cコードソースファイルを選択してください:」ダイアログが現れるので,
    上部の「保存する場所(I):」を指定し,下部のファイル名(例:Sfunc.c)をつけて「保存(S)」ボタンを押す。

 これでC言語関数のソースコード・スケルトンがSfunc.cとして作成されるので,実際の関数コードを作成してソースファイルSfunc.cを完成させます。
 関数宣言やインクルード・ファイルにLabVIEW特有の約束がありますので,NI社のアプリケーションノート"Using External Code in LabVIEW"の第2章を参考にしてください。インクルード・ファイルのextcode.hは,National Instruments\LabVIEW n\cintools (n=6.1〜7.1)にあります。
(手順2) C言語ソースコードのコンパイル
 (2-1)Microsoft Visual C++を立ち上げる。他のコンパイラは持っていませんので,試していません。
 (2-2)メニューバーの「ファイル(F)」「新規作成(N)...」で現れる「新規作成」ダイアログの「プロジェクト」タブで,
    「プロジェクト名(N):」にプロジェクト名(例:DLLname,プロジェクト名がDLL名称となります)を入れ,
    「位置(C):」にプロジェクトフォルダを置きたい場所を指定します。
    リストボックスから「Win32 Dynamic-Link Library」を選択して「OK」ボタンを押す。
 (2-3)「Win32 Dynamic-Link Library - ステップ1/1」ダイアログで,「空のDLLプロジェクト(E)」を選択して「終了(F)」ボタンを押す。
 (2-4)「新規プロジェクト情報」ダイアログで「OK」ボタンを押してVisual C++ ワークスペースに戻る。

 (2-5)メニューバーの「ビルド(B)」「アクティブな構成の設定(O)...」で現れる「ブロジェクトの標準構成」ダイアログで
    「DLLname - Win32 Release」を選択して,「OK」ボタンを押す。デフォルトではDebug構成になっており,生成されるコードに
    デバッグ情報が含まれるので大きくなります。

 (2-6)メニューバーの「プロジェクト(P)」「プロジェクトへ追加(A)」「ファイル(F)...」で現れる「プロジェクトへファイルを追加」ダイアログで
    Sfunc.cを指定します。インクルード・ヘッダファイル(.h)を使うのでそれらも指定します。
    extcode.hは,National Instruments\LabVIEW n\cintools (n=6.1〜7.1)にあります。

 (2-7)メニューバーの「プロジェクト(P)」「設定(S)...」で現れる「プロジェクトの設定」ダイアログで,「C/C++」タブを指定します。
 (2-8)「カテゴリ(Y):」プルダウンメニュから「コード生成」を選ぶ。
 (2-9)「使用するランタイムライブラリ(L):」で「マルチスレッド(DLL)」を選ぶ。
 (2-10)「構造体メンバのアライメント(A):」で「1バイト」を選ぶ。
 (2-11)「OK」ボタンを押してVisual C++ ワークスペースに戻る。

 (2-12)メニューバーから「ビルド(B)」「ビルド(B) DLLname.dll」とします。
    これでDLLname.dllが作成されます。この後の手順は下の(B)の(手順2)以降となります。


(B)既存のDLLを使うためにLabVIEW関数サブVIを作成する方法

(手順1) LabVIEW関数サブVIの作成準備
 (1-1)「ファイル(F)」「新規VI」として,新規VIのフロントパネルとダイアグラムをだす。
 (1-2)「ファイル(F)」「別名で保存(A)...」として,この関数サブVIプロトタイプに希望する処理内容を表す名前
    (例:SampleFunction.vi)をつけて保存します。
 (1-3)関数パレットの「コネクティビティ」「ライブラリ&実行可能ファイル」サブメニュから,
    ライブラリ関数呼び出しノード(Call Library Function Node)オブジェクトをダイアグラム上に置きます。
(手順2) ライブラリ関数呼び出しノード(Call Library Function Node)の構成
 (2-1)LabVIEW関数サブVIの,ライブラリ関数呼び出しノード(Call Library Function Node)オブジェクト上で右クリックして,
    「構成...」を選ぶと「ライブラリ関数の呼び出し」ダイアログが現れます。
 (2-2)最上部の「ライブラリ名またはパス」の右の「参照...」ボタンを押して,既存のDLL(例:DLLname.dll)の場所を指定します。
 (2-3)「関数名」プルダウンメニュには,そのDLLに含まれる全関数名が表示されるので,
    LabVIEWから呼び出したい関数(例:Sfunc)を選びます。
    手順(A)から来た場合は(2-9)にスキップします。

 (2-4)この時点では関数の「パラメータ」には,return typeしか表示されていないので,
    「引数を後に追加」ボタンを押すと,関数の引数がarg1という仮名称で1つ追加される。
 (2-5)「パラメータ」arg1の名称をわかりやすい名前に変更します。
 (2-6)「タイプ」プルダウンメニュから,このパラメータのタイプ(数値,配列,文字列など)を指定します。

 これ以降は指定したタイプによって,さらに指定する項目が異なるが,たとえばタイプが数値の場合は,
 (2-7)「データタイプ」プルダウンメニュから,このパラメータのデータタイプを指定します。
 (2-8)「渡す形式」プルダウンメニュから,値で直接渡すのか,ポインタで渡すのかを指定します。

 全ての引数を指定するまで(2-4)〜(2-8)までを繰り返します。

 (2-9)「関数プロトタイプ」にC言語の関数形が表示されるので,自分が作成した関数形と一致していることを確認します。
 (2-10)「OK」ボタンを押すと,ライブラリ関数呼び出しノード(Call Library Function Node)の端子数が,引数の分だけ増えて表示される。
    左列端子が入力引数群で,右列端子が出力引数群です。
    同じ行並びの左右ペアは,同じ引数の入力値と関数演算後の出力値です。
(手順3) 関数サブVIの構成
 (3-1)フロントパネルに,入力引数に対応する制御器群と,出力に対応する表示器群を置きます。
 (3-2)各制御器オブジェクト上で右クリックして,表記法を対応する引数のデータタイプに合わせます。
 (3-3)各表示器オブジェクト上で右クリックして,表記法を対応する出力のデータタイプに合わせます。
 (3-4)ダイアグラムで,各制御器をライブラリ関数呼び出しノード(Call Library Function Node)の対応する入力端子に配線し,各表示器を対応する出力端子に配線します。
(手順4) このVIをサブVI化します。
    やり方は,このページ の「既存のVIをサブVIに変換する手順」を参考にしてください。
(手順5) わかりやすいように,VIアイコンを編集して適切な処理内容を表すような図にしてください。
(手順6) 「ファイル(F)」「保存(S)」で,サブVIを保存します。

目次に戻る


MAX

MAXの構成保存
(1)MAXのフォルダ中の
    National Instruments\MAX\config.mxs
  にDeviceとインターフェースの構成(各シャーシ位置とボードModel名称)が記憶されている。ただし,
  PXIモジュール(PXI-6052E, PXI-6533 etc.)の内容は記録されていない。
(2)各Deviceとインターフェースのプロパティは,MAXの,「ツール(T)」,「NI-DAQ構成」,「別名で構成を保存」とすれば,
    C\WINNT\niconfig.daq (WinNT), C\WINDOWS\niconfig.daq (Win9X)として保存されている。

目次に戻る


その他

ExcelのExampleは,LabVIEW 6.1\examples\comm\ExcelExamples.llbにある。
外部アプリケーションと通信する。→ActiveX, Excel

再帰(Recursive)呼出のExampleは,Cambridge UniversityのRecursive File Search.viにある。

アナログ入力のレート他
 LabVIEWでは,単一信号の入力の場合,取込み数/secをサンプリングレートと呼び,複数信号入力の場合,全信号の1サンプルをまとめて取込むことをScan,各信号の取込み数/secをスキャンレートと呼んでいる。Scan用のクロックはスキャンクロックである。
 複数入力信号を1つのマルチプレクサで切り替えるために使われるクロックはチャネルクロックと呼ばれ,切り替えに要する時間が,チャネル間遅延である。

目次に戻る


LabVIEWのバグほか

LabVIEWのバグ修正については,NI社のサイトから「NI Developer Zone」に入り,上部の検索欄にキーワードとして
「bug fix LabVIEW 8.6」などと入力すると関連資料をみつけることができます。

Developer Suiteのバグ?
 LabVIEW 8.5
   日本語名で実行ファイル(exe)を作成しても正常に動作しますが,Installer作成時にソースとして呼出せないため,
  Installerが作成できないことがある。
   これはいつも発生するわけではなく,不思議なことに特定の日本語名称の実行ファイルのときに発生する。
  一例として,「表示録画.exe」などの実行ファイル名称ではInstallerがつくれない。(どうやら"表"という漢字が気に入らないようです。)
  仕方が無いので英文字ファイル名に変更するとInstallerまで作成できる。

 LabVIEW 8.6
   レポート生成関連のVIを使うと,実行ファイル作成時に,
  「LabVIEWはビルド中にファイル名の衝突を防止しました。...」といったような警告文がたくさん表示され,
  その結果これらのVIがそのままビルド出力先にフォルダごと複数コピーされる。
  LabVIEW 8.6.1でもBug Fixされていません。これはLabVIEW 8.5では発生しません。

 LabVIEW 2009
  (1)上記LabVIEW 8.5からの日本語ファイル名の問題は解決されていません。
  (2)上記LabVIEW 8.6のレポート生成関連のBugは修正されています。ただし,レポート関連の多くのVIがインストーラに
   含まれることには変わりありません。
    LV 8.5からLV 8.6への移行の際にレポート関連の構成が大きく変わったためだそうです。
   なぜ,これらのVIが必要なのかは聞いてもよくわかりませんでした。
  (3)LabVIEW RealTime Module関連で,大きなプログラムを作成するとデプロイできません。

 LabVIEW 2009SP1
  (1)上記LabVIEW 8.5からの日本語ファイル名の問題は解決されていません。
   「累積時間表示.vi」のSub VIを作成すると,exeでは「累積時間・示.vi」がないというエラーがでてきます。
  (2)FPGA Module SP1はSymantec Internet Security 2010と相性が悪く,コンパイルエラーが出る。
  上記LabVIEW 2009の(3)項のBugは修正されています。


USB-6008/6009 マルチファンクションDAQでエラー200361がでる問題
  (1)NI社がHelpで説明するエラーを発生する環境でなく,高スペックのパソコンでCPU負荷が軽くて,低サンプルレートで,
   完全に使用条件を満たしているにもかかわらず,エラー200361が発生することがある。
     http://forums.ni.com/t5/LabVIEW/Error-200361-on-some-Machines/td-p/1132561
  (2)米国NI社の調査によれば,これはUSB処理をサポートする特定のChip Setを用いたパソコンで発生するらしい。
  (3)パソコンのOn-board USBポートを使わないで,USBインターフェース基板を追加することができれば回避できるとのこと。
  (4)いまのところそれ以外の対策はなさそうで,USB-6008/6009 On-board FIFOが小さすぎることが原因らしい。
  (5)USB-6009 200361のキーワードで検索すると,このエラーを修正するという詐欺サイトが現れ,
   download.phpというコードをインストールさせようとするので,きわめて危険,絶対信用しないこと。
     http://www.subnixus.com/error-codes/error-6009.html
     http://www.dcclifecare.com/error-codes/error-6009.htm


  (6)その後の調査で,Multi Core CPUの場合,Deferred Procedure Call Latencyという遅延時間が大きい機種で発生するという情報がある。
     http://forums.ni.com/t5/Multifunction-DAQ/USB-6009-overflow-error-on-continuous-mode-after-restart-of-VI/td-p/1277930/page/6
  (7)Dell Vostro 3700 (Win7 32bit)でDPC Latencyが大きく,他の動作不具合も発生していたパソコンを修理したらDPC Latencyが大きく改善し,
   USB-6008/6009が問題なく動作するようになった。

  (8)NI社のさらなる調査で, Windows 7 EHCI driver のバグらしいとわかったが,OS内部の問題のため,NI社のとれる対策には限界がある。
     http://forums.ni.com/t5/Multifunction-DAQ/Getting-Error-200361-after-start-stop-of-the-data-acquisition/td-p/1283974/page/2

   上記URLで示されるプロパティノードの設定は,DAQmx 9.4以降で可能ですが,追加手順は少し面倒です。
   (8-1)プロパティノードを追加すると,上側にDAQmx Eventと表示されるので,これを右クリックして「DAQmxクラスを選択」「DAQmxチャンネル」とする。
   (8-2)下側のプロパティを右クリックして,「フィルタを選択...」「すべての属性を表示」「OK」ボタンを押す。
   (8-3)プロパティを右クリックして,「プロパティを選択」「アナログ入力」「一般プロパティ」「上級」「データ転送とメモリ」「USB転送リクエストカウント」
     とすると,プロパティの領域に「AI.UsbXferReqCount」が現れる。
   (8-4)プロパティ領域を右クリックして,「変更」「書き込み」とする。
   (8-5)プロパティ領域を右クリックして,「作成」「定数」とし,値を1に変更する。DAQmx 9.4以前では,値を1に設定するとエラーになります。


Application Builderで作成したexeファイルが実行時に削除されてしまう問題
  (1)Norton Internet Security(NIS)をインストールしたパソコンで,Application Builderで作成したexeファイルが実行時に削除されてしまう。
  (2)これはNISに含まれているSONAR保護という機能のためです。
  (3)SONAR保護では,「その実行ファイル名をSymantecが知らないのでWhite Listに載っていない」「使っているユーザー数が少ない」という
   ものすごい理由で勝手にexeファイルを削除します。
  (4)Symantecに問合わせると,「そのexeファイルをDownloadできるようにして,英語で,Symantecに連絡してくれ」といいます。
    しかも,連絡してもその後の経過は報告しないとのこと。
  (5)解決方法はNISを使わないか,SONAR保護機能を無効にするしかありません。

  (6)NIS2011以降ではAuto-Protectに,Nortonご自慢のSuspiciou.Cloud.5という未知ウィルス検出技術が採用され,Application Builderで
   作成したexeファイルや,LabVIEWインストーラでインストールしたexeファイルを「高リスク」と判断して勝手に削除する。
   Symantecの説明では,
      Suspicious.Cloud.5 は,従来のシグネチャを使用することなく,まったく新しい種類のマルウェアの脅威を検出するために
      開発された検出技術です。この技術の目的は,攻撃者が意図的に変異または変形させた悪質なソフトウェアを検出することです。

   Symantecに問合わせると,上記(4)の対応となります。ユーザー側でできることは,NISのセキュリティ履歴から「復元」させるしかありません。

目次に戻る


私のビジネス関連

 ここは,弊社「アルス制測有限会社」のビジネスサイトの入口です。
「A LabVIEW Studentの独習記」は,LabVIEW普及支援のために運営しているボランティアサイトで,今後もその位置づけは変わりません。ビジネスサイトは,LabVIEWだけでなく,MATLAB/Simulinkシミュレーションなど,弊社の業務内容を紹介するものとなっています。メカトロ系のシステムを開発されている皆さんは,ぜひ一度ご覧ください。ただし,LabVIEWやMATLAB/Simulinkの使い方に関しての情報は記述されていません。もちろん,ビジネスサイトを見られても,お金がかかるようなことはありませんのでご安心ください。監視カメラのライブ紹介,遠隔地リモート計測も可能な「USBポータブルデータロガー」」,サーボ系の周波数特性を計測する「USBポータブルサーボアナライザ」もあります。

ビジネスサイトを見てみる    目次に戻る


LabVIEW TOPに戻る

Presented by ALS-CI CO., LTD.