Modbus TCP vs RTU: ما الفرق؟
Modbus RTU يعمل عبر خطوط تسلسلية مثل RS485 ويُنهي كل إطار بـ CRC. أما Modbus TCP فيحمل أكواد الوظائف نفسها عبر شبكة Ethernet/IP على المنفذ 502، مع رأس MBAP بطول 7 بايت بدلاً من الـ CRC. السجلات وأكواد الوظائف ونموذج البيانات متطابقة، والذي يختلف هو طريقة النقل فقط. ويظهر أثر هذا الفرق أكثر ما يظهر عند إعداد البوابات (gateways) وفي اتصالات «RTU over TCP» المضبوطة بشكل خاطئ.
مقارنة سريعة
| Modbus RTU | Modbus TCP | |
|---|---|---|
| الطبقة الفيزيائية | تسلسلي: RS485 (وأحياناً RS232) | شبكة Ethernet / IP |
| العنونة | Slave ID من 1 إلى 247 | عنوان IP + unit ID |
| المنفذ | منفذ تسلسلي COM / tty | TCP 502 |
| التحقق من الأخطاء | CRC-16 في نهاية كل إطار | تحقق TCP نفسه؛ لا يوجد CRC في Modbus |
| الرأس | لا يوجد (slave ID + PDU + CRC) | MBAP: transaction ID وprotocol ID وlength وunit ID |
| عدد الـ masters | master واحد لكل خط | عدة clients في الوقت نفسه (حسب حد الجهاز) |
| السرعة المعتادة | 9600–115200 بت/ث | شبكة 10/100 ميغابت؛ زمن استجابة الجهاز هو العامل الحاسم |
| المسافة | نحو 1200 متر لكل مقطع | حسب البنية الشبكية |
| أجهزة نموذجية | عدادات، حساسات، محركات، انفرترات صغيرة | انفرترات، PLC، بوابات، محللات طاقة |
بنية الإطار: هنا يكمن الفرق الحقيقي
الجزء الأوسط مشترك بين النوعين: PDU (كود الوظيفة + البيانات). الذي يتغير هو ما يحيط به.
إطار RTU:
[Slave ID بايت واحد] [PDU] [CRC بايتان]
تفصل بين الإطارات فترة صمت لا تقل عن زمن 3.5 حرف، وبهذا الصمت يعرف المستقبل أن الإطار انتهى.
إطار TCP:
[Transaction ID 2] [Protocol ID 2 = 0] [Length 2] [Unit ID 1] [PDU]
لا يوجد CRC لأن TCP يتحقق من البيانات أصلاً، ويسمح الـ transaction ID للـ client بربط كل استجابة بطلبها.
لماذا يبقى الـ unit ID في TCP؟
الجهاز المزوّد بمنفذ Ethernet خاص به يتجاهل الـ unit ID عادةً (أو يتوقع 1 أو 255). لكن خلف بوابة TCP إلى RTU يحدد الـ unit ID أي slave على جانب RS485 ستُرسل إليه البوابة الطلب. إذا لم يستجب جهاز خلف بوابة، فابدأ بفحص الـ unit ID.
«Modbus RTU over TCP» ليس Modbus TCP
بعض محولات التسلسلي إلى Ethernet تنقل إطار RTU كما هو (مع الـ CRC وبدون رأس MBAP) عبر TCP، ويُسمى ذلك «RTU over TCP» أو «الوضع الشفاف».
- إذا اتصل به client من نوع Modbus TCP فسيُفتح اتصال TCP لكن لن تصل استجابة، أو تصل بيانات بلا معنى.
- الحل: حوّل المحوّل إلى وضع «Modbus TCP gateway»، أو استخدم خيار RTU over TCP في الـ client.
كون المنفذ 502 مفتوحاً لا يثبت أن الجهاز يتحدث Modbus TCP.
أيهما تختار ومتى؟
- أجهزة بسيطة كثيرة على مسافات قصيرة (عدادات، حساسات): RTU، فالتوصيل رخيص ولا يحتاج شبكة.
- الموقع يعمل بـ Ethernet أصلاً أو تحتاج معدل بيانات أعلى: TCP.
- مواقع مختلطة (مثل محطة شمسية): انفرترات على TCP، وعدادات وحساسات على RTU، وبينهما بوابة أو datalogger.
عملياً غالباً ما يكون الاختيار بيد الجهاز لا بيدك، والمهم أن تستطيع اختبار الجانبين.
اختبار الجانبين ببرنامج واحد
عند تركيب بوابة اعمل بهذا الترتيب:
- اختبر جانب RTU مباشرةً بمحوّل USB إلى RS485 (الإعدادات التسلسلية، slave ID، السجلات). راجع شرح اختبار Modbus RTU عبر RS485.
- ثم اختبر جانب TCP بالاتصال بعنوان IP البوابة على المنفذ 502 وقراءة السجل نفسه بالـ unit ID نفسه.
- إذا تطابقت القراءتان فالبوابة تعمل، وإذا اختلفتا فالمشكلة في إعداد الربط داخل البوابة.
يوفر Ranaliz iOT Tester دعم Modbus TCP وUDP وRTU التسلسلي في نافذة واحدة. يمكنك الانتقال من RTU إلى TCP في الجلسة نفسها ومقارنة النتيجتين جنباً إلى جنب. أكواد FC01–FC16 وخيارات endian وسجل المعاملات والتصدير إلى Excel/CSV كلها مجانية، على Windows وmacOS.
أسئلة شائعة
هل Modbus TCP أسرع من RTU؟
على مستوى الشبكة نعم، لكن زمن الاستعلام الفعلي يحدده غالباً زمن معالجة الجهاز. خط RTU متعدد الأجهزة بطيء أساساً لأن master واحداً يستعلم من كل جهاز بالتناوب.
ما المنفذ الذي يستخدمه Modbus TCP؟
TCP 502 افتراضياً، وبعض الأجهزة والبوابات تسمح بتغييره.
هل يدعم جهاز واحد TCP وRTU معاً؟
نعم. كثير من الانفرترات ومحللات الطاقة لديها منفذا Ethernet وRS485. خريطة السجلات عادةً واحدة، لكن تحقق من إزاحة العنوان في الجانبين.
ما هو Modbus ASCII؟
نوع تسلسلي أقدم يرسل البيانات كأحرف hex مع تحقق LRC. نادر اليوم، والتركيبات الجديدة تستخدم RTU.
المصادر
- Modbus Organization — MODBUS Application Protocol Specification V1.1b3
- Modbus Organization — MODBUS Messaging on TCP/IP Implementation Guide V1.0b
- Modbus Organization — MODBUS over Serial Line Specification and Implementation Guide V1.02