التصور SCADA لمشاريع إنترنت الأشياء [مكتبة مجانية]

هناك الكثير من حلول IoT SCADA للمصانع واحتياجات التصنيع الأخرى. ومع ذلك ، هناك حالات (والكثير جدًا) ، عندما تحتاج إلى تطوير نظام SCADA الخاص بك لتغطية الاحتياجات المحددة لمشروعك.

المقالة الأصلية - مكتبة لوحة أدوات إنترنت الأشياء: تصور SCADA في لحظة [مكتبة إنترنت الأشياء المجانية]

غالبًا ما نستخدم إطار عمل كيو تي ممتاز لتنفيذ حلول إنترنت الأشياء المعقدة. بالنسبة لمجموعة من المشاريع الشبيهة بـ SCADA و SCADA ، واجهنا الحاجة إلى أداة سريعة لتطوير لوحات معلومات الجهاز. لهذا السبب قمنا بتطوير مكتبة Qt غير الرسمية خفيفة الوزن للغاية. المكتبة مفتوحة المصدر وقابلة للتخصيص ومجانية الاستخدام بموجب ترخيص MIT. ونحن نشارك أيضا مجموعة صغيرة من الحاجيات المتقدمة.

استمتع واستخدام كيو تي ؛)

README : يتم إنشاء هذه المكتبة لمشاريع سطح المكتب والجوال والمشروعات المضمنة في كيو تي. لاستخدامها ، يجب أن تعرف Qt / C ++ و QML.

تقديم QSimpleScada


دعونا نقدم لك مكتبة أنيقة لمشاريع إنترنت الأشياء الخاصة بك. لقد أنشأنا QSimpleScada لتسريع وتبسيط عرض أي بيانات ، حتى نتمكن (وأنت) من التركيز على تطوير خوارزميات الأتمتة التي تهتز.

تم إنشاؤه بشكل أساسي لتسريع وبالتالي تقليل تكلفة حل إنترنت الأشياء.

ما هو QSimpleScada؟


إنها مكتبة تتعامل تمامًا مع اتصال التطبيقات المصغّرة وتحريرها. باستخدام QSimpleScada ، يمكنك بسهولة إنشاء تصور لبيانات إنترنت الأشياء باستخدام الماوس ورمز صغير. بعد أن تشعر بالرضا عن التصميم ، احفظ ملف xml الذي تم إنشاؤه واستخدمه في مشروعك.

يتم إنشاء المكتبة باستخدام Qt / C ++ وتستند الأداة الأساسية إلى C ++. هناك واجهة لـ QML ، بحيث يمكنك إنشاء عناصر واجهة تعامل فردية مستقلة على QML (كما هو الحال عند إنشاء واجهة مستخدم QML كلاسيكية) وتحميلها على تطبيقك أثناء التنقل.

لماذا أحتاجه؟


حسنًا ، أنت تفعل إذا كنت مطورًا كيو تي أو شركة و:

  • لديك مواعيد نهائية صارمة وتقييم البيانات المعقدة في مشروعك
  • تحتاج إلى النموذج الأولي المحمول / جزءا لا يتجزأ من / مشاريع سطح المكتب تقنيات عمليات في كثير من الأحيان
  • تحتاج إلى أداة وقفة واحدة لمشاريع كيو تي متنوعة
  • لا تريد / لديك وقت / موارد لتطوير لوحات المعلومات من البداية

إذا لم يكن أي مما ذكر أعلاه عنك ، فأنت لا تفعل ذلك.

لماذا بناء إنترنت الأشياء لوحة القيادة؟


حسنًا ، قد يبدو هذا غير ضروري قليلاً ، لذا لا تتردد في تخطي هذا القسم إذا كان هذا السؤال بديهيًا بالنسبة لك. خلاف ذلك ، هناك عدة أسباب لتصور المعلومات التي حصلت عليها من Internet of Things.

