
آموزش LabView
- ارسال شده توسط Admin
- تاریخ می 13, 2025
- دسته بندی دستهبندی نشده
- نظرات 0 نظر
آموزش جامع و تصویری LabVIEW
یادگیری محیط برنامهنویسی گرافیکی برای اتوماسیون و تست
مقدمهای بر LabVIEW
LabVIEW (Laboratory Virtual Instrument Engineering Workbench) یک محیط توسعه گرافیکی است که توسط National Instruments توسعه یافته و برای اتوماسیون، تست، و اندازهگیری استفاده میشود. این نرمافزار به دلیل رابط کاربری بصری و برنامهنویسی مبتنی بر بلوکهای گرافیکی، برای مهندسان و پژوهشگران بسیار محبوب است.

تصویر 1: رابط کاربری LabVIEW
معرفی انواع متغیرها در LabVIEW
در LabVIEW، متغیرها نقش مهمی در ذخیره و مدیریت دادهها دارند. برخلاف زبانهای برنامهنویسی متنی، LabVIEW از متغیرهای گرافیکی استفاده میکند که به صورت کنترلها (Controls) و نشانگرها (Indicators) در Front Panel تعریف میشوند و در Block Diagram پردازش میشوند. در ادامه، انواع اصلی متغیرها در LabVIEW معرفی شدهاند:
1. متغیرهای عددی (Numeric)
متغیرهای عددی برای ذخیره اعداد (صحیح، اعشاری، یا مختلط) استفاده میشوند. این متغیرها میتوانند به صورت کنترل (برای ورودی کاربر) یا نشانگر (برای نمایش خروجی) تعریف شوند.
- انواع: Integer (I32, U16 و غیره)، Double، Single، Complex
- کاربرد: محاسبات ریاضی، اندازهگیریها، پردازش سیگنال
- مثال: یک کنترل عددی برای دریافت دما از کاربر و یک نشانگر برای نمایش نتیجه تبدیل آن به فارنهایت

تصویر 2: نمونه کنترل و نشانگر عددی در Front Panel
متغیرهای بولین فقط دو حالت True (صحیح) یا False (غلط) دارند و معمولاً برای کنترل تصمیمگیری یا وضعیتهای روشن/خاموش استفاده میشوند.
- انواع: دکمهها، سوئیچها، LEDها
- کاربرد: کنترل شروع/توقف یک فرآیند، نمایش وضعیت یک دستگاه
- مثال: یک دکمه بولین برای روشن کردن یک لامپ مجازی

تصویر 3: نمونه کنترل بولین (دکمه) و نشانگر (LED)
3. متغیرهای رشتهای (String)
متغیرهای رشتهای برای ذخیره متن یا دادههای متنی استفاده میشوند. این متغیرها میتوانند ورودی کاربر یا خروجیهای متنی را مدیریت کنند.
- انواع: رشتههای تکخطی یا چندخطی
- کاربرد: نمایش پیامها، ورود نام فایل، یا لاگگیری
- مثال: یک کنترل رشتهای برای دریافت نام کاربر و نمایش پیام خوشآمدگویی

تصویر 4: نمونه کنترل و نشانگر رشتهای
4. آرایهها (Array)
آرایهها مجموعهای از دادهها با نوع یکسان (مثل اعداد یا رشتهها) هستند که برای ذخیره و پردازش دادههای گروهی استفاده میشوند.
- انواع: آرایههای یکبعدی، دوبعدی، یا چندبعدی
- کاربرد: ذخیره دادههای حسگرها، پردازش دادههای بزرگ
- مثال: یک آرایه عددی برای ذخیره مقادیر دما در طول زمان

تصویر 5: نمونه آرایه در Front Panel
5. متغیرهای خوشهای (Cluster)
خوشهها مجموعهای از متغیرهای مختلف (مثل عدد، رشته، بولین) هستند که به صورت یک واحد گروهبندی میشوند.
- کاربرد: سازماندهی دادههای پیچیده، مانند مشخصات یک دستگاه
- مثال: یک خوشه شامل نام سنسور (رشته)، وضعیت (بولین)، و مقدار (عددی)

