كيف فعلنا وحدة التحكم للتحكم في عناصر الإعلان الخارجي (الجزء 2)



في الجزء السابق من المقالة ، درسنا مرحلة بدء تصميم النظام. الآن أريد أن أخبرك ما هو نوع الجهاز الذي خرج في النهاية.







الجزء 1

الجزء 2



في مناقشة الجزء الأول ، أثيرت مسألة قياس الجهد والتيار. لذلك قررت تغطيته بمزيد من التفصيل. كما كتبت سابقًا ، فإن مستشعرات الجهد والتيار في دائرتنا هي محولات. يتم استخدام المصغر transic BV 201 0145 لقياس الجهد ، ولحساس التيار AC-1020:







تتم إزالة الفولتية منها ، والتي يتم رقمنتها بواسطة ADC المدمج في المتحكم الدقيق. الجزء التناظري موضح أدناه:







يتم تحميل المستشعر الحالي عبر المقاوم R3. يحمي الصمام الثنائي Zener diode VD3 من ارتفاعات الجهد المفاجئة الناتجة عن موجات التيار القصيرة. حددت المقاومات R2 و R4 "نقطة الصفر" حول 1.8V. يتم القيام بنفس الشيء بالنسبة لمحول الجهد. يوجد فقط فاصل على المقاومات R8 و R10 ، حيث أن المحول في حالتنا ينتج جهدًا اسميًا يبلغ 12 فولت.



نجري الرقمنة بتردد 1000 هرتز لمدة 200 مللي ثانية. بناءً على القيم التي تم الحصول عليها ، نحسب RMS. نقوم بحساب القيم التربيعية بسرعة في المقاطعة. بعد تجميع 200 عينة ، يتم إجراء الحساب النهائي باستخدام أرقام الفاصلة العائمة في حلقة البرنامج الرئيسية.



لماذا تحتاج إلى قياس RMS وأفضل طريقة للقيام بذلك موصوفة جيدًا هنا في هذه المقالة .



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



  • مجموعة من ثلاثة لمبات هالوجين بقدرة 500 وات
  • جهاز الاستشعار الحالي الموصوف أعلاه
  • عداد كهرباء انرجوميرا CE102M
  • محول USB-RS-485
  • قاطع دائرة


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



تم وصف بروتوكول التبادل جيدًا في دليل الشركة المصنعة. لذلك لم تكن هناك صعوبات في تنفيذ البرامج.



بالمناسبة ، يمكنك كتابة مقال صغير منفصل على العدادات. في وقت ما عملت عن كثب معهم ، ونتيجة لذلك ، تدعم بعض أجهزتنا أربعة موديلات شائعة: Incotex-SK "Mercury 206" و Energomer "SE102" و Energomer "CE102M" و IEK "STAR 104/1".



تحول المنظر العام للحامل على النحو التالي:







للأتمتة ، تم تطوير برنامج بسيط يقرأ البيانات من العداد ، ويتحكم في المرحلات المدمجة في وحدة التحكم ويختار تلقائيًا معاملات مقياس التيار والجهد:



عادةً ما نستخدم الباركود للأرقام التسلسلية لأجهزتنا. من المريح جدًا إدخالها باستخدام ماسح الباركود:







ولكن في هذه الحالة ، تم طلب الجهاز ، وطلب العميل تنفيذ المسلسل ببساطة على شكل أرقام كبيرة على اللوحة الأمامية.



يحفظ برنامج المعايرة جميع البيانات في نظامنا الداخلي. يسجل من ومتى تم التحقق منه وقائمة المعلمات المقابلة. أهمها هو الرقم التسلسلي وعنوان MAC.



بالمناسبة ، حول عناوين MAC. نشتريها كرقاقات 24AA025E48-I / SN من Microchip. عند شرائها بكميات كبيرة ، فهي غير مكلفة وسهلة الاستخدام للغاية. تتم قراءة عنوان MAC عبر واجهة I2C.



الآن للاتصال بالخادم. في بداية التطوير ، كان لدينا بالفعل الوظائف الرئيسية. إنها خدمة ويب بسيطة مكتوبة في ASP.net وبرنامج خادم منفصل للتواصل مع الأجهزة. ترسل كل وحدة تحكم حزمة بيانات عبر بروتوكول UDP مرة واحدة في الدقيقة. برنامج الخادم يوزعها ، ويحفظ البيانات في قاعدة البيانات (مع "هلاك" حتى مرة واحدة في الساعة) ويتذكر بالإضافة إلى ذلك عنوان IP الخارجي والمنفذ الذي أتت منه الحزمة. هذا مطلوب للتحكم في وحدة التحكم من الخادم.



نظرًا لأن 100 ٪ من الأجهزة موجودة خلف NAT ، فمن الضروري مراعاة بعض الخصائص المميزة. السبب الرئيسي هو أن بعض NATs لديها مهلة صغيرة لتخصيص منفذ خارجي للعميل (أقل من دقيقة). النسبة المئوية لهذا ، وفقًا لإحصاءاتنا ، ليست كبيرة جدًا ، ولكن هذا على أي حال يؤدي إلى الحاجة إلى تقليل الفاصل الزمني لإرسال بيانات المراقبة من وحدة التحكم إلى الخادم لـ "صيانة" المنفذ المخصص.



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



بالإضافة إلى ذلك ، من خلال الخادم قمنا بتنفيذ تحديث عن بعد لـ "البرنامج الثابت" لوحدات التحكم. كما أنه يعمل على UDP. صحيح أن التحديث يعمل في وضع شبه تلقائي. على الرغم من ذلك ، ليس من الجيد تشغيله في الجهاز في لحظة عشوائية ، لأن هذا قد يؤدي إلى مشكلة في عمل المستخدمين النهائيين. تخيل مدى دهشتهم إذا قام مرحل Ethernet ، في وضح النهار ، بفصل بعض الحمل عنهم وإعادة التشغيل :-)



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



All Articles