LabVIEW +
ソフト開発 +
実験・研究装置開発 +
システム開発 +
納入事例 +
会社概要 +
配列での面倒な条件チェックを過去のものに。ユニークデータの抽出・比較に抜群の威力を発揮
LabVIEWで「新しく発生したエラーコードの一覧」や「現在通信中のデバイス名リスト」を作る際、配列にデータを追加する前に「1D配列検索」関数を使って「すでに同じデータが含まれていないか」を毎回チェックしていませんか? 要素数が増えるほどチェック処理に時間がかかる配列処理の弱点を根本から解消し、**「重複のない一意(ユニーク)なデータ集合」**を自動で維持・管理するために用意されたのが、コレクション機能の**「セット(Set)」**です。
数学の「集合」の概念をプログラム内で扱うための機能です。最大の特徴は、**「同じ値(要素)を絶対に重複して保持しない」**という点にあります。要素をどれだけ無造作に放り込んでも、内部で自動的に重複が弾かれ、常にユニークな要素だけが残ります。また、要素は内部で自動的にソート(並び替え)されて保持されます。
1. 重複チェックロジックが不要:「セットに挿入」するだけで、重複排除が1個の関数で完了します。 2. 集合演算が一瞬で可能:2つのデータ群の「共通要素(積集合)」や「足し合わせ(和集合)」をループなしで計算できます。 3. 存在確認が超高速:配列のように端から順に検索(ポーリング)しないため、数万件のデータがあっても一瞬で有無を判定できます。
関数パレットの「プログラミング > コレクション」にあるセット専用の関数を使用します。
「コレクション > 空のセット」定数をブロックダイアグラムに配置します。定数の上で右クリックし、「要素の型」を設定します(例:文字列、数値、エラークラスタなど)。
「セットに挿入(Insert Into Set)」関数を使用します。すでに同じ要素が存在していれば何も起こらず、存在していなければ新しい要素として追加されます。配列のように事前に「検索 + 条件分岐」という冗長なコードを書く必要はありません。
特定のデータが含まれているかを調べるには、「セット内を検索(Look Up In Set)」関数を使用します。データが存在すれば「見つかった(Found)」端子がTrueで出力されます。
セットのままではForループでのインデックス参照やグラフ描画ができないため、最終的に処理する際は「セットから配列へ(Set To Array)」関数を使って、すっきりソートされた重複のないクリーンな配列に変換して使用します。逆に、既存の配列を「配列からセットへ(Array To Set)」に流し込むだけで、一発で重複排除が完了します。
測定代行株式会社が工場ラインの監視やマルチスレッドログ解析などで採用している、実戦的な実装パターンです。
24時間連続稼働する試験装置において、発生したエラー(または警告コード)をリアルタイムでテキストログや画面に一覧表示させたい場合。
複数の子機センサー(無線やシリアル通信)が不定期にデータを送ってくる環境で、現在応答があったアクティブな子機ID(名前)の一覧をリアルタイムに把握したい場合。
2つの異なる測定拠点や、異なる並列ループから収集された「測定完了したワークのシリアル番号(文字列配列)」のリストをガッチャンコして1つにまとめたい場合。
「外観検査をパスした製品のシリアル番号セット」と「電気特性検査をパスした製品のシリアル番号セット」の双方を満たす製品だけを抽出したい場合。
「配列の重複チェック処理が重すぎてループ速度が上がらない」「セットやマップなどのモダンなコレクション機能を組み込んだ効率的なソフトウェアアーキテクチャに刷新したい」「古いLabVIEWコードのスパゲッティ状態を解消(リファクタリング)してほしい」といった課題は、すべて測定代行株式会社にお任せください。
弊社は、元・横河電機のR&D部門で最先端の光通信計測機器開発を行っていた技術者が代表を務める、LabVIEW受託開発のスペシャリスト集団です。単に動くだけのコードではなく、メモリ効率や計算負荷を極限まで考慮した、24時間365日安定して動作する「美しいプログラム(VI作成)」をご提供いたします。
元・横河電機のR&D出身者が直接設計する抜群の技術力
理研や産総研など、公的研究所や大学への豊富な納入実績
コンペ・申請用の相見積もり・指定書類作成も大歓迎
明確な仕様書やドキュメントがない研究初期フェーズからの具現化、他社製プログラムの不具合解析、最新Windows11への移行など、どんなお悩みでもお気軽にご相談ください。実務経験豊富なエンジニアが直接解決策をご提案します。
お電話での受付:平日 9:00~18:00
048-291-8807