تصویر 6: نمونه خوشه در Front Panel
نکات مهم در استفاده از متغیرها
– متغیرها در LabVIEW معمولاً در Front Panel تعریف میشوند و در Block Diagram استفاده میشوند.
– برای مدیریت بهتر دادهها، از نامگذاری معنادار برای کنترلها و نشانگرها استفاده کنید.
– متغیرهای محلی (Local Variables) و جهانی (Global Variables) برای دسترسی به دادهها در بخشهای مختلف VI استفاده میشوند، اما استفاده بیش از حد از آنها میتواند عملکرد را کاهش دهد.
معرفی پالت مقایسه (Comparison Palette) در LabVIEW
پالت مقایسه (Comparison Palette) در LabVIEW مجموعهای از ابزارها و توابع گرافیکی است که برای مقایسه دادهها و تصمیمگیری منطقی در Block Diagram استفاده میشود. این پالت در دستهبندی Programming > Comparison قرار دارد و برای ارزیابی شرایط، بررسی برابری، یا مقایسه مقادیر عددی، رشتهای، و بولین به کار میرود.

تصویر 7: پالت مقایسه در Block Diagram
ابزارهای اصلی پالت مقایسه
پالت مقایسه شامل توابع متعددی است که در ادامه مهمترین آنها معرفی شدهاند:
1. Equal? (برابر؟)
این تابع بررسی میکند که آیا دو مقدار ورودی برابر هستند یا خیر. خروجی آن یک مقدار بولین (True/False) است.
- کاربرد: بررسی برابری دو عدد، رشته، یا آرایه
- مثال: مقایسه دمای فعلی با یک مقدار مرجع برای فعال کردن هشدار

تصویر 8: نمونه استفاده از تابع Equal
2. Not Equal? (نابرابر؟)
این تابع بررسی میکند که آیا دو مقدار ورودی متفاوت هستند یا خیر. خروجی آن نیز بولین است.
- کاربرد: تشخیص تغییرات در ورودیها یا مقادیر غیرمجاز
- مثال: بررسی اینکه آیا ورودی کاربر با مقدار پیشفرض متفاوت است

تصویر 9: نمونه استفاده از تابع Not Equal
3. Greater Than? (بزرگتر؟)
این تابع بررسی میکند که آیا مقدار اول بزرگتر از مقدار دوم است یا خیر.
- کاربرد: کنترل حدود مجاز، مانند بررسی دمای بیش از حد
- مثال: فعال کردن فن وقتی دما از 50 درجه سانتیگراد بیشتر شود

تصویر 10: نمونه استفاده از تابع Greater Than
4. Less Than? (کوچکتر؟)
این تابع بررسی میکند که آیا مقدار اول کوچکتر از مقدار دوم است یا خیر.
- کاربرد: بررسی مقادیر زیر حد مجاز
- مثال: هشدار وقتی سطح سوخت زیر 10٪ باشد

تصویر 11: نمونه استفاده از تابع Less Than
5. Select
تابع Select بر اساس یک شرط بولین، یکی از دو مقدار ورودی را انتخاب میکند. اگر شرط True باشد، مقدار اول و اگر False باشد، مقدار دوم انتخاب میشود.
- کاربرد: تصمیمگیری شرطی بدون نیاز به ساختار Case
- مثال: انتخاب پیام “خاموش” یا “روشن” بر اساس وضعیت یک سوئیچ

تصویر 12: نمونه استفاده از تابع Select
نکات مهم در استفاده از پالت مقایسه
– توابع مقایسه معمولاً در ترکیب با ساختارهای کنترلی مثل Case Structure یا While Loop استفاده میشوند.
– برای مقایسه آرایهها یا خوشهها، مطمئن شوید که نوع دادهها یکسان است.
– از تابع Select برای سادهسازی منطق شرطی در Block Diagram استفاده کنید.
– برای مقایسه رشتهها، به تفاوتهای کوچک و بزرگ بودن حروف (Case Sensitivity) توجه کنید.

