Tekstilkent Ticaret Merkezi, Oruç Reis Mah. Tekstilkent Cad. A15 Blok No:24, Esenler/İstanbul 0850 885 03 51 info@ogsotomasyon.com الموقع

ما هو Modbus TCP؟ الفرق عن RTU والاستخدام

Modbus، بروتوكول اتصال شائع منذ وقت طويل يُستخدم لتبادل البيانات بين الأجهزة الصناعية. أما Modbus TCP فهو نسخة هذا البروتوكول المنقولة على Ethernet وTCP/IP. بسبب بنيته البسيطة وكونه مفتوحًا ومدعومًا في أجهزة كل علامة تجارية تقريبًا، يُستخدم كثيرًا في المشاريع التي تحتاج إلى جمع معدّات مصنّعين مختلفين معًا.

المنطق الأساسي: العميل والخادم

يقوم Modbus على مبدأ الطلب-الرد (request/response). يسأل طرف، ويردّ الطرف الآخر. لا يوجد إرسال تلقائي للبيانات.

  • العميل (client / سابقًا master): الطرف الذي يبدأ الطلب.
  • عادةً PLC أو SCADA أو HMI.

  • الخادم (server / سابقًا slave): الطرف الذي يردّ على الطلب. المشغّل،
  • ومحلّل الطاقة، وحاكم الحرارة، وremote I/O.

في Modbus TCP يمكن للعميل الواحد الاتصال بأكثر من خادم في آنٍ واحد؛ ويمكن للخادم الواحد قبول أكثر من عميل. هذه مرونة مهمة مقارنةً بـ RTU الذي يعمل على خط تسلسلي.

نموذج البيانات: أربعة جداول

يحفظ Modbus البيانات في أربعة حقول منفصلة:

| الحقل | النوع | الوصول | الحجم | |—|—|—|—| | Coil | Bit | قراءة / كتابة | 1 bit | | Discrete Input | Bit | قراءة فقط | 1 bit | | Input Register | Word | قراءة فقط | 16 bit | | Holding Register | Word | قراءة / كتابة | 16 bit |

عمليًا يُستخدم holding register أكثر شيء. تُحفَظ معاملات المشغّل ومرجع السرعة وقيم القياس عادةً في هذا الحقل.

رموز الوظائف الشائعة

| الرمز | العملية | |—|—| | 01 | قراءة Coil | | 02 | قراءة Discrete input | | 03 | قراءة Holding register | | 04 | قراءة Input register | | 05 | كتابة Coil واحد | | 06 | كتابة Holding register واحد | | 15 | كتابة Coil متعدد | | 16 | كتابة Holding register متعدد |

رموز الوظائف التي يدعمها الجهاز محدّدة في مستنده الخاص؛ لا تدعم كل الأجهزة كل الرموز.

الفرق بين Modbus TCP وModbus RTU

| الموضوع | Modbus RTU | Modbus TCP | |—|—|—| | الطبقة الفيزيائية | خط تسلسلي RS-485 / RS-232 | Ethernet | | الطوبولوجيا | خط (bus)، بمقاومة إنهاء | شبكة Ethernet، بـ switch | | العنونة | عنوان slave بحجم 1 byte | عنوان IP + unit id | | التحقق من الأخطاء | CRC | تحقّق TCP الخاص | | التزامن | Master واحد | متعدد العملاء | | ترويسة الرسالة | لا يوجد | ترويسة MBAP (transaction، protocol، length، unit) |

في Modbus TCP لا يوجد حقل CRC؛ سلامة البيانات توفّرها طبقة TCP. تُضاف إلى الرسالة ترويسة MBAP. حقل *unit identifier* في هذه الترويسة يُستخدم — خصوصًا في الأنظمة التي تستخدم gateway — لاختيار الجهاز التسلسلي الخلفي.

منفذ Modbus TCP القياسي هو 502.

التباس العنونة — الخطأ الأكثر شيوعًا

يتداول في Modbus تمثيلان مختلفان للعنوان، وهذا أكثر موضوع يضيّع الوقت في التشغيل.