إنها مكون HMI (واجهة الإنسان والآلة) الأساسي لأي إنترنت الأشياء أو نظام التحكم. أفضل بكثير من النهج النصي إذا كنت تريد أن يرى المستخدمون البيانات ذات الصلة أثناء التنقل. ينطبق ذلك على كل من مشاريع SCADA و SCADA-ish الكلاسيكية.

على سبيل المثال ، في UBreez الخاصة بنا ، استخدمنا QSimpleScada لتصور قراءات الهواء. قارن بين العرض لنفسك. لذا ، ما الذي يبدو أكثر وضوحًا ووضوحًا حتى عند احتوائه على الكثير من أدوات الاستشعار؟

النص مقابل التصور

باستخدام لوحات المعلومات ، يمكنك تسليط الضوء فورًا على أي انحراف عن المعايير وتحديد مكان حدوث عطل وتتبع الموقع المباشر ورؤية الاتجاهات وأي معلومات قيمة أخرى. يوفر الوقت للمستخدمين لفهم البيانات التي يجمعها نظام SCADA ، ويمكنهم الاستجابة وتحديد كيفية التصرف بشكل أسرع.

باستخدام QSimpleScada


فيما يلي خطوات دمج الإصدار 0.9.x من QSimpleScada في مشروعك:

الخطوة 1: تثبيت


عن طريق مدير الحزم:

إذا كنت تقوم ببناء حلول ذكية باستخدام Qt ، فمن الأرجح أنك تستخدم مدير حزمة qpm وبالتالي لا يلزمك إجراء دردشة مباشرة. في حال لم تقم بذلك (بعد) ، قم بتنزيله من هنا https://www.qpm.io

للتثبيت عبر qpm ، قم بتشغيل:

qpm install com.indeema.qsimplescada

وأضف:

include (../vendor/vendor.pri)

إلى * .pro ملف المشروع الخاص بك.

على سبيل المكافأة ، جرب إعدادنا المسبق للحاجيات:

qpm install com.indeema.eeiot

من جيثب:

لاستنساخ الريبو ، انتقل إلى:
https://github.com/IndeemaSoftware/QSimpleScada

لإضافة عناصر واجهة تعامل تم تكوينها مسبقا ، استنساخ:
https://github.com/IndeemaSoftware/EEIoT

وأضف:

 include($$PWD/com/indeema/QSimpleScada/com_indeema_QSimpleScada.pri) 

 include($$PWD/com/indeema/eeiot/com_indeema_eeiot.pri) 

إلى ملف * .pro.

باستخدام الاصدار الثنائي:

https://github.com/IndeemaSoftware/QSimpleScada/releases

الخطوة 2: تكوين


بمجرد تنزيل وتثبيت المكتبة إلى مشروعك:

1. أنشئ جهازًا جديدًا سيتم تمثيله على لوحة القيادة. أطلق عليه اسم وعنوان IP الخاص به:

 QScadaDeviceInfo *lDeviceInfo = new QScadaDeviceInfo(); 

 lDeviceInfo->setName("Test Device"); 

 lDeviceInfo->setIp(QHostAddress("127.0.0.1")); 

2. قم بإنشاء فئة تحكم تتعامل مع جميع الأجهزة اللاحقة وجميع اللوحات المتصلة بالأجهزة:

 QScadaBoardController *</code><code>mController</code><code> = new QScadaBoardController();  mController->appendDevice(lDeviceInfo) 

3. استدعاء طريقة initBoardForDeviceIp لإنشاء لوحة جديدة للجهاز الذي تم إلحاقه بالفعل. إذا لم يكن هناك جهاز على عنوان IP معين ، فلن يتم إنشاء اللوحة.

 mController->initBoardForDeviceIp("127.0.0.1"); 

4. قم بتعيين الوضع القابل للتحرير لوحدة التحكم الخاصة بك لتمكين إنشاء وحدات التحكم ونقلها وتغيير حجمها.

 mController->setEditingMode(true); 

