المنزل الذكي. العقول

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

الصورة

لكن أول الأشياء أولاً. في البداية ، تضمنت بنية منزلي الذكي المكونات التالية:
  • تحكم الصناعي الحمل من PLK110-32 (الدماغ الرئيسي)
  • وحدة الإخراج التناظري MU110-6U (تستخدم للتحكم في المخفتات)
  • وحدة لإدخال الإشارات التناظرية MV110-8A (أضيفت لاحقًا لأخذ قراءات من أجهزة الاستشعار).

كل هذا مرتبط معًا عبر RS-485 وبزل Modbus RTU. وحدة التحكم الرئيسية متصلة بشبكة إيثرنت للتواصل مع العالم الخارجي.

للتحكم من الهاتف ، استخدمت في البداية Iridium Mobile ، والذي قدمه لي المصنعون (يرجى استخدام موقفي الرسمي لأغراض شخصية!). في وقت لاحق قمت باستبدالها بخدمة ويب تستند إلى Node JS. كما أضاف لاحقًا جزءًا لاسلكيًا يعتمد على الموجة z. أخطط للكتابة عن كل هذا بشكل منفصل ، ولكن الآن نعود إلى خرافنا.

تتم برمجة وحدة التحكم في بيئة CoDeSys ، والتي تدعم 5 لغات متخصصة ، أتقنت منها لغتين - FBD (لغة كتلة الوظيفة) و ST (لغة شبيهة باسكال). في الواقع ، اعتقدت في البداية أنها راضية عن FBD فقط ، لأن البرمجة بهذه اللغة تبدو وكأنها رسم تخطيطي في محرر.

الصورة

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

مع إضافة المزيد والمزيد من الوظائف والقدرات ، توصلت إلى استنتاج مفاده أن لغة الرسوم البيانية الوظيفية ليست على الإطلاق ملائمة - يتم الحصول على رمز ضخم ، والبرمجة بطيئة ، وتصحيح الأخطاء غير مريح للغاية. لذلك ، تحولت تدريجياً إلى لغة ST ولم أعد أتحول إلى لغة FBD.

للمقارنة ، يبدو أن هذا هو جزء من كتلة دالة باهتة في لغة ST (أوافق ، هذه مسألة مختلفة تمامًا!):

الصورة

نظرًا لأننا نتحدث عن باهتة ، فنحن بحاجة إلى التحدث عنه تحديدًا. كما اتضح ، ليس من السهل على الإطلاق العثور على باهتة مناسبة (مكواة) لمنزل ذكي. لم أفكر في جميع أنواع الخيارات الغريبة ، حيث يجب تنفيذ جميع الوظائف الأساسية على التقنيات السلكية - لقد كتبت عن هذا سابقًا. ثمن مخفتات الضوء التي جاءت إلي لم ترضيني. بالإضافة إلى ذلك ، كان من الضروري ضمان التوافق مع منزلي الذكي. في البداية استقرت على INSYTE LDD-400D ، التي يسيطر عليها ModBus ، والتي سمحت لي بتوصيلها مباشرة بوحدة التحكم بدون وحدات إضافية ، لكن الأصدقاء الذين استخدموها في مشاريعهم بطريقة ما لم يتحدثوا جيدًا عن ذلك ، ونتيجة لذلك ، قررت سؤال مع باهتة حتى - وضع تتابع الحالة الصلبة.

الصورة

يتم التحكم في التتابع (عبر وحدة الإخراج التناظرية) بإشارة 0-10V وإخراج 10-220V على التوالي. يرجى ملاحظة أن الحد الأدنى للجهد عند خرج مرحل الحالة الصلبة ليس 0 ، ولكن 10 فولت - عند هذا الجهد ، يضيء لولب المصباح المتوهج بشكل ملحوظ. يتم حل هذه المشكلة على النحو التالي: بالإضافة إلى مرحل الحالة الصلبة ، تحتوي الدائرة أيضًا على التتابع المتوسط ​​(الميكانيكي) المعتاد ، وعلى مستوى البرنامج ، عندما يكون من الضروري إيقاف الضوء تمامًا ، تقوم وحدة التحكم بإيقاف التتابع المتوسط ​​وتكسر الدائرة.

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

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

لقد عشت مع هذا الخيار لعدة أشهر ، ولكن بعد ذلك توصلت إلى استنتاج مفاده أنه لا يزال غير ملائم للغاية وغالبًا ما يتم استخدام 3 أوضاع فقط - الضوء قيد التشغيل ، والضوء مغلق أو يتم تشغيل الضوء عند الحد الأدنى من الغضب. لذلك ، قمت بتطبيق خيار منفصل أبسط (والذي لا يزال حتى الآن):
  • الضغط القصير - تشغيل / إيقاف الضوء (يضيء بسطوع كامل)
  • الضغط لفترة طويلة - يشعل الضوء عند سطوع 25٪ ويتحول إلى الوضع الخافت ؛
  • كل صحافة تالية تنتقل إلى الخطوة التالية + 25٪. الخروج من وضع باهتة - مهلة.

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

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

يتمتع نظام CoDeSys بالقدرة على إنشاء لوحة تصور وتحكم. لا يدعم PLC110 واجهة الويب ، لذلك يعمل التصور فقط في مجمع CoDeSys نفسه.

الصورة

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

في الختام ، إيجابيات وسلبيات.

الإيجابيات:
  • الموثوقية - أثبت الحل نفسه بشكل جيد للغاية (ومع ذلك ، فهو مبني على قاعدة مكونة ، والتي تستخدم في الأتمتة الصناعية). طوال الوقت لم يكن هناك فشل واحد (!!!). حتى بعد اندفاع الطاقة ، بدأ النظام دون أي مشاكل.
  • (, , ).

:
  • Modbus TCP — ( )

كما قلت في المقالة الأولى ، سأبحث الآن عن البدائل عن كثب ، ولكن إذا أراد شخص ما فجأة دراسة هذا الحل ، فقد قمت بنشر كود المصدر المصنوع في CoDeSys على github . (فقط يرجى التنازل عن جودة الكود.

في الأجزاء التالية - التحكم في الهاتف والحلول اللاسلكية.

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


All Articles