عنوان البروتوكول: يبدأ من 0. وهو القيمة الحقيقية المرسَلة على السلك.

التمثيل التقليدي (بخمسة أرقام): يبدأ من 1 ويحمل نوع الحقل كبادئة. تُعرَض الـ holding register في كتلة 4xxxx.

أي أن الـ register المكتوب في المستند “40001” هو على السلك عنوان بروتوكول 0. إذا كان مستند جهاز يستخدم التمثيل التقليدي والمكتبة في جانب PLC تستخدم عنوان البروتوكول، فينشأ إزاحة عنوان. إذا كانت تُقرأ قيم غير متوقّعة في التشغيل، فهذا أول مكان يجب التحقق منه.

البيانات بحجم 32 bit وترتيب البايت

الـ register في Modbus بحجم 16 bit. تُنقَل قيمة بحجم 32 bit (عدد صحيح طويل أو عدد بفاصلة عائمة) مقسومةً على register اثنين. وهنا يبرز سؤالان:

  • أي register يأتي أولًا — الـ word الأعلى أم الأدنى؟
  • كيف ترتيب البايت داخل الـ register؟

لأن المعيار لا يفرض إلزامًا كاملًا في هذا الشأن، يستخدم المصنّعون تطبيقات مختلفة. النتيجة: تُقرأ القيمة لكنها تخرج بلا معنى. الحل هو التحقق من ترتيب الـ word/byte في مستند الجهاز، وإجراء تبديل word (word swap) في جانب PLC عند اللزوم.

بالمثل، تُنقَل قيم القياس غالبًا كعدد صحيح مقيّس (مثلًا عشرة أضعاف القيمة الحقيقية). ومعامل التقييس موجود أيضًا في مستند الجهاز.

الأداء وتصميم الاستعلام

في Modbus TCP كل استعلام يعني ذهابًا وإيابًا. بدلًا من إجراء عدد كبير من استعلامات register مفردة، فإن القراءة المجمّعة لـ register متتالية في استعلام واحد تحسّن الأداء بوضوح. لذلك يُفضَّل أن تكون البيانات المراد قراءتها على الجهاز متجاورة من حيث العنوان.

عند تصميم دورة الاستعلام يجب اختيار قيم المهلة (timeout) وعدد المحاولات (retry) بشكل واقعي. المهلة القصيرة جدًا تنتج إنذارات خطأ لا داعي لها؛ والمهلة الطويلة جدًا تبطّئ دورة المسح كلها عند تعطّل جهاز.

حدوده

Modbus TCP ليس بروتوكولًا في الزمن الحقيقي. زمن الرد يعتمد على حركة الشبكة، وحِمل معالجة الجهاز، وكومة TCP؛ وهو غير مضمون. لذلك فهو غير مناسب للحركة المتزامنة، ووظائف الأمان السريعة، وحلقات التحكم قصيرة الدورة. في مثل هذه الحاجات تُستخدم بروتوكولات الزمن الحقيقي مثل EtherCAT أو Profinet IRT.

كما لا يوجد في البروتوكول تحقّق من الهوية ولا تشفير. لا يجب فتح أجهزة Modbus TCP مباشرةً على الشبكة المؤسسية أو الإنترنت، ويجب فصل شبكة الأتمتة.

أين يُفضَّل

  • الأنظمة التي تحتاج إلى جمع أجهزة علامات تجارية مختلفة معًا
  • قراءة أجهزة القياس مثل محلّل الطاقة والعدّاد وحاكم
  • الحرارة

  • مراقبة مرجع السرعة ومعلومة الحالة للمشغّلات
  • نقل البيانات إلى طبقة SCADA وإعداد التقارير
  • نقل أجهزة Modbus RTU القائمة إلى شبكة Ethernet عبر gateway

عائلات المنتجات ذات الصلة: PLC، HMI، مشغّل AC، Gateway، Ethernet Switch، وحدات الاتصال

Leave a Reply

Your email address will not be published. Required fields are marked *