دليل بروتوكول تطبيق MODBUS V1.1b3 للأتمتة الصناعية
August 18, 2024 2315 التعليقاتتنزيل مواصفة بروتوكول تطبيق MODBUS

نظرة عامة على MODBUS V1.1b3
يشرح MODBUS V1.1b3 بروتوكول طبقة تطبيق واسع الاستخدام في اتصالات الأتمتة الصناعية. يعتمد البروتوكول على نموذج بسيط للطلب والرد، حيث يبدأ العميل المعاملة، ثم يعيد الخادم البيانات المطلوبة أو يؤكد تنفيذ الإجراء أو يرسل استجابة استثناء عند حدوث مشكلة. وبما أن البروتوكول يعمل في طبقة التطبيق، يمكن مواءمة بنية رسائله مع الروابط التسلسلية، وشبكات Ethernet TCP/IP، والاتصال اللاسلكي، والألياف الضوئية، وشبكات البوابات المختلطة.
تكمن ميزته المستمرة في هيكل مستقر وسهل التنفيذ يتيح لوحدات PLC، وواجهات HMI، والمشغلات، ووحدات الإدخال/الإخراج، والبوابات، وأجهزة القياس، وقارئات RFID قارئات، وغيرها من أجهزة الأتمتة تبادل بيانات التشغيل دون الحاجة إلى مكدس بروتوكولات معقد. في كثير من المشاريع الصناعية، يستخدم المهندسون MODBUS لقراءة حالة الآلات، وكتابة قيم التحكم، وجمع بيانات السجلات، وتشخيص مشكلات الاتصال، ودمج معدات من مصنعين مختلفين.
كيف ينظم البروتوكول الرسائل
تبدأ معاملة MODBUS عندما ينشئ العميل وحدة بيانات التطبيق. وفي قلب الرسالة توجد وحدة بيانات البروتوكول، أو PDU. تكون PDU مستقلة عن طبقة الاتصال الأساسية، وتحتوي عادةً على كود وظيفة بطول بايت واحد يتبعه محتوى بيانات يختلف حسب الوظيفة. وعند ربط MODBUS بناقل أو شبكة محددة، تصبح PDU جزءاً من ADU أكبر، وقد تُضاف إليها عناصر مثل عنوان الخادم، أو حقل فحص الأخطاء، أو ترويسة MBAP وفقاً لطريقة النقل المستخدمة.
يحدد كود الوظيفة العملية التي يجب على الخادم تنفيذها. فعلى سبيل المثال، قد يطلب العميل حالة التشغيل/الإيقاف للملفات، أو يقرأ سجلات الإدخال، أو يكتب سجل احتفاظ واحداً، أو يكتب عدة ملفات، أو يحصل على معلومات تعريف الجهاز. إذا كان الطلب صحيحاً وكان الخادم قادراً على تنفيذ العملية، تكرر الاستجابة كود الوظيفة وتعيد البيانات المتوقعة أو تأكيد التنفيذ. أما إذا حدثت مشكلة، فتستخدم الاستجابة كود وظيفة استثناء وكود استثناء، ليتمكن تطبيق العميل من تحديد ما إذا كان يجب إعادة المحاولة أو إطلاق إنذار أو تسجيل العطل أو التحول إلى حالة آمنة.
نموذج البيانات والعنونة والترميز
يحدد MODBUS V1.1b3 نموذج بيانات منطقياً يعتمد على أربع مناطق رئيسية للكائنات: المدخلات المتقطعة، والملفات، وسجلات الإدخال، وسجلات الاحتفاظ. المدخلات المتقطعة هي قيم أحادية البت للقراءة فقط، والملفات قيم أحادية البت للقراءة والكتابة، وسجلات الإدخال كلمات 16 بت للقراءة فقط، أما سجلات الاحتفاظ فهي كلمات 16 بت للقراءة والكتابة. هذا النموذج عام عن قصد؛ إذ يمكن لمصنع الجهاز ربطه بذاكرة التطبيق الخاصة به، بينما يستخدم العميل وظائف MODBUS القياسية للوصول إلى البيانات المتاحة.
تفصل المواصفة أيضاً بين مراجع البيانات المنطقية وعناوين الذاكرة الفعلية. في نموذج بيانات MODBUS، قد تُرقم العناصر من 1 إلى n، لكن داخل PDU تكون العناوين مبنية على الصفر ويمكن أن تمتد من 0 إلى 65535. هذا الفرق مهم أثناء تطوير البرمجيات، لأن رقم السجل المعروض للمشغل قد يختلف بمقدار واحد عن عنوان PDU الفعلي. لذلك تبقى وثائق الشركة المصنعة للجهاز ضرورية لضمان تكامل موثوق.
يستخدم MODBUS ترميز big-endian للكميات متعددة البايت. فبالنسبة إلى قيمة 16 بت مثل 0x1234، يُرسل البايت الأعلى أهمية قبل البايت الأقل أهمية. تساعد هذه القاعدة في جعل التوافق البيني أكثر قابلية للتنبؤ عند تبادل قيم السجلات بين معدات من موردين مختلفين. ومع ذلك، يحتاج المهندسون في التطبيقات الواقعية إلى التأكد من طريقة حزم الأعداد الصحيحة 32 بت، وقيم الفاصلة العائمة، والقيم المركبة الخاصة بالمورد عبر عدة سجلات، لأن هذه الاتفاقيات على مستوى التطبيق قد تختلف.
أكواد الوظائف وتكامل الأجهزة عملياً
تمثل أكواد الوظائف تعريفات الخدمات في MODBUS. تشمل الأكواد العامة الشائعة قراءة الملفات، وقراءة المدخلات المتقطعة، وقراءة سجلات الاحتفاظ، وقراءة سجلات الإدخال، وكتابة ملف واحد، وكتابة سجل واحد، وكتابة عدة ملفات، وكتابة عدة سجلات. وتدعم أكواد أخرى التشخيص، وسجلات الملفات، وقوائم FIFO، ونقل الواجهة المغلف، وتعريف الجهاز. تمنح هذه الخدمات المطورين مجموعة أدوات مدمجة لبناء واجهات المعدات دون إلزام كل جهاز باستخدام تصميم الذاكرة الداخلية نفسه.
في أنظمة RFID أو أنظمة التعريف، قد يظهر MODBUS داخل بوابة، أو متحكم صناعي، أو لوحة تحكم دخول، أو محطة جمع بيانات، أو واجهة على جانب الآلة. فعلى سبيل المثال، يمكن لخط إنتاج أن يستخدم سجلات MODBUS لعرض حالة القارئ، وأوامر التشغيل، وحالات الهوائيات، وأعلام الإنذار، أو قيم العد. وقد يجمع نظام مستودعات بين اتصال PLC ومحطة ماسح الباركود، بينما قد يربط مشروع تحكم بالدخول البوابات والحساسات ومحطات التحكم في الوصول عبر متحكم يتبادل كلمات الحالة وبتات التحكم.
لا يعتمد تكامل MODBUS الجيد على إرسال كود الوظيفة الصحيح فقط. يجب على المهندسين التحقق من ملف النقل، وقيمة المهلة الزمنية، ومعرّف الوحدة، والحد الأقصى لكمية البيانات في كل طلب، وخريطة السجلات، وترتيب البايت، وسلوك معالجة الأخطاء، وما إذا كان الجهاز يدعم الوظائف العامة المحددة التي يتطلبها التطبيق. في الشبكات التسلسلية، تُعد سرعة baud، والتكافؤ، وعنوان التابع، وإنهاء الخط، والتحكم في الضوضاء عوامل حاسمة أيضاً. أما في شبكات MODBUS TCP، فينبغي مراعاة المنفذ 502، وتوجيه IP، وسياسات جدار الحماية، وسلوك العملاء المتزامنين.
لماذا لا يزال MODBUS V1.1b3 مهماً
يظل MODBUS V1.1b3 مهماً لأنه يوثق بروتوكول التطبيق بطريقة مستقرة وواضحة ومفيدة مباشرة لفرق الهندسة. ويجعل تصميمه المعتمد على PDU مناسباً للبوابات وهندسات الأتمتة المختلطة. كما أن نموذج البيانات بسيط بما يكفي للأجهزة المدمجة، ومرن بما يكفي لأنظمة الإشراف والتحكم. وتساعد استجابات الاستثناء برامج العميل على اكتشاف الوظائف غير القانونية، والعناوين غير الصحيحة، والقيم الخاطئة، وإخفاقات جانب الخادم.
بالنسبة إلى المصنعين ومتكاملي الأنظمة، يساعد فهم هذه المواصفة على تقليل أخطاء التشغيل الأولي. فهي توضح سبب فشل قراءة سجل احتفاظ، ولماذا قد لا يتطابق رقم السجل في الدليل مع عنوان PDU، ولماذا تكون بعض أكواد الوظائف مخصصة للخطوط التسلسلية فقط، ولماذا تكون استراتيجية المهلة الزمنية ضرورية عندما لا يرد الجهاز. وبالنسبة إلى المشترين الذين يقارنون أجهزة الأتمتة، يمكن أن يكون دعم MODBUS مؤشراً على أن المنتج أسهل في الربط مع PLC وأنظمة SCADA والحواسيب الصناعية ووحدات البوابات.
أسئلة شائعة حول MODBUS V1.1b3
ما استخدامات MODBUS V1.1b3؟
يُستخدم MODBUS V1.1b3 لتحديد كيفية تبادل أجهزة الأتمتة للرسائل على مستوى التطبيق. فهو يشرح بنى الطلب والاستجابة، وأكواد الوظائف، وكائنات البيانات، وقواعد العنونة، واستجابات الاستثناء. يستخدمه المهندسون عند دمج PLC وHMI والحساسات والمشغلات والبوابات والمتحكمات وأجهزة التعريف التي تحتاج إلى طريقة يمكن التنبؤ بها لقراءة بيانات التشغيل أو كتابتها.
هل MODBUS بروتوكول اتصال تسلسلي فقط؟
لا. بدأ MODBUS كمعيار اتصال تسلسلي، لكن بروتوكول التطبيق يمكن ربطه بعدة وسائط نقل. تصف المواصفة طبقة التطبيق وبنية PDU الخاصة بها، بينما تنطبق قواعد تنفيذ منفصلة على الاتصال عبر الخط التسلسلي، وTCP/IP عبر Ethernet، ووسائط أخرى. لهذا السبب يمكن أن يعمل MODBUS في شبكات RS485 القديمة وكذلك في الأنظمة الحديثة القائمة على Ethernet.
ما الفرق بين MODBUS PDU وADU؟
PDU هي وحدة بيانات البروتوكول الأساسية، وتحتوي على كود الوظيفة إضافة إلى البيانات التابعة للوظيفة. أما ADU فهي وحدة بيانات التطبيق الكاملة المستخدمة على وسيط نقل محدد. وتقوم بتغليف PDU بحقول مرتبطة بالنقل، مثل عنوان الخادم وCRC على الروابط التسلسلية، أو ترويسة MBAP في MODBUS TCP.
لماذا تبدو عناوين سجلات MODBUS أحياناً مختلفة بمقدار واحد؟
يحدث ذلك لأن نموذج بيانات MODBUS قد يصف العناصر على أنها مرقمة من 1 إلى n، بينما تستخدم PDU عنونة مبنية على الصفر. فقد يُخاطب السجل المعروض للمستخدمين برقم 40001 على أنه 0 في الطلب الفعلي، وذلك حسب دليل الجهاز. لذلك يجب على متكاملي الأنظمة اتباع خريطة السجلات الخاصة بالمورد دائماً والتأكد مما إذا كانت العناوين مكتوبة بصيغة المرجع أم بصيغة PDU.
ما هي استجابات الاستثناء في MODBUS؟
تخبر استجابة الاستثناء العميل بأن الطلب تم استلامه لكنه لا يمكن تنفيذه بالشكل المطلوب. يعيد الخادم كود الوظيفة الأصلي مع ضبط البت الأعلى أهمية، متبوعاً بكود الاستثناء. وتشمل الأسباب الشائعة الوظائف غير المدعومة، أو عناوين البيانات غير الصالحة، أو القيم غير الصحيحة، أو حالات مؤقتة على جانب الخادم تمنع التنفيذ الطبيعي.
هل يحدد MODBUS تخطيط الذاكرة الداخلي لكل جهاز؟
لا. يحدد MODBUS نموذج بيانات وطريقة وصول قياسيين، لكن الربط بين هذا النموذج وذاكرة التطبيق الداخلية للجهاز يظل خاصاً بالمورد. قد يحتفظ جهاز ما بالملفات والمدخلات والسجلات في كتل منفصلة، بينما قد يضعها جهاز آخر فوق منطقة بيانات واحدة. لذلك تُعد وثائق الجهاز ضرورية للتنفيذ الصحيح.
ما الذي يجب فحصه قبل استخدام MODBUS في مشروع حقيقي؟
قبل النشر، يجب التأكد من نوع النقل، وأكواد الوظائف المدعومة، وصيغة العنوان، وحدود كمية السجلات، وترتيب البايت، وإعدادات المهلة الزمنية، واستراتيجية معالجة الاستثناءات. وبالنسبة إلى الشبكات التسلسلية، يجب أيضاً فحص عنوان التابع، وسرعة baud، والتكافؤ، والأسلاك، والتدريع، والإنهاء. أما في شبكات Ethernet، فيجب التحقق من الوصول إلى منفذ TCP، وإعدادات IP، وتوجيه البوابة، وكيفية تعامل الجهاز مع عدة عملاء.