تصویر 13: نمونه VI با استفاده از توابع مقایسه
ساختارهای کنترلی و حلقهها در LabVIEW
حلقهها و ساختارهای کنترلی در LabVIEW ابزارهای اساسی برای مدیریت جریان برنامه، اجرای تکراری کدها، تصمیمگیریهای شرطی، و پاسخ به رویدادها هستند. این ابزارها در پالت Programming > Structures قرار دارند و امکان پیادهسازی منطقهای پیچیده و پویا را فراهم میکنند. در این بخش، انواع حلقهها (For Loop، While Loop، Timed Loop) و ساختارهای کنترلی (Case Structure، Flat Sequence، Event Structure، Formula Node) با جزئیات بررسی شدهاند.
تصویر 14: پالت ساختارها و حلقهها در Block Diagram
1. انواع حلقهها
حلقهها برای اجرای تکراری کدها در Block Diagram استفاده میشوند. این ساختارها امکان پردازش دادهها، انتظار برای شرایط خاص، یا اجرای عملیات تا زمان توقف را فراهم میکنند.
1.1. حلقه For (For Loop)
حلقه For مجموعهای از کدها را به تعداد مشخصی تکرار میکند. تعداد تکرارها توسط یک متغیر عددی (N) تعیین میشود.
- ویژگیها: نیاز به تعداد تکرار ثابت دارد؛ شامل یک شاخص (index) برای ردیابی تکرارها.
- کاربرد: پردازش آرایهها، اجرای تستهای تکراری.
- مثال: محاسبه میانگین یک آرایه عددی با پیمایش تمام عناصر.
- جزئیات فنی: میتوانید از Shift Register برای انتقال داده بین تکرارها استفاده کنید. برای توقف زودهنگام، از Conditional Terminal استفاده کنید.
تصویر 15: نمونه حلقه For برای پردازش آرایه
1.2. حلقه While (While Loop)
حلقه While تا زمانی که یک شرط بولین True باشد، کد را اجرا میکند. این حلقه برای شرایطی که تعداد تکرارها از قبل مشخص نیست مناسب است.
- ویژگیها: نیاز به شرط توقف (Stop Condition) دارد؛ ممکن است بینهایت اجرا شود اگر شرط نادرست باشد.
- کاربرد: انتظار برای ورودی کاربر، مانیتورینگ حسگرها.
- مثال: خواندن داده از حسگر تا زمانی که کاربر دکمه توقف را فشار دهد.
- جزئیات فنی: از Feedback Node برای ذخیره حالت بین تکرارها استفاده کنید. برای جلوگیری از مصرف بیش از حد CPU، تاخیر (Delay) اضافه کنید.
تصویر 16: نمونه حلقه While با شرط توقف
1.3. حلقه Timed Loop
حلقه Timed Loop برای اجرای کد با زمانبندی دقیق طراحی شده و امکان تنظیم دوره زمانی (Period) و اولویت اجرا را فراهم میکند.
- ویژگیها: مناسب برای برنامههای بلادرنگ؛ شامل تنظیمات پیشرفته مثل Deadline و Timeout.
- کاربرد: کنترل سیستمهای بلادرنگ، نمونهبرداری با فرکانس ثابت.
- مثال: نمونهبرداری از حسگر هر 100 میلیثانیه.
- جزئیات فنی: از Timing Source (مثل 1kHz Clock) برای هماهنگی استفاده کنید. برای سیستمهای غیربلادرنگ، دقت زمانبندی را بررسی کنید.
تصویر 17: نمونه حلقه Timed Loop برای نمونهبرداری
نکات مهم در استفاده از حلقهها
– برای جلوگیری از حلقههای بینهایت در While Loop، شرط توقف مناسب تعریف کنید.
– از Shift Register یا Feedback Node برای انتقال داده بین تکرارها استفاده کنید.
– در Timed Loop، زمانبندی را با توجه به سختافزار و سیستمعامل تنظیم کنید.
– برای خوانایی، حلقهها را با حاشیههای مشخص و نامگذاری مناسب قرار دهید.
2. ساختارهای کنترلی
ساختارهای کنترلی برای مدیریت تصمیمگیری، ترتیب اجرا، پاسخ به رویدادها، و محاسبات متنی استفاده میشوند.
2.1. ساختار Case Structure
Case Structure یک ساختار شرطی است که بر اساس مقدار ورودی (Selector) یکی از چندین حالت (Case) را اجرا میکند. مشابه switch-case در زبانهای متنی است.
- ویژگیها: Selector میتواند عددی، بولین، رشتهای یا Enum باشد. هر Case شامل کد خاص است.
- اجزای اصلی:
- Selector Label: مقدار یا شرط برای انتخاب Case.
- Case Frames: فریمهای حاوی کد برای هر حالت.
- Default Case: اجرا در صورت عدم تطابق.
- کاربرد: انتخاب عملیات ریاضی (جمع، تفریق)، کنترل مراحل فرآیند.
- مثال: VI که بر اساس منوی Enum (مثل “جمع”، “تفریق”) عملیات ریاضی انجام میدهد.
- جزئیات فنی: از تونلهای خروجی برای خروجیهای مشترک استفاده کنید. برای Selector عددی، بازهها (مثل “1..5”) قابل تعریفاند.
نکات پیشرفته:
– همه تونلهای خروجی را پر کنید تا از خطای “unwired tunnel” جلوگیری شود.
– برای منطق پیچیده، از Caseهای تو در تو با احتیاط استفاده کنید.
– از Enum برای Selectorها استفاده کنید تا کد خواناتر شود.
تصویر 18: نمونه Case Structure با Selector نوع Enum
2.2. ساختار Flat Sequence
Flat Sequence کدها را به ترتیب در فریمهای جداگانه اجرا میکند و تضمین میکند هر فریم پس از تکمیل فریم قبلی اجرا شود.
- ویژگیها: فریمها از چپ به راست اجرا میشوند. هر فریم کد مستقل یا وابسته دارد.
- اجزای اصلی:
- Frames: مراحل اجرای برنامه.
- Data Passing: انتقال داده از طریق تونلها.
- کاربرد: راهاندازی سختافزار، جمعآوری داده، خاموش کردن سیستم.
- مثال: VI که سنسور را مقداردهی (فریم 1)، داده جمعآوری (فریم 2)، و ذخیره میکند (فریم 3).
- جزئیات فنی: وابستگی بیش از حد به دادههای فریمهای قبلی خوانایی را کاهش میدهد.
نکات پیشرفته:
– برای برنامههای پیچیده، از State Machine به جای Flat Sequence استفاده کنید.
– تعداد فریمها را محدود کنید تا Block Diagram شلوغ نشود.
– از تونلها برای انتقال داده بین فریمها با دقت استفاده کنید.
تصویر 19: نمونه Flat Sequence با سه فریم
2.3. ساختار Event Structure
Event Structure رویدادهای کاربر یا سیستم (مثل کلیک دکمه یا تغییر مقدار) را مدیریت میکند و برنامه را پاسخگو میکند.
- ویژگیها: فریمهای رویداد به رویدادهای خاص (مثل Value Change) پاسخ میدهند. معمولاً در While Loop قرار دارد.
- اجزای اصلی:
- Event Selector: کنترل یا رویداد مانیتور شده.
- Timeout Frame: اجرا در صورت عدم وقوع رویداد.
- Event Data: اطلاعات رویداد (مثل مقدار جدید).
- کاربرد: رابطهای کاربری تعاملی، پاسخ به تغییرات سختافزاری.
- مثال: VI که با کلیک “شروع” فرآیند را آغاز و با “توقف” متوقف میکند.
- جزئیات فنی: با Event Queue کار میکند. از Dynamic Events برای کنترلهای زمان اجرا استفاده کنید.
نکات پیشرفته:
– Timeout Frame را برای کدهای دورهای با زمان مناسب تنظیم کنید.
– از حلقههای جدا برای رویدادهای مختلف استفاده کنید.
– از Property Nodes برای تغییر ویژگیهای کنترلها (مثل غیرفعال کردن دکمه) استفاده کنید.
– از معماری Producer/Consumer برای جداسازی رویدادها و پردازش داده استفاده کنید.
تصویر 20: نمونه Event Structure برای مدیریت کلیک دکمه
2.4. گره فرمول (Formula Node)
Formula Node معادلات ریاضی را به سبک زبانهای متنی (مشابه C) در Block Diagram اجرا میکند.
- ویژگیها: امکان تعریف متغیرهای ورودی/خروجی و نوشتن عبارات ریاضی با عملگرهای ریاضی، مثلثاتی، و منطقی.
- اجزای اصلی:
- Input Terminals: متغیرهای ورودی از Block Diagram.
- Output Terminals: متغیرهای خروجی به Block Diagram.
- Code Area: ناحیه برای معادلات متنی.
- کاربرد: معادلات پیچیده مثل مدلسازی دینامیکی.
- مثال: محاسبه موقعیت پرتابه (x = v₀t cosθ، y = v₀t sinθ – ½gt²) با ورودیهای v₀، θ، و t.
- جزئیات فنی: از سینتکس C پشتیبانی میکند. متغیرهای آرایهای قابل استفادهاند.
نکات پیشرفته:
– برای محاسبات کوچک استفاده کنید؛ برای الگوریتمهای پیچیده، از MathScript یا DLL استفاده کنید.
– متغیرها را با دقت تعریف کنید تا از خطای سینتکس جلوگیری شود.
– برای دیباگ، از نشانگرها برای بررسی مقادیر استفاده کنید.
تصویر 21: نمونه Formula Node برای محاسبات ریاضی
نکات کلی و مقایسه
– **For Loop** برای تکرارهای ثابت و **While Loop** برای تکرارهای شرطی مناسباند. **Timed Loop** برای برنامههای بلادرنگ استفاده کنید.
– **Case Structure** برای تصمیمگیریهای شرطی چندگانه، **Flat Sequence** برای مراحل خطی، **Event Structure** برای برنامههای پاسخگو، و **Formula Node** برای محاسبات متنی مناسباند.
– برای ترکیب این ابزارها، از معماریهایی مثل Producer/Consumer یا State Machine استفاده کنید.
– برای خوانایی، از نامگذاری مناسب و حاشیههای مشخص در Block Diagram استفاده کنید.
– عملکرد را با محدود کردن حلقههای بینهایت، بهینهسازی تونلها، و مدیریت دقیق رویدادها بهبود دهید.
تصویر 22: نمونه VI با ترکیب حلقهها و ساختارهای کنترلی
خوشهها (Clusters) در LabVIEW
خوشهها (Clusters) در LabVIEW مجموعهای از دادهها با انواع مختلف (مانند عدد، رشته، بولین، یا حتی آرایه) هستند که به صورت یک واحد گروهبندی میشوند. خوشهها برای سازماندهی دادههای مرتبط، کاهش پیچیدگی سیمکشی در Block Diagram، و انتقال دادههای پیچیده بین بخشهای برنامه استفاده میشوند. برخلاف آرایهها که فقط دادههای همنوع را ذخیره میکنند، خوشهها میتوانند دادههای غیرهمنوع را در یک ساختار واحد ترکیب کنند. در این بخش، خوشهها، نحوه ایجاد و مدیریت آنها، توابع مرتبط، و کاربردها به طور جامع بررسی شدهاند.
تصویر 39: پالت خوشهها در Front Panel و Block Diagram
1. تعریف و ایجاد خوشهها
خوشه در LabVIEW مانند یک ظرف داده است که عناصر مختلفی (مانند کنترلها یا نشانگرها) را در خود جای میدهد. هر عنصر در خوشه میتواند نوع داده متفاوتی داشته باشد، و ترتیب عناصر در خوشه ثابت است.
- ویژگیها:
- عناصر خوشه با ترتیب مشخص (Order) تعریف میشوند و با شاخص یا نام قابل دسترسیاند.
- اندازه خوشه ثابت است (برخلاف آرایهها که میتوانند پویا باشند).
- خوشهها میتوانند شامل دادههای پیچیده مثل آرایهها، خوشههای دیگر، یا انواع سفارشی باشند.
- ایجاد خوشه در Front Panel:
- یک کنترل یا نشانگر خوشه (Cluster Control/Indicator) از پالت Controls اضافه کنید.
- عناصر مورد نظر (مثل Numeric، String، Boolean) را به داخل خوشه بکشید.
- ترتیب و نام عناصر را در Properties یا با ابزار Cluster Order تنظیم کنید.
- ایجاد خوشه در Block Diagram:
- از تابع Bundle برای ترکیب عناصر در یک خوشه استفاده کنید.
- از تابع Bundle by Name برای تنظیم عناصر با استفاده از نام آنها استفاده کنید.
- کاربردها: مدیریت دادههای مرتبط (مثل مشخصات یک سنسور)، انتقال دادههای پیچیده بین VIها، سازماندهی ورودی/خروجی توابع.
- مثال: ذخیره اطلاعات یک دستگاه شامل نام (String)، وضعیت (Boolean)، و مقدار (Numeric) در یک خوشه.
تصویر 40: نمونه کنترل خوشه در Front Panel
2. توابع کلیدی خوشه (Cluster Functions)
پالت Programming > Cluster, Class & Variant شامل توابعی برای ایجاد، تغییر، و دسترسی به خوشهها است. در ادامه، توابع اصلی خوشه معرفی شدهاند:
2.1. Bundle
این تابع عناصر جداگانه را در یک خوشه جدید ترکیب میکند.
- ورودیها: عناصر جداگانه (مثل عدد، رشته) یا یک خوشه خالی برای تعریف ساختار.
- خروجی: خوشه جدید با عناصر ورودی.
- کاربرد: ایجاد خوشه از دادههای پراکنده.
- مثال: ترکیب یک عدد (25.5)، یک رشته (“Sensor1”)، و یک بولین (True) در یک خوشه.
- جزئیات فنی: ترتیب عناصر در خوشه باید با تعریف خوشه مطابقت داشته باشد.
تصویر 41: نمونه استفاده از تابع Bundle
2.2. Bundle by Name
این تابع عناصر یک خوشه موجود را با استفاده از نام آنها بهروزرسانی یا جایگزین میکند.
- ورودیها: خوشه موجود، مقادیر جدید برای عناصر مشخص (با نام).
- خروجی: خوشه بهروزرسانیشده.
- کاربرد: تغییر مقادیر خاص در خوشه بدون نیاز به بازسازی کل خوشه.
- مثال: بهروزرسانی مقدار “دما” در خوشه مشخصات دستگاه بدون تغییر “نام” یا “وضعیت”.
- جزئیات فنی: نام عناصر باید دقیقاً با تعریف خوشه مطابقت داشته باشد.
تصویر 42: نمونه استفاده از تابع Bundle by Name
2.3. Unbundle
این تابع عناصر یک خوشه را به صورت جداگانه استخراج میکند.
- ورودی: خوشه.
- خروجیها: عناصر خوشه به ترتیب تعریف.
- کاربرد: دسترسی به همه عناصر خوشه برای پردازش جداگانه.
- مثال: استخراج دما، نام، و وضعیت از خوشه برای نمایش یا محاسبات.
- جزئیات فنی: ترتیب خروجیها با ترتیب تعریف خوشه مطابقت دارد.
تصویر 43: نمونه استفاده از تابع Unbundle
2.4. Unbundle by Name
این تابع عناصر خاصی از خوشه را با استفاده از نام آنها استخراج میکند.
- ورودی: خوشه.
- خروجیها: عناصر انتخابشده با نام.
- کاربرد: دسترسی به عناصر خاص بدون نیاز به استخراج همه عناصر.
- مثال: استخراج فقط “دما” از خوشه برای محاسبه.
- جزئیات فنی: استفاده از نام به جای شاخص، کد را خواناتر و مقاومتر در برابر تغییرات ساختار خوشه میکند.
تصویر 44: نمونه استفاده از تابع Unbundle by Name
2.5. Cluster to Array / Array to Cluster
این توابع خوشه را به آرایه تبدیل میکنند یا بالعکس.
- Cluster to Array: عناصر خوشه را به یک آرایه تبدیل میکند (عناصر باید همنوع باشند).
- Array to Cluster: عناصر آرایه را به خوشه تبدیل میکند (اندازه خوشه محدود به 256 عنصر است).
- کاربرد: استفاده از ابزارهای آرایه برای پردازش دادههای خوشه یا بالعکس.
- مثال: تبدیل خوشه دما و فشار به آرایه برای محاسبه میانگین.
- جزئیات فنی: برای Cluster to Array، نوع داده عناصر باید یکسان باشد.
تصویر 45: نمونه استفاده از تابع Cluster to Array
3. نکات پیشرفته و مثال کاربردی
نکات پیشرفته:
– **خوانایی با نامگذاری:** همیشه عناصر خوشه را با نامهای معنادار (مثل “دما” به جای “Numeric”) نامگذاری کنید تا استفاده از Bundle by Name و Unbundle by Name آسانتر شود.
– **مدیریت تغییرات:** اگر ساختار خوشه تغییر کند (مثلاً عنصری اضافه/حذف شود)، استفاده از توابع By Name به جای توابع معمولی از خطاها جلوگیری میکند.
– **بهینهسازی:** خوشهها حافظه بیشتری نسبت به آرایهها مصرف میکنند، بنابراین فقط برای دادههای غیرهمنوع از آنها استفاده کنید.
– **خوشههای تو در تو:** میتوانید خوشههایی داخل خوشههای دیگر ایجاد کنید (مثل خوشهای برای مشخصات چند دستگاه)، اما برای خوانایی، تعداد لایهها را محدود کنید.
– **انتقال داده:** خوشهها برای انتقال داده بین SubVIها یا بین حلقهها با Shift Register بسیار مناسباند، زیرا تعداد سیمهای مورد نیاز را کاهش میدهند.
– **دیباگ:** از Probe یا نشانگرهای موقت برای بررسی محتوای خوشه در Block Diagram استفاده کنید.
– **Type Definition:** برای خوشههایی که در چندین VI استفاده میشوند، از Type Definition (ctl فایل) استفاده کنید تا تغییرات به طور خودکار اعمال شوند.
مثال کاربردی:
فرض کنید میخواهید مشخصات یک سنسور (نام، دما، وضعیت فعال) را در یک خوشه ذخیره کنید، دما را بهروزرسانی کنید، و وضعیت را بررسی کنید. مراحل زیر را در یک VI پیادهسازی کنید:
- یک خوشه در Front Panel با سه عنصر ایجاد کنید: نام (String)، دما (Numeric)، وضعیت (Boolean).
- در Block Diagram، با Bundle خوشه را با مقادیر اولیه (“Sensor1”, 25.5, True) پر کنید.
- با Bundle by Name مقدار دما را به 26.0 بهروزرسانی کنید.
- با Unbundle by Name وضعیت (Boolean) را استخراج کنید و با Case Structure بررسی کنید که سنسور فعال است یا خیر.
- خوشه نهایی را در یک نشانگر خوشه در Front Panel نمایش دهید.
سناریوی پیشرفته: اگر چندین سنسور دارید، یک آرایه از خوشهها ایجاد کنید (هر خوشه شامل مشخصات یک سنسور). با حلقه For و توابع خوشه، دادههای هر سنسور را پردازش کنید (مثلاً میانگین دما را محاسبه کنید).
تصویر 46: نمونه VI برای مدیریت مشخصات سنسور با خوشه
4. نکات کلی و بهترین روشها
– **سازماندهی داده:** از خوشهها برای دادههای مرتبط استفاده کنید تا Block Diagram سادهتر و خواناتر شود.
– **استفاده از By Name:** برای خوشههای بزرگ یا در حال تغییر، از Bundle by Name و Unbundle by Name استفاده کنید تا کد مقاومتر باشد.
– **محدودیت اندازه:** خوشهها برای دادههای کوچک تا متوسط مناسباند؛ برای دادههای بزرگ، از آرایهها یا ترکیب آرایه و خوشه استفاده کنید.
– **مستندسازی:** عناصر خوشه را با نامهای واضح و توضیحات در Front Panel و Block Diagram مستند کنید.
– **ترکیب با سایر ابزارها:** خوشهها را با Case Structure، Event Structure، یا SubVIها ترکیب کنید تا برنامههای پیچیده را به طور مؤثر مدیریت کنید.
– **عملکرد:** برای برنامههای بلادرنگ، تعداد عناصر خوشه را محدود کنید تا زمان پردازش کاهش یابد.
شما همچنین ممکن است دوست داشته باشید

