متغيرهاي محلي يا Local Variable

آموزش های رایگان

متغيرهاي محلي جزو ساختار پيشرفته در نرم افزار لب ويو مي باشد. متغير محلي دستيابي به المانهاي موجود در صفحه پانل را از چند نقطه مختلف در صفحه نمودار بلوکي در يک برنامه امکان پذير ميسازد.

 

متغيرهاي محلي يا Local Variable

 

متغيرهاي محلي جزو ساختار پيشرفته در نرم افزار لب ويو مي باشد. متغير محلي دستيابي به المانهاي موجود در صفحه پانل را از چنذ نقطه مختلف در صفحه نمودار بلوکي در يک برنامه امکان پذير ميسازد. حداقل دو دليل عمده براي توجيه به کارگيري متغييرهاي محلي در برنامه وجود دارد. اول اينکه ميتوان اعمالي نظير کنترل حله هاي موازي را به کمک آنها اجام دهيد و دوم اينکه بصورت مجازي ميتوان هر يک از المانهاي کنترل و نشاندهنده را به جاي يکديگر استفاده نمود. براي اينکه اين دو موضوع برايتان بيشتر جا بيافتد ما چندين مثال را برايتان آماده کرده ايم.  

شايد هيچ چيزي همانند چند مثال ساده به ما در درک بهتر مفهوم متغيرهاي محلي کمک نکند. به مثال زير دقت کنيد:

 

 

در صورتي که کليد بر روي True باشد هر دو حلقه فعال شده و شروع به شمارش ميکنند اما در صورتي که کليد False شود چه اتفاقي خواهد افتاد؟ آيا شمارش متوقف خواهد شد؟ جواب خير است. حلقه به شمارش ادامه خواهد داد اما چرا حلقه متوقف نخواهد شد؟ همانظور که ميدانيد در هنگام فعال شدن حلقه While هيچ ديتايي نه به حلقه وارد ميشود و نه ديتايي خارج! بنابراين عدم تغيير در وضعيت حلقه امري بديهي ست. اما راه حل چيست؟ شايد بگوييد که کليد را به داخل حلقه ميبريم تا با تغيير وضعيت آن حلقه نيز متوقف شود.اما آيا با اين روش حلقه متوقف خواهد شد؟ در پايين اين روش را امتحان خواهيم کرد.

local variables in labview

 

مطابق با راه حل دوم (شکل بالا) کليد را به داخل حلقه برديم و آن را True کرديم .يکبار ديگر به کدها دقت کنيد. آيا با Fulse شدن کليد هر دو حلقه متوقف ميشود؟ اگر جواب شما مثبت و يا منفي باشد اشتباه کرده ايد! چون حلقه دوم اصلا فعال نميشود که با تغيير کليد بخواهد غير فعال هم بشود! در واقع حلقه دوم را با کليد نميتوان کنترل کرد!

اما راه حل چيست؟ چگونه ميتوان هر دو حلقه را تنها با يک کليد فعال و يا غير فعال کرد؟ جواب در استفاده از متغيرهاي محلي است!در ادامه به تفصيل راجب به آن خواهيم پرداخت. مطابق شکل زير بر روي کليد راست کليک کرده و با توجه به مسير نشان داده شده يک متغير محلي از کليد ايجاد کنيد و آن را به حلقه دوم ببريد.

Local Variable in labview

 

توجه داشته باشيد که بصورت پيش فرض متغير بر روي نوشتن اطلاعات قرار دارد. در اين مثال ما نياز داريم تا وضعيت کليد را بخوانيم در نتيجه بر روي متغير راست کليک کرده و Change to read را انتخاب کنيد. خواهيد ديد که شکل ظاهري آن نيز تغيير خواهد کرد

در انتها برنامه ما به اين شکل تغيير خواهد کرد! با اجراي برنامه خواهيد ديد که با تغيير کليد ميتوانيد بر روي هر دو حلقه کنترل داشته باشيد. در واقع در لوپ دوم با استفاده از متغير محلي توانستيم مقدار وضعيت کليد را بدون هيچگونه سيم کشي خوانده و آن را همانند کليد استفاده کنيم

 local variable

اما ويژگي دوم جالب متغيرهاي محلي اين است که به شما اجازه ميدهد تا داده اي را بر روي يک المان کنترلي بنويسيد يا داده هاي يک نشان دهنده را بخوانيد. همانگونه که ميدانيد انجام چنين عملي در مورد ترمينال هاي معمول امکان پذير نيست. به شکل مقابل دقت کنيد. آيا ميتوانيد بدون استفاده از متغير محلي به گونه اي برنامه نويسي کنيد که مقدار کنترلي اول خوانده و سپس در المان کنترلي دوم ريخته شود؟ در صورت سيمکشي مستقيم اين دو المان کنترلي در بلوک دياگرام به ارور برخواهيد خورد. راه حل پيشنهادي ما به شما استفاده از متغير محلي است که در ادامه به آن اشاره خواهيم کرد

 

متغير حلي در لب ويو

 

 بر روي المان کنترلي دوم راست کليک کرده و مطابق آموزش ها يک متغير محلي بسازيد سپس مد آن را به Write تغيير داده و خروجي المان کنترلي اول را به آن متصل کنيد. ديديم که با کمک متغيرهاي محلي توانستيم به راحتي يک مقدار را در المان کنترلي نمايش دهيم.

 

متغير محلي

تفاوت ظاهري             labview

در حالت Write فلش در سمت چپ و در حالت Read فلش در سمت راست کادر مستطيلي ميباشد

 

مقداردهي اوليه به ثبات ها               Local Variable

 

بعد از انتقال متغير به بلوک دياگرام ميتوانيد يکي از المانهاي موجود در صفحه را به آن نسبت دهيد

 

متغير در بلوک دياگرام                      Local Variable

 

مطابق شکل مقابل از منوي Structures در بلوک دياگرم نيز ميتوانيد Local Variable به برنامه تان اضافه کنيد

 

 

ورود و خروج به داخل حلقه             lab

پس از نسبت دادن يک المان به متغير علامت ؟ مقابل حذف شده و آيکون آن به شکل روبرو تغيير ميکند

 

مد Write در متغيرهاي محلي       writelocal

 بهترين راه براي آموزش اين مد ذکر يک مثال است. به اين مثال  فوق دقت کنيد:

ما يک متغير از المان Knob ساختيم.بصورت پيش فرض بر روي مد Knob قرا دارد و ما هم آن راتغيير نميدهيم. نحوه کار اين مثال به اين شکل است که شيفت رجيستر سمت چپ با مقدار کنترل کننده Knob پر مي شود و در هر بار تکرار شدن اين مقدار با عدد صفر مقايسه مي شود در هر بار تکرار يک واحد از مقدار کنترل Knob کم ميشود و به شيفت رجيستر سمت راست منتقل ميشود. در پايان تکرار حلقه اين مقدار به شيفت رجيستر سمت چپ منتقل ميشود و از آنجايي که مقدار متغير محلي از شيفت رجيستر سمت چپ تغذيه ميشود بنابراين در هر بار تکرار حلقه يک واحد از مقدار Knob کم ميشود. در نتيجه از داخل حلقه توانسته ايم يک مقدار کنترلي را تغيير دهيم.

 

در صورتي که به آموزشهاي بيشتري نياز داريد بر روي اين لينک براي دريافت فايل آموزشي کليک کنيد. اين آموزش رايگان ميباشد

رمز فايل www.labviewmaster.ir ميباشد.

 

 

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید