كيف تتواصل الآلات: بروتوكول Modbus


بروتوكول Modbus هو بروتوكول الصناعة الأكثر شيوعًا للاتصالات M2M . إنه معيار فعلي ويدعمه جميع مصنعي المعدات الصناعية تقريبًا.

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

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

تاريخ Modbus


تم تقديم Modbus في عام 1979 بواسطة Modicon (الآن Schneider Electric). كان معيار مفتوح يعمل على واجهة RS-232. فيما بعد ، ظهرت تطبيقات البروتوكول لواجهات RS-485 و Modbus TCP. اكتسب البروتوكول شعبية بسرعة ، وبدأ العديد من الشركات المصنعة في تنفيذه في أجهزتهم.

في وقت لاحق ، تم نقل حقوق البروتوكول إلى منظمة Modbus Organization غير الربحية ، والتي تمتلك حتى اليوم المعيار.

يستخدم معيار Modbus المصطلحات المستمدة من منطق السلم . لذلك ، على سبيل المثال ، تسمى بعض السجلات لفائف (ملف الإنجليزية).

المستوى المادي




  • RS-232/422/485 هي واجهات تسلسلية تستخدم على نطاق واسع في الصناعة. توفر واجهات RS-422/485 نطاق إشارة يصل إلى 1200 متر. مودبوس RTU / بروتوكولات ASCII المستخدمة
  • شبكات TCP / IP - يمكن أن تكون أي واجهات إيثرنت قناة نقل بيانات فعلية. باستخدام بروتوكول Modbus TCP

مستوى المنطق



الاختلافات بروتوكول Modbus

مودبوس أسكي


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

مودبوس RTU


في بروتوكول Modbus RTU ، يتم تشفير البيانات بالتنسيق الثنائي ، ويكون الفاصل الزمني بمثابة فاصل حزمة. هذا البروتوكول مهم للتأخير ولا يمكن أن يعمل ، على سبيل المثال ، على خطوط المودم. في نفس الوقت ، يكون مقدار الحمل لنقل البيانات أقل من Modbus ASCII ، لأن طول الرسالة أقل.

مودبوس TCP


تشبه بنية الرزمة Modbus RTU ، ويتم تشفير البيانات أيضًا بتنسيق ثنائي ، وتعبئتها في حزمة TCP منتظمة للإرسال عبر شبكات IP. لا يتم تطبيق التحقق من التكامل المستخدم في Modbus RTU ، نظرًا لأن TCP لديه بالفعل آلية التحكم الخاصة به.

تنسيق الحزمة



حزمة التنسيقات لمختلف تطبيقات Modbus

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

ADU (وحدة بيانات التطبيق) - حزمة Modbus بأكملها مع كل الرؤوس ووحدات PDU والاختباري والعنوان والرموز. يختلف باختلاف تنفيذ البروتوكول.

PDU (وحدة بيانات البروتوكول) - الجزء الرئيسي من الحزمة ، وهو نفس الشيء بالنسبة لجميع تطبيقات البروتوكول. يحتوي على الحمولة نفسها.

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

المجموع الاختباري - خوارزمية تكامل الحزمة. مودبوس RTU و ASCII استخدام 2 بايت من المجموع الاختباري. يستخدم Modbus RTU خوارزمية CRC16 ، بينما يستخدم Modbus ASCII LRC8 أبسط وأقل موثوقية. في Modbus TCP ، لا يتم إضافة المجموع الاختباري إلى وحدة ADU حيث يتم التحقق من التكامل على مستوى TCP.

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

Modbus السجلات والوظائف


في نموذج مبسط ، تتكون بنية طلب Modbus من رمز الوظيفة (القراءة / الكتابة) ، والبيانات التي يجب قراءتها أو كتابتها. في الوقت نفسه ، تختلف رموز الوظائف لأنواع البيانات المختلفة. سنقوم بتحليل ماهية السجلات ووظائف العمل معهم.


  • المدخلات المنفصلة - المدخلات المنفصلة للجهاز للقراءة فقط. نطاق عناوين التسجيل: من 10001 إلى 19999. لديهم وظيفة "02" - قراءة مجموعة من السجلات
  • ملفات - مخرجات منفصلة من الجهاز ، أو القيم الداخلية. متاح للقراءة والكتابة. يتراوح نطاق عناوين التسجيل من 20001 إلى 29999. له وظائف: "01" - يقرأ مجموعة من السجلات ، "05" - يكتب سجل واحد ، "15" - يكتب مجموعة من السجلات
  • سجلات الإدخال - مدخلات الجهاز 16 بت. قراءة فقط. نطاق عناوين التسجيل: من 30001 إلى 39999. لديك وظيفة: "04" - قراءة مجموعة من السجلات
  • سجلات الاحتفاظ - مخرجات جهاز 16 بت ، أو قيم داخلية. متاح للقراءة والكتابة. نطاق عناوين التسجيل: من 40001 إلى 49999. لديك

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

أمثلة العمل


للحصول على مثال عن العمل مع بروتوكول Modbus TCP ، سنستخدم الأداة المساعدة modbus-cli الأبسط لوحدة التحكم ، المكتوبة بلغة Ruby. يجعل من السهل قراءة البيانات وكتابتها في سجلات Modbus.

دعونا نحاول قراءة حالة عدادات الحزم المرسلة على مفتاح صناعي Advantech EKI-5524SSI. تحتاج أولاً إلى تحديد عناوين السجلات التي تخزن المعلومات الضرورية ، لذلك نلقي نظرة على وثائق الجهاز. توجد أوصاف السجل في قسم جدول تعيين Modbus:


وصف قيم السجل في وثائق التبديل EKI

يمكن ملاحظة أن قيمة الحزم المرسلة لمنفذ واحد يتم تخزينها في أربعة سجلات ، وبالنسبة للمنفذ الأول فهذه هي السجلات من 38193 إلى 38197. ويرد أيضًا وصف لتنسيق تخزين البيانات ، ومنه يتم تخزين عدد صحيح من الحزم المرسلة بتنسيق سداسي عشري ، وسيتم تخزين قيمة 11223344 من الحزم مكتوب كـ 0xAB4130 ، من اليمين إلى اليسار.

تقديم طلب:

$ modbus read 192.168.0.17 38193 4 38193 0x0000 38194 0x0000 38195 0x0000 38196 0x3459 

قراءة أمر القراءة . يتفهم البرنامج نفسه أي أمر قراءة محدد يستخدم بناءً على عنوان السجل ، وفي حالتنا ، سيتم استخدام الأمر "04" لقراءة سجلات 16 بت.

192.168.0.17 - عنوان IP الخاص بالجهاز.

38193 - عنوان البداية للسجل.

4 - إزاحة نسبة إلى عنوان البداية. نقرأ أربعة سجلات للمنفذ 1 ، كما يلي من ورقة البيانات.

نحصل على إجابة تحتوي على قيم أربع سجلات. نرى أن عدد الحزم صغير: 0x3459 ، أي ، 13401 ، - تم تشغيل المفتاح مؤخرًا.

عيوب بروتوكول Modbus


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

  • لا يوفر البروتوكول مصادقة وتشفير البيانات المرسلة. لذلك ، عند استخدام Modbus TCP ، يجب استخدام أنفاق VPN إضافية.
  • لا يمكن للرقيق بدء نقل البيانات ، لذلك يجب على السيد أن يستطلع العبيد باستمرار
  • يتعذر على جهاز الرقيق اكتشاف فقدان الاتصال بـ Master. هذه المشكلة يتبع مباشرة من السابق.

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

مودبوس تمكين الأجهزة


تقدم Advantech مجموعة واسعة من المعدات الصناعية مع دعم بروتوكول Modbus لأي مهمة: الأتمتة والتحكم وجمع البيانات ونقلها.

ADAM-6000 و WISE-4000 - وحدات الإدخال / الإخراج عن بُعد



تسمح لك وحدات سلسلة ADAM-6000 و WISE-4000 بالتحكم عن بعد في المدخلات / المخرجات الرقمية والتناظرية باستخدام بروتوكول Modbus TCP. يستخدم للتحكم في الأجهزة الطرفية وجمع البيانات في وضع الرقيق. يمكن إقرانها بوحدة تحكم منطق قابلة للبرمجة ، أو الاتصال مباشرة بخادم SCADA. ⠀⠀⠀ ⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

EKI-1200 - بوابات Modbus لتحويل الواجهة



لتحويل بروتوكولات Modbus RTU / ASCII إلى TCP Modbus ، يتم استخدام بوابات Modbus. تحتوي أجهزة سلسلة EKI-1200 على ما يصل إلى أربعة واجهات RS-232/422/485 تسلسلية ، ومنفذان Ethernet. إنها تسمح لك بدمج الأجهزة مع البروتوكولات المختلفة في شبكة واحدة. على سبيل المثال ، قم بتوصيل جهاز تابع يدعم Modbus RTU فقط عبر واجهة RS-485 بقطعة شبكة TCP Modbus.

APAX-5000 ، ADAM-3600 ، WISE-5000 - أدوات التحكم الآلي


تدعم وحدات التحكم وظائف Modbus RTU كعبد / رئيسي و عميل / خادم Modbus TCP.



أمثلة التطبيق


نظام رصد الاحتباس الحراري


يدمج حل المراقبة Advantech بين برامج TPC-1070H و ADAM-6024 و ADAM-6050 و ADAM-6060 و WebAccess في خزانة الماكينات بجانب الأراضي الزراعية. من خلال الاتصال بمختلف الأجهزة الحساسة ، يمكن لوحدات ADAM-6000 تلقي البيانات البيئية في الوقت الحقيقي والتحكم في تبديل المعدات لضمان أن المسببة للاحتباس الحراري في البيئة المثلى لنمو النبات. بفضل الميزة الخاصة لـ Advantech ، منطق الحالة الرسومية (GCL) ، يمكن للمستخدمين تحديد قواعد منطق التحكم الخاصة بهم وتحميل هذه القواعد في وحدات الإدخال / الإخراج لشبكة إيثرنت IAM-6000 ، ثم تقوم الوحدات تلقائيًا بتنفيذ القواعد المنطقية مثل الوحدات المستقلة. وحدة التحكم. ميزة أخرى - يستخدم نظير إلى نظير (P2P) شبكة Ethernet الأكثر انفتاحًا ومرونة ليس فقط لتبسيط عملية التنفيذ بدون وحدة تحكم ، ولكن أيضًا لتوفير تكاليف الأجهزة.

ثم يتم نقل جميع البيانات المستلمة عبر الإيثرنت إلى جهاز كمبيوتر مع لوحة اللمس TPC-1070H. يتميز بنظام تبريد بدون مروحة ومتوافق مع اللوحة الأمامية مع IP65 ، يعتبر TPC-1070H تصميمًا متينًا وصغيرًا مناسبًا لبيئة التشغيل المتغيرة ، وقدراته الحاسوبية القوية يمكنها التعامل مع كميات كبيرة من البيانات. بالنسبة لإدارة الأجهزة ، تتيح Advantech WebAccess للمهندسين أو المديرين عرض نظام المراقبة ومراقبته وتكوينه عبر إنترانت أو الإنترنت باستخدام مستعرض ويب قياسي من أي جهاز ، بما في ذلك الأجهزة اللوحية والهواتف الذكية.



مراقبة نظام تسخين المياه بالطاقة الشمسية


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

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

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


All Articles