# شرح Modbus RTU: كيف تختبر اتصال RS485

> اختبر اتصال Modbus RTU عبر RS485 خطوة بخطوة: التوصيل، قطبية A/B، مقاومة الإنهاء، سرعة البود والـ parity، رقم الـ slave، وأخطاء CRC والـ timeout، باستخدام برنامج مجاني لنظامي Windows وmacOS.

Kaynak: https://ranaliz.com/ar/blog/modbus-rtu-rs485-test-ar · Yazar: Ahmet Korkmaz · Güncelleme: 2026-10-19


**اختبار Modbus RTU يعني الإجابة على خمسة أسئلة بالترتيب: هل التوصيل صحيح؟ هل إعدادات المنفذ التسلسلي مطابقة للجهاز؟ هل رقم الـ slave صحيح؟ هل نطلب كود الوظيفة والعنوان الصحيحين؟ هل تُقرأ القيمة بالشكل الصحيح؟** معظم بلاغات «الجهاز لا يستجيب» في الموقع تنتهي عند السؤال الأول أو الثاني. يشرح هذا الدليل كيف تغلق الأسئلة الخمسة في نحو 15 دقيقة باستخدام محوّل USB إلى RS485 وبرنامج اختبار Modbus مجاني.

## ما تحتاجه

| العنصر | ملاحظة |
|---|---|
| محوّل USB إلى RS485 | المحولات الرخيصة المبنية على FTDI أو CH340 تكفي. ثبّت التعريف أولاً. |
| كابل مزدوج مجدول (twisted pair) | يُفضّل المحجوب، مع تأريض الحجب من طرف واحد فقط. |
| مقاومتان 120 أوم | للإنهاء في طرفي الخط. كثير من الأجهزة توفرها عبر مفتاح DIP. |
| دليل الجهاز | فيه سرعة البود والـ parity ورقم الـ slave وخريطة السجلات. |
| برنامج اختبار Modbus RTU | مثل [Ranaliz iOT Tester](https://ranaliz.com/ar/product/iot-tester) المجاني (Windows وmacOS). |

## الخطوة 1: افحص التوصيل والقطبية

RS485 خط تفاضلي بسلكين. أكثر الأعطال شيوعاً هو **عكس قطبية A/B**، فبعض المصنّعين يسمّي A «+» وآخرون «−»، وقد تجد أيضاً تسميات مثل D+/D− وD0/D1 وTX+/TX−.

- لا توجد استجابة إطلاقاً؟ **بدّل A وB** أولاً، فهذا لا يضر دوائر RS485.
- مدّد الخط على شكل **سلسلة (daisy chain)**. التوصيل النجمي والتفرعات الطويلة تسبب انعكاسات.
- ركّب مقاومة الإنهاء 120 أوم **في الطرفين الفعليين فقط**، وليس على الأجهزة في المنتصف.
- المقطع القياسي يستهدف 32 حملاً ونحو 1200 متر، وتقل المسافة الآمنة مع ارتفاع سرعة البود.

## الخطوة 2: طابق إعدادات المنفذ التسلسلي

يجب أن يستخدم الطرفان **نفس سرعة البود والـ parity وبتات البيانات وبتات التوقف**. أي اختلاف يعني عدم وجود استجابة أو أخطاء CRC.

| المعامل | القيمة الشائعة | ملاحظة |
|---|---|---|
| Baud | 9600 أو 19200 | القيمة الافتراضية في مواصفة Modbus هي 19200 |
| Data bits | 8 | دائماً 8 في RTU |
| Parity | Even أو None | الافتراضي في المواصفة Even |
| Stop bits | 1 مع parity / 2 بدونها | عملياً تستخدم أجهزة كثيرة 8N1 |

في Windows يظهر المنفذ مثل COM3، وفي macOS مثل /dev/tty.usbserial-…. افصل المحوّل وأعد توصيله لتعرف أي منفذ هو الجديد.

## الخطوة 3: تأكد من وجود master واحد فقط

في خط Modbus RTU يتحدث **master واحد فقط**. إذا كان datalogger أو PLC أو SCADA يستعلم بالفعل، فستتصادم طلبات برنامج الاختبار مع حركته، والنتيجة timeout وأخطاء CRC عشوائية. افصل الـ master الحالي أو أوقفه أثناء الاختبار.

## الخطوة 4: رقم الـ slave وأول قراءة

أدخل أربع قيم في برنامج الاختبار:

1. **Slave ID:** من 1 إلى 247، والقيمة الافتراضية غالباً 1.
2. **كود الوظيفة:** عادةً **FC03** (holding registers) أو **FC04** (input registers) للقياسات.
3. **عنوان البداية:** من دليل الجهاز. انتبه: الدليل الذي يذكر «40001» يقصد غالباً العنوان **0** في البروتوكول.
4. **العدد:** من 1 إلى 10 سجلات تكفي في المحاولة الأولى.

إذا وصلت استجابة فالاتصال يعمل، وكل ما بعد ذلك مسألة **تفسير بيانات** وليس مسألة اتصال.

## الخطوة 5: فسّر القيمة بشكل صحيح

القيم ذات 32 بت (float وuint32) تمتد على سجلين، والأجهزة تختلف في ترتيب الكلمات. إذا رأيت أرقاماً كبيرة بلا معنى:

- غيّر نوع البيانات بين **float32 / int32 / uint32**.
- جرّب **word swap** (CDAB) و**byte swap**.
- راجع **معامل المقياس** في الدليل (×0.1 أو ×0.01).

مثال: جهد 230.4 فولت يظهر «2304» هو قيمة صحيحة بمعامل 0.1.

## الأعطال الشائعة ومعناها

| العَرَض | السبب المحتمل |
|---|---|
| لا استجابة (timeout) | A/B معكوسة، baud أو parity خاطئة، slave ID خاطئ، منفذ COM خاطئ |
| أخطاء CRC | اختلاف parity أو stop bits، غياب الإنهاء، ضوضاء، master ثانٍ |
| timeout متقطع | master ثانٍ على الخط، كابل طويل جداً، توصيل نجمي |
| Exception 02 | العنوان غير موجود، غالباً إزاحة بمقدار واحد |
| Exception 01 | كود الوظيفة غير مدعوم (جرّب FC04 بدل FC03) |
| قيم بلا معنى | نوع بيانات أو ترتيب كلمات أو مقياس خاطئ |

لشرح كل أكواد الاستثناء راجع [Modbus exception codes](https://ranaliz.com/en/blog/modbus-exception-codes) (بالإنجليزية).

## اختبار RS485 مع Ranaliz iOT Tester

[Ranaliz iOT Tester](https://ranaliz.com/ar/product/iot-tester) تطبيق سطح مكتب مجاني يختبر Modbus RTU عبر المنفذ التسلسلي:

- **الإعدادات التسلسلية:** baud وparity وstop bits والـ timeout وفاصل الاستعلام حسب الجهاز.
- **FC01–FC16:** قراءة coils وdiscrete inputs وholding وinput registers، وكتابة مفردة ومتعددة.
- **العرض:** قيمة خام، int/uint/float، hex، ثنائي، ASCII، مع big/little وswapped endian.
- **السجلات:** سجل المعاملات وتصدير إلى Excel/CSV.

ويحتوي التطبيق نفسه على Modbus TCP وIEC-104 وMQTT. بعد التحقق من جانب RS485 يمكنك الانتقال إلى جانب TCP في البوابة دون تثبيت برنامج آخر. أما القراءة المستمرة والإرسال إلى السحابة فمهمة مختلفة يقوم بها [Ranaliz Datalogger](https://ranaliz.com/ar/product/datalogger).

## أسئلة شائعة

### هل RS485 وModbus RTU الشيء نفسه؟

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

### كم جهازاً يمكن توصيله على خط RS485 واحد؟

32 جهازاً بالحمل القياسي، وأكثر مع مستقبلات ربع أو ثُمن حمل. أما عنونة Modbus فمحدودة بـ 247 slave.

### ماذا يحدث بدون مقاومة إنهاء؟

مع كابل قصير وسرعة منخفضة يعمل غالباً. مع خطوط طويلة وسرعات أعلى تسبب الانعكاسات أخطاء CRC وtimeout متقطعاً.

### ما البرنامج المناسب لاختبار Modbus RTU؟

Ranaliz iOT Tester خيار مجاني بإصدارات جاهزة لـ Windows 10/11 وmacOS على Apple Silicon، ولا يحتاج مفتاح ترخيص. راجع أيضاً [برنامج Modbus tester المجاني](https://ranaliz.com/ar/blog/free-modbus-tester-ar).

## المصادر

- Modbus Organization — MODBUS over Serial Line Specification and Implementation Guide V1.02
- TIA/EIA-485-A — Electrical Characteristics of Generators and Receivers for Use in Balanced Digital Multipoint Systems