إذا تم تمكين وضع التحرير ، فستظهر نافذة الوسائط بخلفية منقطة:

إنترنت الأشياء dashboar باني

5. أضف تخطيط الشبكة على عنصر واجهة المستخدم الخاصة بك ثم قم بإضافة وحدة التحكم الخاصة بك إلى تلك الأداة:

QGridLayout * mainLayout = new QGridLayout(ui->centralWidget);

mainLayout->addWidget( );

العمل مع الحاجيات

لقد طورنا أيضًا مكتبة EEIoT مع مجموعة من الأدوات المصممة مسبقًا. يمكنك تنزيله على https://github.com/IndeemaSoftware/EEIoT وتجربته كبداية.

لاستخدام مجموعة عناصر واجهة تعامل المستخدم:

استدعاء الدالة باستخدام موارد url إلى QML لإعلام وحدة التحكم بموقع عناصر واجهة مستخدم QML:
QMLConfig::instance.appendQMLPath(:/com/indeema/eeiot/EEIoT/);

يقع Singletone QMLConfig في "qscadaconfig.h"
هنا نستخدم EEIoT كمجموعة لجميع الحاجيات في الداخل. يمكنك تكوين مجموعة واحدة أو أكثر.
ملاحظة ، إذا قمت بإنشاء مجلدين بنفس الاسم في مواقع مختلفة ، فسيقوم المجلد الثاني (تم إنشاؤه لاحقًا) بمسح الأول.

يمكنك الوصول إلى جميع الخصائص الديناميكية التي تشكل QML (المذكورة في قائمة بيانات التعريف) من QSimpleScada ، بحيث يمكنك إنشاء لوحات المعلومات المعقدة الخاصة بك بسرعة وسهولة.

الخطوة 3: استخدام


يمكنك استخدام محررنا البسيط لإنشاء أول لوحة معلومات https://github.com/IndeemaSoftware/QSimpleScadaSample
ثم قم بإعداد QScadaBoardController في تطبيقك دون أي أجهزة أو لوحات واتصل:
mController->openProject(QString <file>)
حيث <file> هو المسار الكامل لملف المشروع الخاص بك (* .irp)

على سبيل المثال:

 mController->openProject(QString :/com/indeema/eeiot/EEIoT/) 


انظر QSimpleScada في العمل


تفضل بزيارة GitHub الشخصي لاستكشاف التطبيقات البسيطة التي تعرض أعمال مكتبة QSimpleScada:

  • تطبيق الطقس



هذا هو التطبيق العادي الذي يصور البيانات المتعلقة بالطقس من 3 الحاجيات:

  • درجة الحرارة
  • رطوبة
  • الضغط

يتم استخدام QSimpleScada و EEIoT للتعامل مع عرض لوحة القيادة وتوصيلها. جميع بيانات الطقس في الوقت الحقيقي التي نتلقاها من Openweathermap API. يمكنك تنزيل الكود على https://github.com/IndeemaSoftware/QSimpleScadaSample

لمشاهدة القراءات الحالية لمدينتك:

أدخل مدينتك متبوعًا بفاصلة ورمز البلد كما يلي:
كييف ، تعميم الوصول إلى الخدمات

وانقر فوق الزر إرسال .

سيؤدي ذلك إلى تحديث درجة الحرارة والرطوبة والضغط لمنطقتك.

الطقس لوحة القيادة لفيف

  • تطبيق البناء



مثال آخر على كيفية استخدام QSimpleScada هو تطبيق Builder الذي يتيح لنا إمكانية إنشاء لوحات المعلومات الخاصة بنا وحفظها في ملفات * .irp. محرر لوحة معلومات بسيط يستخدم QSimpleScada لإنشاء لوحة معلومات مطلوبة باستخدام أدوات EEIoT وحفظ إعداد لوحة المعلومات لاستخدامها لاحقًا. في المثال ، أنشأنا لوحة معلومات تم استخدامها في تطبيق Weather المذكور أعلاه.

