لابفيو (LabVIEW) هو أحد البرمجيات الهندسية الأكثر انتشاراً من إنتاج شركة الإلكترونيات الأمريكية ناشيونال إنسترومينتس يعمل على جميع أنظمة التشغيل ( ويندوز - لينوكس - ماك ) ويستخدم في مجالات تحصيل البيانات، أداة تحكمية، اختبارات نظم الأتمتة، تحليل ومعالجة الإشارة، التحكم الصناعي، تصميم النظم المدمجة.
مقدمة تاريخية
لقد جاءت تسمية هذا البرنامج LabVIEW اختصاراً من (Laboratory Virtual Instrumentation Engineering Workbench) (أي مختبر وورشة العمل الافتراضية للهندسة الإلكترونية)، وهو عبارة عن بيئة برمجية وأداة تطويرية متكاملة أنتجتها شركة ناشيونال إنستريومنتس الرائدة في صناعة الإلكترونيات الدقيقة والنظم المدمجة، ويمكن اعتباره أداة تعتمد في عملها على البرمجة المرئية (Visual Programming) حيث تستخدم لغة G المعروفة بإمكانياتها الرسومية وتطبيقاتها، وقد ظهرت بيئة لابفيو بداية الأمر كمنتج من الشركة المصنعة خاصة بتطبيقات النظم الحاسوبية أبل ماكنتوش عام 1986، ومن ثم انتقل ليتوافق مع أنظمة التشغيل ويندوز ويونكس ولينوكس ويستخدم فيها استخداماً أكاديمياً وصناعياً في عمليات تحصيل البيانات والأتمتة والتحكم الصناعي لينتهي بالإصدار لابفيو 2015 لعام 2015 .
البرمجة باستخدام تدفق المعطيات
إن اللغة التي استخدمت في برمجة بيئة لابفيو هي اللغة المسماة غي (G)، والتي يصطلح تسميتها بلغة برمجة تدفق المعطيات (Dataflow Programming Language)، والتي يحدد تنفيذ التعليمات فيها ببنية مخطط صندوقي لا بأوامر سطرية على غرار لغات أخرى، ويأخذ الملف التنفيذي في هذه اللغة اسم (LV-Source Code) الذي يقوم المبرمج فيه بالربط بين عقد صناديق التوابع بواسطة أسلاك افتراضية يقوم برسمها، وتقوم هذه الأسلاك المرسومة بنشر المعطيات ودفعها ما بين العقد، وتقوم العقد بتنفيذ البرنامج طالما وجدت لديها معطيات دخل حديثة للتنفيذ، وبما أن هذا الأداء يخلق فرصة لوجود حالات دخل متعدد في نفس اللحظة فقد تمتعت هذه اللغة البرمجية بقدرات معالجة وتنفيذ متوازٍ للبيانات والتوابع، وتنطوي عملية المعالجة المتوازية تلك على الاستفادة من الكيان الصلب للحاسوب في عمليات وصل ومعالجة أوتوماتيكية ومجدولة، حيث يقوم نظام التشغيل المنصب على الحاسب بلعب دور حلقة الوصل بين وحدة المعالجة الأساسية في كتلة البرنامج والعقد التي تقع على عاتقها تنفيذ البرنامج، نعلم أن الأمر يبدو معقداً إلى حد ما ولكن الفهم المتكامل يتطلب التعمق في لغة البرمجة غي وخوارزميات المعالجة المتوازية، حتى أن المبرمجين التقليديين يبدون امتعاضهم ورفضهم استخدام سمات تدفق البيانات الخاصة ببرنامج لابفيو حيث يصفونها بالصعبة والمعقدة وغير المجدية، ويأتي هذا الوصف حقيقة عن سوء فهم أو نقص في المعلومات حول منهجيات برمجة تدفق المعطيات، حيث إن المنهجية التنفيذية التي تم شرحها تتلخص في ربط متتالٍ لمخارج العقد بمداخل عقد أخرى، ومن الممكن امتلاك مهاراتها برمجياً مثلها مثل أي مهارة برمجية نصية كلغة سي وفيجوال بيسك، كما أن لابفيو لا يحتاج في برمجته إلى تعريف للتوابع (وهو يشابه في هذا برنامج ماتلاب) إذ إن السلك الافتراضي يعرف المتحول تلقائيا بناءً على البيانات التي ينقلها من عقد لأخرى (وهذا ما يصطلح تسميته (PolyMorphism) الشكلية المتعددة ).[1]
البرمجة الرسومية
يعتمد برنامج LabVIEW بشكل كبير على الواجهات الرسومية (والتي يسميها Front Panel أو اللوحات الأمامية ) ويعدها حلقة أساسية من حلقات تطوير برامجه وملفاته، ويصطلح تسمية توابعه بالأدوات الافتراضية Virtual Instruments أو باختصار VIs، وتتألف كل أداة افتراضية من ثلاثة عناصر: مخطط صندوقي Block Diagram، لوحة أمامية Front Panel والسطح الواصل Connector Pane (الذي يساعد في وصل الأدوات بين بعضها وتضمينها داخل بعضها)، أما العناصر التحكمية والمؤشرات في نافذة لوحة التحكم فهي تسمح للمعاملات التي تم استخدامها في إحدى الصناديق بتمرير المعطيات أو استخلاصها من/إلى صندوق أو أداة افتراضية أخرى، وبالتالي، يمكن للأداة الافتراضية أن تعمل كبرنامج مستقل بذاته ومزود بواجهة تخاطب رسومية، أو يستخدم كعقدة يمكن تضمينها في المخطط الصندوقي لأداة افتراضية أخرى، وتقوم لوحة التحكم بتحديد الدخل والخرج للعقد المرتبطة بتلك الأداة باستخدام السطح الواصل. توفر هذه الطريقة في التعامل مع البرنامج مزايا كثيرة أهمها: إمكانية فحص كل أداة افتراضية على حدة قبل تضمينها كتابع فرعي في برنامج أكبر حجماً وأكثر مهاماً.
تسمح طريقة التضمين السابقة لغير المبرمجين باستخدام LabVIEW في إجراءاتهم البحثية ( وهي تشابه بذلك كلاً من NI Multisim® أو Simulink®) حيث تبقى مهمتهم إدراج الأدوات ضمن مخططات صندوقية أكبر حجماً لتحقيق نظامهم المتكامل، ولكنها في نفس الوقت تفتح المجال أمام المحترفين والمتقدمين ( ككثير ممن يضيقون ذرعاً بمحدودية برنامج Multisim® ) لأن يبنوا عناصرهم وأدواتهم الافتراضية الخاصة بهم وتحقيق خوارزمياتهم المعقدة في بناء أدوات افتراضية جديدة لم يسبق وأن وجدت ومهما كان شكلها، حتى أنه يمكن بناء أدوات افتراضية يمكنها التواصل ببروتوكولات شبكية كبروتوكولات زبون/مخدم مما يحقق مزيداً من المعالجة المتوازية لتدفق المعطيات.
إن هذا الشرح قد يؤدي بنا إلى صور معقدة لبرنامج LabVIEW وعناصره، ولكن لنتذكر بعض النصائح التي تبقينا بعيداً عن عالم التعقيد: اجعل واجهاتك التخاطبية مبسطة و(نظيفة)، قلل عدد الأسلاك قدر المستطاع، واستخدم طريقة واضحة في تعريف أدواتك وتسميتها وعناصرها التحكمية.
مراجع
- موقع فور إلكترون - تصفح: نسخة محفوظة 26 أكتوبر 2010 على موقع واي باك مشين.