測定代行株式会社

お問い合わせ

測定代行株式会社

配列を使用したLabVIEWプログラムの作成例

配列とは?

配列とは、パソコン内部のデータをやり取りする時に使われる単位の1つです。数値や文字列などの情報を1つのカタマリにすることで、データの管理を簡単に行うことができます。

LabVIEWでは特に、測定結果データの一時保存先として配列が使われます。測定結果データは最終的なデータの個数が決まっていない場合が多く、あらかじめ保存先を用意しておくのが難しいです。配列はデータの個数が定まらない場合でも保存先として使用することができます。

また、配列に保存されたデータはグラフ表示やCSV(Comma-Separated Values)ファイル出力を簡単に行うことができます。

LabVIEW 配列の使用例
LabVIEW 配列をグラフ表示

配列にまとめることができるのは、同じ種類の数値、文字列だけです。

LabVIEWには15種類の数値があります。種類の違う数値は同じ配列に入れることができません。

もっと詳しく

数値の種類(表記法)

LabVIEWで使うことができる数値の種類(表記法)は、4つに分類されます。

  • ①正の整数のみ扱えるもの
  • ②正の整数と負の整数を扱えるもの
  • ③整数と少数を扱えるもの
  • ④複素数を扱えるもの

扱える数値の範囲(0~255など)によってさらに種類が分かれ、合計15種類となります。

小さな整数しか扱わないのに、大きな少数まで扱える表記法を選択すると、メモリを無駄に使用することになります。そのため、表記法の選び方によってはパソコン全体が重くなってしまうこともあります。

例として、少数を扱える「倍精度」で1万データの配列を使用すると約300キロバイトのメモリを使用します。同じデータを、整数を扱う「ワード整数」で使用すると約100キロバイトと1/3のメモリ使用になります。

LabVIEW 数値の種類

1次元(1D)配列とは

1次元配列は、数値や文字列が1方向に並んだデータです。

身近なものの例として、トランプゲームの持ち札やストップウォッチのラップタイム機能を1次元配列で再現できます。

トランプゲームの持ち札

トランプには、「ハート、ダイヤ、スペード、クローバー」の4種類のマークに「1~13」までの数字がついています。

配列を使わずにトランプゲームを再現する場合、下図のように持ち札1枚ずつにマークと数字を指定する必要があります。持ち札の枚数が増減する場合や持ち札が変わる場合は配列を使うと管理が簡単になります。

LabVIEW 1D配列カード ブロックダイアグラム
LabVIEW 1D配列カード フロントパネル

配列を使うと

1人分の持ち札を1つの配列で用意することができます。持ち札の増減にも簡単に対応できます。

LabVIEW 1D配列カード ブロックダイアグラム 配列使用
LabVIEW 1D配列カード フロントパネル 配列使用

もっと詳しく

配列の要素を削除する

配列にまとめられた要素は「0番」からはじまる番号(指標)で管理されています。持ち札の0番要素は「ダイヤ1」、1番要素は「クローバー10」、2番要素は「ダイヤ9」でしたが、削除され「ハート3」に変わりました。

要素を削除したいときは、「配列から削除関数」に番号を指定します。

下図の例では、「配列から削除関数」に現在の持ち札を渡し、「2番要素」を「1つ削除」して出力しています。

LabVIEW 1D配列 要素の削除
LabVIEW 1D配列 要素の削除後

配列に要素を追加する

配列に要素を追加したいときは、「配列に挿入関数」を使います。

下図の例では、「ダイヤ9」が削除された持ち札に、「スペード6」を追加しています。

LabVIEW 1D配列 要素の追加
LabVIEW 1D配列 要素の追加後

ストップウォッチのラップタイム機能

ストップウォッチの時間は止めず、ボタンが押されたタイミングを記録するラップタイム機能を配列で再現します。

ラップタイム機能は1回の測定中に何回使用するか決まっていないため、記録用の数値表示器をあらかじめ作成しておくことはできません。

記録されたラップタイムを「,(コンマ)」区切りで1つの表示器に入れることはできますが、読み取ることが難しくなります。また、複数の数値をコンマで区切ることはできないので、文字列に変換する必要もあります。

LabVIEW 1D配列ラップタイム

配列を使うと

ラップタイムを配列に記録していくことで問題が解決します。

LabVIEW 1D配列ラップタイム ブロックダイアグラム
LabVIEW 1D配列ラップタイム フロントパネル

もっと詳しく

上図プログラムについて:配列の動き

プログラムの開始時に空の配列を作成し、初期化しています。「記録ボタン」が押される(TRUEになる)と経過秒数を配列に追加し、ラップタイムとして表示しています。

配列には、シフトレジスタを使用し、1ループ前のデータを持ち越すことでラップライムを蓄積しています。

配列の初期化

LabVIEWで配列を初期化する方法は2種類あります。配列の大きさがあらかじめ分かっている場合と分かっていない場合です。

①配列の大きさが決まっていない場合

データが入っていない、空の配列を使用します。

LabVIEW 空の配列 ブロックダイアグラム
LabVIEW 空の配列 フロントパネル

②配列の大きさが分かっている場合

配列初期化関数を使います。配列初期化関数では、1次元、2次元それぞれの方向ごとにデータ数を定め、その範囲を、指定した数値や文字列で埋めます。

下図の使用例は、1次元方向に「5データ」、2次元方向に「3データ」、文字列「初期化」を指定して配列初期化を行った結果、出力される配列です。

LabVIEW 配列初期化 ブロックダイアグラム
LabVIEW 配列初期化 フロントパネル

2次元(2D)配列とは

2次元配列は1方向だけでなく、2方向にデータが並ぶ配列です。2次元配列は2つに分類されます。

  • ①1次元配列を重ねていったもの
    複数人のトランプの持ち札を管理する場合や、ラップタイム機能を繰り返し使用する場合など。
  • ②元々2次元のもの
    掛け算の九九表や将棋盤のような、縦と横にデータが並んでいるものです。

複数人のトランプの持ち札

1次元配列では、1人分の持ち札を1つの配列に入れ込みました。2次元配列では、トランプゲームの参加者を4人と仮定し、それぞれの持ち札を1つの配列で管理します。

下図のように持ち札A~Dの配列を縦に並べたものが2次元配列です。2次元配列では、行数を増やすだけで持ち札の総数(参加人数)を増やすことができます。

LabVIEW 2D配列未使用
LabVIEW 2D配列使用

もっと詳しく

2次元配列の要素を削除する

2次元配列は、0から始まる列と行で構成されています。

2次元配列では、「配列から削除関数」を使用して、1つの要素を削除することはできません。削除は1列、1行単位で行われます。下図の例は2行目から1行削除した結果です。

LabVIEW 2D配列 配列から削除
LabVIEW 2D配列 配列から削除後

2次元配列で1つの要素を削除したい場合、1列、1行単位のデータを1次元配列で取り出し、要素を削除後、元の2次元配列に戻します。

下図の例では、「指標配列関数」を使って1行目のデータを取り出し、「部分配列置換関数」を使って1番要素を空白に置き換え、「部分配列置換関数」で元の手札を削除後の手札に置き換えています。

LabVIEW 2D配列 要素の削除
LabVIEW 2D配列 要素の削除後

2次元配列に要素を追加する

2次元配列への要素の追加も削除と同じく1列、1行単位で行われます。

下図の例では、手札の2次元配列にヘッダの1次元配列を「配列連結追加関数」を使用し追加しています。

LabVIEW 2D配列 要素の追加
LabVIEW 2D配列 要素の追加後

ラップタイム機能を繰り返し使用

1次元配列では、ラップタイムとして残した記録は、再スタート時に初期化されていました。2次元配列を使うと、再スタート後もデータを残し、何度も蓄積することができます。

LabVIEW 2D配列ラップタイム ブロックダイアグラム
LabVIEW 2D配列ラップタイム フロントパネル

記録ボタンが押されると、ラップタイム配列に経過時間が記録されます。タイマーリセットボタンが押されると、ラップタイム記録が、2次元配列に蓄積され、経過時間が0にリセットされます。

掛け算の九九表

掛け算の九九表は2次元配列で作成することができます。

1の段、2の段、3の段・・・9の段まで1次元配列を作成し、まとめ、2次元配列の九九表を作成しています。

LabVIEW 2D配列九九 ブロックダイアグラム
LabVIEW 2D配列九九 フロントパネル

配列を使うメリット

配列を使うメリットは、データの管理が簡単になることです。

配列を使わない場合、画面に表示する数値1つ1つに表示器をつける必要があり、手間がかかります。

配列を使うと、データをまとめて管理できるため、作業量が減り、画面も見やすくなります。

配列を使うとできること

配列にデータをまとめることで、グラフ表示やCSVファイル出力を行うことができます。CSVファイルはエクセルで開くことができ、より詳細なグラフや資料を作成できます。

グラフ表示

LabVIEWでは、配列にまとめられたデータを簡単にグラフ化することができます。配列の要素が更新されると、リアルタイムでグラフも更新されます。

LabVIEW 配列グラフ フロントパネル
LabVIEW 配列グラフ ブロックダイアグラム

CSVファイル出力

下図はラップタイムの記録をCSVファイルに出力したデータです。グラフ表示やソートなど、エクセルファイルと同じ扱いができます。

LabVIEW 配列csv
LabVIEW 配列csvグラフ

LabVIEW(ラボビュー)でのシステム開発にお困りですか?

「使い方はわかったけれど、実際の業務で使うシステムを作る時間がない」「もっと高度な制御をプロに任せたい」という方は、ぜひ一度ご相談ください。

測定代行株式会社は、ラボビュー(LabVIEW)を用いた受託開発・システム構築のスペシャリストです。

お客様のご要望(自動計測、自動制御、プロセス制御、データ解析、古いバージョンの更新、温調器制御など)に合わせ、最適なシステムを一番に提案・開発いたします。

LabVIEWの無料相談をする