الرمز متاح أيضًا على https://github.com/IndeemaSoftware/QSimpleScadaSample

المزيد من الأدوات لك


نجد أن إدخال إنترنت الأشياء يؤثر على كل صناعة ويعيد تحديد أسلوبنا في استخدام التكنولوجيا. لقد استعرضنا هذا الموضوع بالتفصيل في 6 تطبيقات واعدة لمقال إنترنت الأشياء الصناعي ، ويسعدنا أن نحرز التقدم مع الأتمتة الذي تجلبه الثورة الصناعية الرابعة.

التفاهم والسياق


إذا حصلت جميع المشاريع على المواصفات المحددة ، فسيكون عالم التنمية بمثابة يوتوبيا. ومع ذلك ، كلما كان الهدف والمتطلبات الأولية أكثر وضوحًا ، كان فهم الفريق بأكمله أفضل ، وكلما زاد تبسيطه هو المشروع. لتعميق معرفتك بالتفاصيل والمخاطر النموذجية التي تتبع مشاريع إنترنت الأشياء ، اقرأ:


Spoiler : ابحث عن القوالب الخاصة بالوثائق المتعلقة بالمشروع ، حتى تتمكن من توصيل المتطلبات وتحويلها إلى مواصفات قابلة للتنفيذ بأقل جهد.

تقدير التكلفة والوقت


الحصول على فهم دقيق للوقت والموارد التي تحتاجها يكاد يكون من المستحيل. لذلك ، للتخلي عنك بفكرة عامة عن التعقيد (محسوبًا بالوقت والتكلفة) ، إليك آلة حاسبة خاصة بإنترنت الأشياء:

إنترنت الأشياء حاسبة تكلفة الحل

أدوات ديف


بمشاركة مجموعة أدواتنا لتطوير أسرع وأكثر كفاءة لمشروع IoT ، نقوم بتحميل مشاريعنا المفتوحة المصدر المتعلقة بـ Qt و IoT على https://github.com/IndeemaSoftware مع Q في بداية عناوين الريبو. يمكنك أيضًا العثور على مجموعة من الأدوات لتطوير React و Android و iOS هناك.

إنديما وجيثب

خلاصة


في Indeema ، تعودنا على ضيق المواعيد والمشاريع الصعبة. وبالتزامنا بإيجاد حلول ذكية ، أدركنا تدريجياً ما يلي:

  • التفاهم يأتي أولاً.
    كن فضوليا. وضح كل شرط ، بغض النظر عن مدى وضوح رأيك. تأكد من أنك تفهم. نظرًا لأنه يمكنك تصميم بنية منطقية وقابلة للتطوير ، اكتب رمزًا نظيفًا رائعًا ، ومع ذلك فشلت في إيصال النتيجة المرغوبة. الشيطان في التفاصيل (لذلك تأكد من عدم ترك أي تفاصيل دون أن يلاحظها أحد).
  • Reinventin ز الدراجة غير مجدية.
    يحتوي كل مشروع على تحديات فريدة ويتطلب أفكارًا شاملة. وليس هناك حاجة لتطوير كل شيء من الصفر. لماذا؟ لأنك سوف تقلل فقط الوقت الذي تحتاجه لإيجاد وتنفيذ الميزات والوحدات والهندسة المعمارية الصعبة حقًا.
  • الجودة ذ هي المعيار .
    كن مسؤولاً عن عملك. أنت تشارك في صنع المستقبل. إذا كنت مطورًا ، فاختبر الكود الخاص بك مقابل المواصفات ، وضد أفضل الممارسات ، والحس السليم ، واستقرار المشروع ، إلخ. وينطبق الشيء نفسه على أي دور آخر.

شكرا لقراءتك وآمل أن تستمتع بهذا المقال. اشترك للحصول على التحديثات وإخبارنا بما تهتم به.

Source: https://habr.com/ru/post/ar462171/


All Articles