مودبوس

مودبوس هو ناقل بيانات ميداني ، وهو بروتوكول لشبكات الحاسوب الصناعية. [ 1 ] صُمم في الأصل للاستخدام مع وحدات التحكم المنطقية القابلة للبرمجة (PLCs)، [ 2 ] ولكنه أصبح بروتوكول اتصال قياسيًا فعليًا للتواصل بين الأجهزة الإلكترونية الصناعية في مجموعة واسعة من النواقل والشبكات. [ 3 ] [ 1 ]
يحظى بروتوكول Modbus بشعبية واسعة في البيئات الصناعية لكونه متاحاً للجميع وخالياً من رسوم الترخيص . وقد طُوّر خصيصاً للتطبيقات الصناعية، وهو سهل النشر والصيانة نسبياً مقارنةً بالمعايير الأخرى، كما أنه لا يفرض قيوداً تُذكر على تنسيق البيانات المراد نقلها.
يستخدم بروتوكول Modbus خطوط الاتصال التسلسلي أو الإيثرنت أو مجموعة بروتوكولات الإنترنت كطبقة نقل . [ 1 ] يدعم Modbus الاتصال من وإلى أجهزة متعددة متصلة بنفس الكابل أو شبكة الإيثرنت. على سبيل المثال، يمكن توصيل جهاز لقياس درجة الحرارة وآخر لقياس الرطوبة بنفس الكابل، حيث يرسل كلا الجهازين القياسات إلى نفس الحاسوب عبر Modbus.
يُستخدم بروتوكول Modbus غالبًا لربط حاسوب الإشراف على المصنع/النظام بوحدة طرفية بعيدة (RTU) في أنظمة التحكم الإشرافي وجمع البيانات ( SCADA ). وتُستمد أسماء العديد من أنواع البيانات من أنظمة التحكم الصناعية لأجهزة المصانع، مثل منطق السلم نظرًا لاستخدامه في تشغيل المرحلات: يُطلق على خرج فيزيائي أحادي البت اسم ملف ، ويُطلق على مدخل فيزيائي أحادي البت اسم مدخل منفصل أو نقطة تلامس .
نُشرت هذه التقنية في الأصل عام 1979 من قِبل شركة موديكون (التي استحوذت عليها شركة شنايدر إلكتريك عام 1997). وفي عام 2004، نقلت الشركة حقوقها إلى منظمة مودبوس [ 4 ] ، وهي رابطة تجارية لمستخدمي وموردي الأجهزة المتوافقة مع بروتوكول مودبوس، والتي تدعو إلى استمرار استخدام هذه التقنية. [ 5 ]
وصف البروتوكول

تشمل معايير أو حافلات Modbus ما يلي: [ 1 ]
- بروتوكول TCP/IP عبر الإيثرنت
- الاتصال التسلسلي غير المتزامن في مجموعة واسعة من المعايير والتقنيات: EIA/TIA-232-E، EIA-422، EIA/TIA-485-A، الألياف، الترددات الراديوية،...
- MODBUS PLUS، شبكة تمرير الرموز عالية السرعة.

لدعم اتصال Modbus على الشبكة، تتضمن العديد من أجهزة المودم والبوابات تصميمات خاصة (انظر الرسم التخطيطي: بنية شبكة لاتصال Modbus ). قد تستخدم التطبيقات الاتصال السلكي أو اللاسلكي، كما هو الحال في نطاق ترددات ISM ، وحتى خدمة الرسائل القصيرة (SMS) أو خدمة الراديو العامة للبيانات (GPRS).
وحدة توزيع الطاقة ووحدة توزيع الطاقة المساعدة
يُعرّف بروتوكول Modbus العميل بأنه الكيان الذي يبدأ عملية إرسال أو استقبال لطلب مهمة محددة من مُستقبِل الطلب . [ 6 ] ويُطلق على مُستقبِل الطلب، الذي بدأ العميل العملية معه، اسم الخادم . [ 6 ] على سبيل المثال، عندما يتصل متحكم دقيق بمستشعر لقراءة بياناته عبر Modbus على شبكة سلكية، مثل ناقل RS485، فإن المتحكم الدقيق في هذا السياق هو العميل، والمستشعر هو الخادم. في المصطلحات السابقة، كان يُطلق على العميل اسم "الرئيسي" وعلى الخادم اسم "التابع".
يُعرّف بروتوكول Modbus وحدة بيانات البروتوكول (PDU) بشكل مستقل عن بروتوكولات الطبقات الأدنى في حزمة بروتوكولاته. ويتطلب ربط بروتوكول Modbus بحافلات أو شبكات محددة بعض الحقول الإضافية، والتي تُعرّف كوحدة بيانات التطبيق (ADU). تُنشأ وحدة بيانات التطبيق (ADU) بواسطة عميل داخل شبكة Modbus عند بدء معاملة. المحتويات هي: [ 7 ]
- وحدة بيانات البروتوكول = رمز الوظيفة + البيانات
- ADU = عنوان إضافي + PDU + فحص الأخطاء
يُطلق على ADU رسميًا اسم إطار Modbus من قبل منظمة Modbus، [ 7 ] على الرغم من أن الإطار يستخدم كوحدة بيانات في طبقة ربط البيانات في نموذج OSI و TCP/IP (بينما Modbus هو بروتوكول طبقة التطبيق).
يبلغ الحد الأقصى لحجم وحدة بيانات البروتوكول (PDU) 253 بايت. أما الحد الأقصى لحجم وحدة بيانات التطبيق (ADU) على شبكة RS232/RS485 فهو 256 بايت، بينما يبلغ 260 بايت مع بروتوكول TCP. [ 8 ]
يستخدم بروتوكول Modbus نظام Big-Endian لترميز البيانات، وذلك لتمثيل العناوين وحقول البيانات. وبالتالي، بالنسبة لقيمة 16 بت، يتم إرسال البايت الأكثر أهمية أولاً. على سبيل المثال، عندما تكون قيمة سجل 16 بت هي 0x1234، يتم إرسال البايت 0x12 قبل البايت 0x34. [ 8 ]
رمز الدالة هو بايت واحد يُحدد رمز الدالة المراد تنفيذها. رموز الدوال هي قيم عددية صحيحة، تتراوح من 1 إلى 255، ويُستخدم النطاق من 128 إلى 255 لاستجابات الاستثناءات.
يحتوي حقل البيانات في وحدة بيانات البروتوكول (PDU) على عنوان يتراوح من 0 إلى 65535 (لا يُخلط بينه وبين عنوان حقل العنوان الإضافي في وحدة بيانات التطبيق (ADU)). [ 9 ] يمكن أن يكون حقل البيانات في وحدة بيانات البروتوكول فارغًا، وفي هذه الحالة يكون حجمه 0. لن يطلب الخادم أي معلومات، ويحدد رمز الوظيفة الوظيفة المراد تنفيذها. إذا لم يحدث أي خطأ أثناء عملية التنفيذ، فسيتضمن حقل البيانات في استجابة وحدة بيانات التطبيق من الخادم إلى العميل البيانات المطلوبة، أي البيانات التي استلمها العميل سابقًا. في حال حدوث أي خطأ، سيرد الخادم برمز استثناء. [ 6 ]
معاملة مودبوس ووحدة توزيع الطاقة
تتضمن معاملة Modbus بين العميل والخادم ما يلي: [ 6 ] [ 10 ]
- الخطوة 1: يبدأ العميل طلبًا باستخدام وحدة بيانات البروتوكول (PDU) = رمز الوظيفة + طلب البيانات
- الخطوة الثانية: يستقبل الخادم الطلب من العميل. ثم يقرأ/يحلل الخادم رمز الوظيفة، ويحصل على عنوان حقل البيانات في وحدة بيانات البروتوكول (PDU)، ثم يحصل على قيمة حقل البيانات هذا، وأخيرًا ينفذ الإجراء بناءً على رمز الوظيفة. إذا لم يكن هناك خطأ خلال هذه الخطوات، فسيرد الخادم برمز الوظيفة = رمز الوظيفة + استجابة البيانات. طالما لم يكن هناك خطأ خلال هذه الخطوات، فسيكون رمز الوظيفة الذي يستجيب به الخادم هو نفسه رمز الوظيفة المرسل من العميل. في حالة وجود أي خطأ خلال هذه الخطوات، سيرد الخادم برمز الوظيفة = رمز وظيفة الاستثناء + رمز الاستثناء (راجع وحدة بيانات البروتوكول mb_excep_rsp_pdu الموضحة أدناه).
- الخطوة 3: يتلقى العميل الرد وينهي المعاملة.
وبناءً على ذلك، يحدد Modbus ثلاثة أنواع من وحدات بيانات البروتوكول (PDU): [ 8 ]
- وحدة بيانات طلب MODBUS، mb_req_pdu
- وحدة بيانات استجابة MODBUS، mb_rsp_pdu
- وحدة بيانات استجابة استثناء MODBUS، mb_excep_rsp_pdu
- mb_req_pdu = رمز الوظيفة (1 بايت) + بيانات الطلب (n بايت)
- يعتمد حجم حقل بيانات الطلب على رمز الوظيفة، ويتضمن عادةً قيمًا مثل قيم المتغيرات، وإزاحة البيانات، ورموز الوظائف الفرعية. [ 8 ]
- mb_rsp_pdu = رمز الوظيفة (بايت واحد) + بيانات الاستجابة (عدد n بايت)
- كما هو الحال في mb_req_pdu، يعتمد حجم حقل بيانات الاستجابة على رمز الوظيفة، ويتضمن عادةً قيمًا مثل قيم المتغيرات، وإزاحة البيانات، ورموز الوظائف الفرعية. [ 8 ]
- mb_excep_rsp_pdu = رمز دالة الاستثناء (بايت واحد) + رمز الاستثناء (بايت واحد)
- رمز دالة الاستثناء = رمز الدالة (بايت واحد) + 0x80. رمز دالة الاستثناء يساوي رمز الدالة، باستثناء أن البت الأكثر أهمية (MSB) فيه يتم تعيينه إلى 1.
- تم تعريف رمز الاستثناء (بايت واحد) لـ mb_excep_rsp_pdu في جدول رموز استثناءات MODBUS .
نموذج بيانات مودبوس
يُعرّف Modbus نموذج بياناته بناءً على سلسلة من الجداول ذات أربعة أنواع أساسية: [ 11 ]
| الجداول الأساسية | وصول | مقاس | سمات |
|---|---|---|---|
| المدخلات المنفصلة | R | بت واحد (0-1) | قراءة قيمة التشغيل/الإيقاف |
| ملف (مخرج منفصل) [ 12 ] | R/W | بت واحد (0-1) | قيمة تشغيل/إيقاف القراءة/الكتابة |
| سجل الإدخال | R | كلمات 16 بت (0–65,535) | اقرأ القياسات والحالات |
| سجل الحفظ | R/W | كلمات 16 بت (0–65,535) | قراءة/كتابة قيم التكوين |
بالنسبة لكل جدول من الجداول الرئيسية، يسمح البروتوكول باختيار 65536 عنصر بيانات بشكل فردي، وقد صُممت عمليات قراءة أو كتابة هذه العناصر لتشمل عناصر بيانات متتالية متعددة حتى حد أقصى لحجم البيانات يعتمد على رمز وظيفة المعاملة. [ 11 ]
رمز الدالة
يُعرّف بروتوكول Modbus ثلاثة أنواع من رموز الوظائف: العامة، والمُعرّفة من قِبل المستخدم، والمحجوزة. [ 13 ]
رموز الوظائف العامة
| نوع الدالة | اسم الدالة | رمز الدالة | تعليق | ||
|---|---|---|---|---|---|
| الوصول إلى البيانات | بت أكسس | المدخلات المنفصلة المادية | قراءة المدخلات المنفصلة | 2 | |
| أجزاء داخلية أو ملفات مادية | قراءة الملفات | 1 | |||
| كتابة ملف مفرد | 5 | ||||
| كتابة ملفات متعددة | 15 | ||||
| الوصول 16 بت | سجلات الإدخال المادية | قراءة سجلات الإدخال | 4 | ||
| السجلات الداخلية أو سجلات الإخراج المادية | قراءة سجلات الحفظ المتعددة | 3 | |||
| سجل حيازة فردي | 6 | ||||
| كتابة سجلات احتفاظ متعددة | 16 | > 1 | |||
| قراءة/كتابة سجلات متعددة | 23 | ||||
| سجل كتابة القناع | 22 | ||||
| اقرأ قائمة انتظار FIFO | 24 | ||||
| الوصول إلى سجلات الملفات | سجل قراءة الملف | 20 | |||
| سجل كتابة الملف | 21 | ||||
| التشخيص | قراءة حالة الاستثناء | 7 | رقم تسلسلي فقط | ||
| التشخيص | 8 | رقم تسلسلي فقط | |||
| احصل على عداد أحداث كوم | 11 | رقم تسلسلي فقط | |||
| سجل أحداث Get Com | 12 | رقم تسلسلي فقط | |||
| معرف خادم التقارير | 17 | رقم تسلسلي فقط | |||
| قراءة تعريف الجهاز | 43 | ||||
| آخر | نقل الواجهة المغلفة | 43 | |||
ملاحظة: تستخدم بعض المصادر مصطلحات تختلف عن المعيار؛ على سبيل المثال ، Force Single Coil بدلاً من Write Single Coil . [ 14 ]
رمز الوظيفة 01 (قراءة الملفات) كمثال على رمز الوظيفة العامة
يُتيح رمز الوظيفة 01 (قراءة الملفات) قراءة حالة ما بين 1 و2000 ملف من جهاز بعيد. تحتوي وحدة بيانات بروتوكول الطلب (mb_req_pdu) على بايتين لتحديد عنوان الملف الأول المراد قراءته (من 0x0000 إلى 0xFFFF)، وبايتين آخرين لتحديد عدد الملفات المراد قراءتها. تُحدد mb_req_pdu عنوان الملف بالفهرس 0، أي أن عنوان الملف الأول هو 0x0. عند التنفيذ الناجح، تُعيد mb_rsp_pdu بايتًا واحدًا لتسجيل رمز الوظيفة (0x01)، متبوعًا ببايت واحد لتحديد عدد بايتات البيانات المُعادة (n)، وهو عدد الملفات المطلوبة بواسطة mb_req_pdu، مقسومًا على 8 بتات لكل بايت، ومُقربًا لأعلى. يُمثل الجزء المتبقي من الاستجابة عدد بايتات البيانات المُحدد (n). [ 15 ] أي أن mb_req_pdu و mb_rsp_pdu لرمز الوظيفة 01 ستأخذ الشكل التالي: [ 15 ]
- mb_req_pdu:
- رمز الوظيفة: 0x01 (بايت واحد)
- عنوان البداية (عنوان الملف الأول المراد قراءته): من 0x0000 إلى 0xFFFF (بايتان)
- عدد الملفات المراد قراءتها: النطاق من 1 إلى 2000 (0x7D0) (2 بايت)
- mb_rsp_pdu:
- رمز الوظيفة: 0x01 (بايت واحد)
- عدد البايتات: 1 بايت (ن = عدد الملفات / 8، مقربة لأعلى)
- حالة الملف: n بايت
على سبيل المثال، ستكون mb_req_pdu و mb_rsp_pdu لقراءة حالة الملفات من 20 إلى 38 كما يلي: [ 16 ]
- mb_req_pdu:
- رمز الوظيفة: 0x01
- عنوان البداية - البايت الأعلى: 0x00
- عنوان البداية - البايت الأدنى: 0x13
- عدد المخرجات - البايت الأعلى: 0x00
- عدد المخرجات - البايت الأدنى: 0x13
- عنوان البداية (بايتان) هو 0x0013، (أو 19 بالنظام العشري) وهو الملف رقم 20.
- كمية المخرجات (2 بايت) هي 0x0013، (أو 19 بالنظام العشري) وهو ما يتوافق مع 19 قيمة لحالة الملفات من 20 إلى 38.
- mb_rsp_pdu:
- رمز الوظيفة: 0x01
- عدد البايتات: 0x03
- حالة المخرجات 27-20: 0xCD
- حالة المخرجات 35-28: 0x6B
- حالة المخرجات 38-36: 0x05
- بما أن هناك حاجة إلى 19 ملفًا (من 20 إلى 38)، يُستخدم 3 بايتات للإشارة إلى حالة الملف. لذا، فإن عدد البايتات هو 0x03. حالات الملفات من 20 إلى 27 هي 0xCD، أي 1100 1101 بالنظام الثنائي. بالتالي، الملف 27 هو البت الأكثر أهمية (MSb)، والملف 20 هو البت الأقل أهمية (LSb). وينطبق الأمر نفسه على الملفات من 28 إلى 35. أما بالنسبة للملفات من 36 إلى 38، فستكون الحالة 0x05، أي 0000 0101. حالة الملف 38 هي البت الثالث (من اليمين)، أي 1، وحالة الملف 37 هي 0، وحالة الملف 36 هي البت الأقل أهمية (LSb)، أي 1. جميع البتات الخمسة المتبقية على اليسار هي 0.
رموز الدوال المعرفة من قبل المستخدم
رموز الوظائف المُعرَّفة من قِبل المستخدم هي رموز وظائف يُحددها المستخدمون. يوفر بروتوكول مودبوس نطاقين من القيم لرموز الوظائف المُعرَّفة من قِبل المستخدم: من 65 إلى 72 ومن 100 إلى 110. من الواضح أن رموز الوظائف المُعرَّفة من قِبل المستخدم ليست فريدة. [ 13 ]
رموز الوظائف المحجوزة
رموز الوظائف المحجوزة هي رموز وظائف تستخدمها بعض الشركات لمنتجات قديمة، وهي غير متاحة للاستخدام العام. [ 13 ]
استجابات الاستثناءات
عندما يرسل العميل طلبًا إلى الخادم، يمكن أن يكون هناك أربعة أحداث محتملة لهذا الطلب: [ 17 ]
- إذا استقبل الخادم الطلب ونفذه بنجاح، فسيعيد الخادم استجابة عادية.
- إذا لم يتمكن الخادم من استقبال الطلب بسبب وجود خطأ في قناة الاتصال، فلن يستجيب الخادم للعميل. وسيواجه العميل حينها خطأ انتهاء مهلة الطلب.
- إذا استقبل الخادم الطلب واكتشف خطأً في قناة الاتصال (مثل خطأ التكافؤ، أو LRC، أو CRC)، فلن يستجيب الخادم للعميل. وسيواجه العميل حينها خطأ انتهاء مهلة الطلب.
- إذا تلقى الخادم الطلب ولم يتمكن من تنفيذه (على سبيل المثال، يطلب العميل قراءة سجل غير موجود)، فسيعيد الخادم استجابة استثناء إلى العميل للإشارة إلى طبيعة الخطأ.
تتضمن رسالة الاستجابة الاستثنائية حقلين آخرين عند مقارنتها برسالة الاستجابة العادية: [ 17 ]
- رمز الوظيفة: بت MSB الخاص برمز الوظيفة للاستثناء هو 1. هذا سيجعل رمز الوظيفة هذا أعلى بمقدار 0x80 من رمز وظيفة رسالة الطلب.
- البيانات: يُعيد الخادم رمز الاستثناء داخل حقل البيانات. يُحدد هذا الحقل طبيعة الخطأ.
جميع رموز استثناءات Modbus: [ 18 ]
| شفرة | نص | تفاصيل |
|---|---|---|
| 1 | وظيفة غير قانونية | رمز الدالة المستلم في الاستعلام غير معترف به أو غير مسموح به من قبل الخادم |
| 2 | عنوان بيانات غير قانوني | عنوان بيانات بعض أو كل الكيانات المطلوبة غير مسموح به أو غير موجود في الخادم |
| 3 | قيمة بيانات غير قانونية | لم يقبل الخادم القيمة |
| 4 | عطل في جهاز الخادم | حدث خطأ غير قابل للإصلاح أثناء محاولة الخادم تنفيذ الإجراء المطلوب |
| 5 | يُقرّ | لقد قبل الخادم الطلب ويقوم بمعالجته، ولكن الأمر يتطلب وقتًا طويلاً. يتم إرجاع هذه الاستجابة لمنع حدوث خطأ انتهاء المهلة في العميل. يمكن للعميل بعد ذلك إصدار رسالة " اكتمل برنامج الاستطلاع" لتحديد ما إذا كانت المعالجة قد اكتملت. |
| 6 | جهاز الخادم مشغول | الخادم مشغول بمعالجة أمر يستغرق وقتاً طويلاً؛ يجب على العميل إعادة المحاولة لاحقاً |
| 7 | إقرار سلبي | لا يمكن للخادم تنفيذ وظائف البرمجة؛ يجب على العميل طلب معلومات التشخيص أو معلومات الخطأ من الخادم. |
| 8 | خطأ في تكافؤ الذاكرة | رصد الخادم خطأ في التكافؤ في الذاكرة؛ يمكن للعميل إعادة محاولة الطلب |
| 10 | مسار البوابة غير متاح | مخصص لبوابات Modbus: يشير إلى وجود خلل في تكوين البوابة |
| 11 | فشل الجهاز المستهدف للبوابة في الاستجابة | مخصصة لبوابات Modbus: يتم إرسالها عندما يفشل الخادم في الاستجابة |
بروتوكول Modbus عبر الخط التسلسلي
يُعرّف معيار Modbus أيضًا بروتوكول Modbus عبر الخط التسلسلي، وهو بروتوكول يُستخدم في طبقة ربط البيانات من نموذج OSI، حيث يتم نقل بروتوكول طبقة تطبيق Modbus عبر ناقل تسلسلي . [ 19 ] بروتوكول Modbus عبر الخط التسلسلي هو بروتوكول رئيسي-تابع يدعم جهازًا رئيسيًا واحدًا وعدة أجهزة تابعة على الناقل التسلسلي. [ 20 ] مع بروتوكول Modbus على طبقة التطبيق، يُستخدم نموذج العميل / الخادم للأجهزة على قناة الاتصال. في Modbus عبر الخط التسلسلي، يُنفّذ دور العميل بواسطة الجهاز الرئيسي ، بينما يُنفّذ دور الخادم بواسطة الجهاز التابع . [ 20 ] [ 21 ]
يُخالف نظام التسمية المُعتمد في المنظمة الاستخدام الشائع المتمثل في وجود عدة عملاء وخادم واحد فقط. ولتجنب هذا الالتباس، تستخدم طبقة نقل RS-485 مصطلحي "عقدة" أو "جهاز" بدلاً من "خادم"، كما أن "العميل" ليس "عقدة". [ 21 ]
تستخدم منظمة Modbus مصطلح "العميل والخادم" لوصف اتصالات Modbus، والتي تتميز بالاتصال بين [جهاز (أجهزة) العميل، الذي يبدأ الاتصال ويرسل طلبات إلى جهاز (أجهزة) الخادم، الذي يعالج الطلبات ويعيد استجابة مناسبة (أو رسالة خطأ).
يمكن لحافلة تسلسلية لبروتوكول Modbus عبر خط تسلسلي أن تضم ما يصل إلى 247 جهازًا تابعًا تتواصل مع جهاز رئيسي واحد. لكل جهاز تابع عنوان فريد يتراوح من 1 إلى 247 (من 01 سداسي عشري إلى F7 سداسي عشري ). العناوين من 248 إلى 255 (من F8 سداسي عشري إلى FF سداسي عشري ) محجوزة ولا يجوز استخدامها. [ 22 ] لا يحتاج الجهاز الرئيسي إلى عنوان. [ 22 ] يبدأ الجهاز الرئيسي عملية الاتصال، فهو الوحيد القادر على بدء معاملة Modbus. لن يقوم أي جهاز تابع بإرسال أي بيانات أو تنفيذ أي إجراء دون طلب من الجهاز الرئيسي، ولا يمكن للأجهزة التابعة التواصل فيما بينها. [ 23 ]
في بروتوكول Modbus عبر خط تسلسلي، يُرسل الجهاز الرئيسي طلبات إلى الأجهزة التابعة في وضع الإرسال الأحادي أو وضع البث . في وضع الإرسال الأحادي ، يُرسل الجهاز الرئيسي طلبًا إلى جهاز تابع واحد بعنوان محدد. عند استلام الطلب وإتمامه، يُرسل الجهاز التابع رسالة إلى الجهاز الرئيسي. [ 22 ] في هذا الوضع، تتضمن معاملة Modbus رسالتين: طلب من الجهاز الرئيسي ورد من الجهاز التابع. يجب أن يكون لكل جهاز تابع عنوان فريد (من 1 إلى 247) ليتم مخاطبته بشكل مستقل في عملية الاتصال. [ 22 ] في وضع البث ، يُمكن للجهاز الرئيسي إرسال طلب إلى جميع الأجهزة التابعة باستخدام عنوان البث 0، [ 22 ] وهو العنوان المخصص لتبادلات البث (وليس عنوان الجهاز الرئيسي). يجب على الأجهزة التابعة قبول تبادلات البث ولكن لا يجب عليها الرد. [ 23 ] ينتج عن ربط وحدة بيانات البروتوكول (PDU) الخاصة ببروتوكول Modbus بالناقل التسلسلي لبروتوكول Modbus عبر خط تسلسلي وحدة بيانات بروتوكول Modbus للخط التسلسلي. [ 22 ]
وحدة بيانات خط Modbus التسلسلي = العنوان + وحدة بيانات + CRC (أو LRC)
مع وحدة بيانات البروتوكول = رمز الوظيفة + البيانات
- العنوان هو عنوان تابع
- يتم تعريف وحدة بيانات البروتوكول (PDU) بشكل مطابق لوحدة بيانات البروتوكول الخاصة ببروتوكول تطبيق Modbus.
- حقل فحص الأخطاء مع CRC/LRC: تعتمد طرق فحص الأخطاء على إصدارات بروتوكول MODBUS عبر الخط التسلسلي، سواء كان Modbus RTU أو Modbus ASCII .
على مستوى الطبقة الفيزيائية ، يُجري بروتوكول MODBUS عبر الخط التسلسلي اتصالاته على مستوى البتات باستخدام RS485 أو RS232 ، وتُعد واجهة TIA/EIA-485 ثنائية الأسلاك الطريقة الأكثر شيوعًا. كما تُستخدم واجهة RS485 رباعية الأسلاك. ويمكن أيضًا استخدام TIA/EIA-232-E (RS232)، ولكنها تقتصر على الاتصالات قصيرة المدى من نقطة إلى نقطة. [ 20 ] يحتوي بروتوكول MODBUS عبر الخط التسلسلي على نمطين للإرسال: RTU و ASCII ، وهما يُقابلان إصدارين من البروتوكول، يُعرفان باسم Modbus RTU و Modbus ASCII . [ 24 ]
Modbus RTU
يستخدم بروتوكول Modbus RTU (وحدة التحكم الطرفية عن بُعد)، وهو التطبيق الأكثر شيوعًا لبروتوكول Modbus، تمثيلًا ثنائيًا مضغوطًا للبيانات في عملية الاتصال. يتبع تنسيق RTU الأوامر/البيانات مع مجموع اختباري للتحقق من التكرار الدوري كآلية للتحقق من الأخطاء لضمان موثوقية البيانات. يجب إرسال رسالة Modbus RTU بشكل متواصل دون توقف بين الأحرف. تُفصل رسائل Modbus بفترات سكون. يُرسل كل بايت (8 بتات) من البيانات على شكل 11 بتًا: [ 3 ] [ 24 ]
- 1 بت البداية
- بيانات/رسالة 8 بت، يتم إرسال البت الأقل أهمية أولاً
- بت واحد للتكافؤ
- 1 بت إيقاف
الوضع الافتراضي هو التكافؤ الزوجي، بينما يمكن تطبيق التكافؤ الفردي أو عدم التكافؤ كخيارات إضافية. [ 24 ]
سيكون إطار Modbus RTU على النحو التالي: [ 25 ]
| عنوان العبد | وحدة توزيع الطاقة Modbus | CRC | |
|---|---|---|---|
| رمز الوظيفة | بيانات | ||
| 1 بايت | 1 بايت | 0 – 252 بايت | بايتان: بايت واحد منخفض CRC وبايت واحد عالي CRC |
تُعرف عملية حساب CRC على نطاق واسع باسم CRC-16-MODBUS، والتي تكون متعددة الحدود الخاصة بها هي x 16 + x 15 + x 2 + 1 (متعددة الحدود الجبرية السداسية العشرية العادية هي 8005و معكوسة A001). [ 26 ]
مثال على إطار Modbus RTU بالنظام الست عشري: 01 04 02 FF FF B8 80(حساب CRC-16-MODBUS للبايتات الخمسة من 01إلى FFيعطي 80B8، والذي يتم إرساله البايت الأقل أهمية أولاً).
لضمان سلامة الإطار أثناء الإرسال، يجب ألا تقل الفترة الزمنية بين إطارين عن زمن إرسال 3.5 حرف، وألا تزيد الفترة الزمنية بين حرفين متتاليين عن زمن إرسال 1.5 حرف. [ 25 ] على سبيل المثال، مع معدل البيانات الافتراضي 19200 بت/ثانية، تكون أزمنة إرسال 3.5 (t3.5) و1.5 (t1.5) حرفًا من 11 بت كما يلي:
للحصول على معدلات بيانات أعلى، توصي Modbus RTU باستخدام القيم الثابتة 750 ميكروثانية لـ t1.5 و 1.750 مللي ثانية لـ t3.5. [ 25 ]
مودبوس أسكي
يستخدم بروتوكول Modbus ASCII أحرف ASCII للتواصل. يعتمد تنسيق ASCII على مجموع اختباري للتحقق من التكرار الطولي . تُحاط رسائل Modbus ASCII بنقطتين رأسيتين (":"، قيمة ASCII هي 3A 16 ) وسطر جديد (CR/LF، قيم ASCII هي 0D 16 و0A 16 ). لا يلزم إرسال إطارات Modbus ASCII على دفعات كما هو الحال في Modbus RTU، حيث يُسمح بتأخير يصل إلى ثانية واحدة بين كل إرسال حرف. يُرسل كل حرف ASCII على شكل 10 بتات.
- 1 بت البداية
- حرف ASCII ذو 7 بت، يتم إرسال البت الأقل أهمية أولاً
- بت واحد للتكافؤ
- 1 بت إيقاف
الوضع الافتراضي هو التكافؤ الزوجي، بينما يمكن تطبيق التكافؤ الفردي أو عدم التكافؤ كخيارات إضافية.
يتضمن إطار Modbus ASCII ما يلي: [ 27 ]
| يبدأ | عنوان العبد | وحدة توزيع الطاقة Modbus | مركز موارد التعلم | نهاية | |
|---|---|---|---|---|---|
| رمز الوظيفة | بيانات | ||||
| حرف واحد (دائماً ":") | حرفان | حرفان | 0-252 × 2 حرف | حرفان | حرفان (دائماً CR/LF) |
العنوان، والوظيفة، والبيانات، وLRC هي قيم مشفرة بنظام ASCII السداسي العشري، حيث يتم ترميز كل بايت (8 بتات) من المعلومات كحرفين ASCII قابلين للقراءة البشرية من النطاقين 0-9 وA-F. على سبيل المثال، يتم ترميز قيمة البايت 122 ( 1111010 2 أو 7A 16 ) كحرفين ASCII، "7" و"A"، ويتم إرسالها كبايتين، 55(37 16 ، قيمة ASCII لـ "7") و 65(41 16 ، قيمة ASCII لـ "A").
يُحسب LRC كمجموع قيم 8 بت (باستثناء حرفي البداية والنهاية)، ثم يُعكس ( باستخدام المتمم الثنائي ) ويُشفّر كقيمة 8 بت. على سبيل المثال، إذا كانت قيم العنوان والوظيفة والبيانات هي 247 و3 و19 و137 و0 و10 على التوالي، فإن المتمم الثنائي لمجموعها (416) هو -416؛ وبعد تقليصه إلى 8 بتات، يصبح الناتج 96 (256 × 2 - 416 = 6016 ) ، مما يُعطي إطار ASCII التالي المكون من 17 حرفًا :F7031389000A60␍␊. يُستخدم LRC فقط كمجموع اختباري: لأنه يُحسب على البيانات المُشفّرة وليس على الأحرف المُرسلة، فإن خاصيته "الطولية" غير متاحة للاستخدام مع بتات التكافؤ لتحديد أخطاء البت الواحد.
رسائل Modbus على TCP/IP
Modbus TCP
Modbus TCP أو Modbus TCP/IP هو نوع من أنواع Modbus يستخدم للاتصالات عبر شبكات TCP/IP ، ويتصل عبر المنفذ 502. [ 28 ] لا يتطلب حساب مجموع التحقق، حيث توفر الطبقات الأدنى بالفعل حماية مجموع التحقق.
تتشابه تسمية Modbus TCP مع تسمية بروتوكول Modbus عبر خط التسلسل، حيث أن أي جهاز يرسل أمر Modbus هو "العميل" ويأتي الرد من "الخادم". [ 29 ]
يُطلق على وحدة البيانات الإضافية (ADU) الخاصة ببروتوكول Modbus TCP رسميًا اسم Modbus TCP/IP ADU من قِبل منظمة Modbus [ 30 ] ، ويُطلق عليها أيضًا اسم إطار Modbus TCP من قِبل جهات أخرى. [ 3 ]
MODBUS TCP/IP ADU = رأس بروتوكول تطبيق MODBUS + رمز الوظيفة + البيانات
رأس بروتوكول تطبيق MODBUS - هو الرأس المخصص المستخدم في TCP/IP لتحديد وحدة بيانات تطبيق MODBUS.
يحتوي رأس بروتوكول تطبيق MODBUS على الحقول التالية: [ 31 ]
| اسم | الحجم (بايت) | وظيفة |
|---|---|---|
| معرّف المعاملة | 2 | لمزامنة الرسائل بين الخادم والعميل |
| معرّف البروتوكول | 2 | 0 لبروتوكول Modbus/TCP |
| حقول الطول | 2 | عدد البايتات المتبقية في هذا الإطار |
| معرّف الوحدة | 1 | عنوان الخادم (255 إذا لم يُستخدم)، يُعامل كعنوان تابع في Modbus عبر خط تسلسلي |
يُستخدم مُعرِّف الوحدة مع أجهزة Modbus TCP التي تتكون من عدة أجهزة Modbus، مثل بوابات Modbus TCP إلى Modbus RTU. في هذه الحالة، يكون مُعرِّف الوحدة هو عنوان الخادم للجهاز الموجود خلف البوابة.
سيكون تنسيق إطار MODBUS TCP/IP ADU/Modbus TCP كالتالي: [ 31 ] [ 30 ]
| رأس بروتوكول تطبيق MODBUS | وحدة توزيع الطاقة Modbus | ||||
|---|---|---|---|---|---|
| معرّف المعاملة | معرّف البروتوكول | طول | معرّف الوحدة | رمز الدالة | بيانات |
| 2 بايت | 2 بايت | 2 بايت | 1 بايت | 1 بايت | ن بايت |
مثال على إطار Modbus TCP/IP ADU/Modbus TCP بالنظام الست عشري
12 34 00 00 00 06 01 03 00 01 00 01
0x12و0x34: مع مُعرّف المعاملة = 0x1234 (بايتان) كرقم فريد يتم تحديده بين عميل/خادم Modbus TCP، يكون البايت الأعلى لمُعرّف المعاملة هو 0x12 والبايت الأدنى لمُعرّف المعاملة هو 0x340x00و0x00: مُعرِّف البروتوكول - البايت العالي والبايت المنخفض0x00و0x06: طول البايت الأعلى والبايت الأدنى. يبلغ الطول 6 بايتات، ويتضمن: مُعرِّف الوحدة (عنوان الجهاز التابع) (بايت واحد)، رمز الوظيفة (بايت واحد)، البايت الأعلى لعنوان السجل المراد قراءته (بايت واحد)، البايت الأدنى لعنوان السجل المراد قراءته (بايت واحد)، والبيانات (بايتان = البايت الأعلى والبايت الأدنى لعدد السجلات المراد قراءتها).0x01: مُعرِّف الوحدة (عنوان الجهاز التابع)0x03: رمز الوظيفة (قراءة سجلات التخزين المتعددة)0x00و0x01: البايت الأعلى والبايت الأدنى من عنوان السجل المراد قراءته. عنوان السجل المراد قراءته في هذه الحالة هو0x0001.0x00و0x01: البايت الأعلى والبايت الأدنى لعدد السجلات المراد قراءتها. عدد السجلات المراد قراءتها في هذه الحالة هو0x0001(أي سجل واحد).
إصدارات أخرى من بروتوكول Modbus عبر TCP/IP
إصدارات أخرى من بروتوكول Modbus
إلى جانب بروتوكولات Modbus RTU و Modbus ASCII و Modbus TCP واسعة الانتشار، هناك العديد من المتغيرات لبروتوكولات Modbus:
- مودبوس بلس ( Modbus+ ، MB+ ، أو MBP ) - مودبوس بلس بروتوكول خاص بشركة شنايدر إلكتريك ، وهو غير منشور وغير مسجل ببراءة اختراع، وعلى عكس الأنواع الأخرى، يدعم الاتصالات المباشرة بين عدة عملاء. [ 34 ] على الرغم من اسمه، فإن مودبوس بلس [ 35 ] ليس نوعًا من مودبوس، بل هو بروتوكول مختلف يعتمد على تمرير الرموز . يتطلب معالجًا مساعدًا مخصصًا للتعامل مع دوران الرموز السريع الشبيه ببروتوكول HDLC . يستخدم مودبوس بلس كابلات زوجية ملتوية بسرعة 1 ميجابت/ثانية، ويتضمن عزلًا بالمحولات عند كل عقدة، مما يجعله يعمل عند الانتقال/الحافة بدلًا من الجهد/المستوى. يتطلب توصيل مودبوس بلس بجهاز كمبيوتر أجهزة خاصة، عادةً ما تكون بطاقة مصممة لحافلة ISA أو PCI أو PCMCIA . يُنفذ مودبوس بلس عادةً باستخدام شريحة مخصصة متاحة فقط لشركاء شنايدر.
- بيمكس مودبوس – امتداد لمودبوس القياسي مع دعم لبيانات التدفق والبيانات التاريخية. صُمم هذا النظام لشركة بيمكس للنفط والغاز لاستخدامه في التحكم بالعمليات، ولكنه لم يحظَ بانتشار واسع.
- مودبوس إنرون – امتداد آخر لمعيار مودبوس طورته شركة إنرون، يدعم متغيرات الأعداد الصحيحة والعشرية ذات 32 بت، بالإضافة إلى البيانات التاريخية وبيانات التدفق. تُحدد أنواع البيانات باستخدام عناوين قياسية. [ 36 ] تُستخدم البيانات التاريخية لتلبية معيار صناعي صادر عن معهد البترول الأمريكي (API) بشأن كيفية تخزين البيانات.
تتشابه نماذج البيانات واستدعاءات الدوال في المتغيرات الأربعة الأولى المذكورة أعلاه؛ ويكمن الاختلاف فقط في التغليف. ومع ذلك، فإن هذه المتغيرات غير متوافقة فيما بينها، وكذلك تنسيقات الإطارات.
تخطيط JBUS
ظهر لاحقًا بروتوكول آخر ذو صلة وثيقة ببروتوكول Modbus، وقد وضعته شركة April Automates، المتخصصة في تصنيع وحدات التحكم المنطقية القابلة للبرمجة (PLC ) ، نتيجةً لجهود تعاونية بين شركتي Renault Automation و Merlin Gerin et Cie الفرنسيتين عام 1985، وهو بروتوكول JBUS. لم تعد الفروقات بين Modbus وJBUS في ذلك الوقت (عدد الكيانات، محطات الخادم) ذات أهمية، إذ اختفى هذا البروتوكول تقريبًا مع سلسلة وحدات التحكم المنطقية القابلة للبرمجة من April، التي استحوذت عليها شركة AEG Schneider Automation عام 1994 ثم أوقفت إنتاجها. مع ذلك، بقي اسم JBUS مستخدمًا إلى حد ما.
يدعم JBUS رموز الوظائف 1 و2 و3 و4 و5 و6 و15 و16، وبالتالي جميع الكيانات المذكورة أعلاه، على الرغم من اختلاف الترقيم:
- يتطابق الرقم والعنوان: الكيان رقم x له العنوان x في إطار البيانات.
- وبالتالي، لا يتضمن رقم الكيان نوع الكيان. على سبيل المثال، الكيان الذي يحمل السجل رقم 40010 في Modbus سيحمل السجل رقم 9، الموجود في العنوان 9 في JBUS.
- الرقم 0 (وبالتالي العنوان 0) غير مدعوم. يجب ألا يُدخل الخادم أي بيانات حقيقية على هذا الرقم والعنوان، ويمكنه إرجاع قيمة فارغة أو إظهار خطأ عند الطلب.
القيود
- بما أن بروتوكول Modbus صُمم في أواخر سبعينيات القرن الماضي للتواصل مع وحدات التحكم المنطقية القابلة للبرمجة، فإن عدد أنواع البيانات يقتصر على تلك التي كانت وحدات التحكم المنطقية القابلة للبرمجة تدعمها في ذلك الوقت. ولا يدعم البروتوكول الكائنات الثنائية الكبيرة.
- لا توجد طريقة قياسية لعقدة ما للعثور على وصف لكائن بيانات، على سبيل المثال، لمعرفة أن قيمة السجل تمثل درجة حرارة تتراوح بين 30 و 175 درجة.
- بما أن بروتوكول Modbus هو بروتوكول عميل/خادم (كان يُعرف سابقًا باسم رئيسي/تابع)، [ 21 ] فلا توجد طريقة لجهاز ميداني للحصول على البيانات عبر آلية معالجة الأحداث (باستثناء عبر بروتوكول TCP/IP عبر الإيثرنت، والذي يُسمى Open-Mbus)، إذ يجب على عقدة العميل استطلاع كل جهاز ميداني بشكل دوري والبحث عن أي تغييرات في البيانات. وهذا يستهلك عرض النطاق الترددي ووقت الشبكة في التطبيقات التي قد يكون فيها عرض النطاق الترددي مكلفًا، كما هو الحال عبر وصلة راديو ذات معدل بت منخفض.
- يقتصر بروتوكول Modbus على معالجة 247 جهازًا على وصلة بيانات واحدة، مما يحد من عدد الأجهزة الميدانية التي يمكن توصيلها بمحطة رئيسية (مرة أخرى، يعد Ethernet TCP/IP استثناءً).
- لا يوفر بروتوكول Modbus نفسه أي حماية ضد الأوامر غير المصرح بها أو اعتراض البيانات. [ 37 ]
انظر أيضاً
مراجع
- 1 2 3 4 بروتوكول تطبيق MODBUS 2012 ، ص. 2.
- ↑ شركة موديكون 1996 ، "المقدمة"
- 1 2 3 دروري، بيل (2009). كتيب تقنيات التحكم في المحركات وأجهزة التحكم (PDF) (الطبعة الثانية ). مؤسسة الهندسة والتكنولوجيا . الصفحات 508 وما بعدها.
- ↑ "أسئلة وأجوبة حول مودبوس" . مودبوس . منظمة مودبوس . تم الاطلاع عليه في 1 نوفمبر 2012 .
- ↑ "نبذة عن منظمة مودبوس" . مودبوس . منظمة مودبوس، المحدودة . تم الاطلاع عليه بتاريخ 8 نوفمبر 2012 .
- 1 2 3 4 بروتوكول تطبيق MODBUS 2012 ، ص 4، "4.1 وصف البروتوكول"
- 1 2 بروتوكول تطبيق MODBUS 2012 ، ص 3، "4.1 وصف البروتوكول"
- 1 2 3 4 5 بروتوكول تطبيق MODBUS 2012 ، ص 5، "4.1 وصف البروتوكول"
- ↑ بروتوكول تطبيق MODBUS 2012 ، ص 7، "4.4 نموذج عنونة MODBUS"
- ↑ بروتوكول تطبيق MODBUS 2012 ، صفحة 9، "الشكل 9: مخطط حالة معاملة MODBUS"
- 1 2 بروتوكول تطبيق MODBUS 2012 ، ص 6، "4.3 نموذج بيانات MODBUS"
- ↑ "Modpoll Modbus Master Simulator" . modbusdriver.com . تم الاطلاع عليه بتاريخ 13-10-2023. "-t 0" تعني "نوع بيانات الإخراج المنفصل (الملف)".
{{cite web}}: CS1 maint: postscript ( link ) - 1 2 3 بروتوكول تطبيق MODBUS 2012 ، ص 10، "5 فئات رموز الوظائف"
- ↑ كلارك، جوردون؛ رايندرز، ديون (2004). بروتوكولات سكادا الحديثة العملية: DNP3، 60870.5 والأنظمة ذات الصلة . نيونس. الصفحات 47-51 . ISBN 0-7506-5799-5.
- 1 2 بروتوكول تطبيق MODBUS 2012 ، ص 11
- ↑ بروتوكول تطبيق MODBUS 2012 ، صفحة 12، "6.1 01 (0x01) قراءة الملفات"
- 1 2 بروتوكول تطبيق MODBUS 2012 ، ص 47، "7 استجابات استثناء MODBUS"
- ↑ بروتوكول تطبيق MODBUS 2012 ، ص 48، "7 استجابات استثناءات MODBUS"
- ↑ بروتوكول MODBUS عبر خط التسلسل 2006 ، ص 4
- 1 2 3 بروتوكول MODBUS عبر خط التسلسل 2006 ، ص 5
- ١ ٢ ٣ "منظمة مودبوس تستبدل نظام السيد والتابع بنظام العميل والخادم (بيان صحفي)" (ملف PDF) . modbus.org . ٩ يوليو ٢٠٢٠. تاريخ الاطلاع: ١١ يوليو ٢٠٢٣ .
- 1 2 3 4 5 6 بروتوكول MODBUS عبر خط التسلسل 2006 ، ص. 8
- 1 2 بروتوكول MODBUS عبر خط التسلسل 2006 ، ص. 7
- 1 2 3 بروتوكول MODBUS عبر خط التسلسل 2006 ، ص 12
- 1 2 3 بروتوكول MODBUS عبر خط التسلسل 2006 ، ص 13، "2.5.1.1 تأطير رسالة MODBUS RTU"
- ↑ بروتوكول MODBUS عبر خط التسلسل 2006 ، ص 39
- ↑ بروتوكول MODBUS عبر خط التسلسل 2006 ، ص 17، "2.5.2.1 تأطير رسائل MODBUS ASCII"
- ↑ مراسلة MODBUS على TCP/IP 2006 ، ص 6
- ↑ برات، جيروم (13 فبراير 2017). "دورة مكثفة: العميل/الخادم/الرئيسي/التابع" . برو سوفت تكنولوجي . تم الاسترجاع في 17 أكتوبر 2022 .
- 1 2 MODBUS Messaging on TCP/IP 2006 ، ص 4 ، "3.1.2 MODBUS On TCP/IP Application Data Unit"
- 1 2 MODBUS Messaging on TCP/IP 2006 ، ص 5، "3.1.3 وصف رأس MBAP"
- ↑ "مكتبة جافا مودبوس - نبذة عنها" . 2010. تم الاطلاع عليه بتاريخ 2017-02-07 .
- ↑ "خيارات التشخيص لاتصالات Modbus" . techdocs.wago.com . تم الاطلاع عليه بتاريخ 19-01-2026 .
- ↑ "ما الفرق بين Modbus و Modbus Plus؟" . شنايدر إلكتريك. 21 أغسطس 2004. تم الاطلاع عليه بتاريخ 7 فبراير 2017 .
- ↑ "Modbus Plus - Modbus Plus Network - نظرة عامة على المنتجات - شنايدر إلكتريك الولايات المتحدة" . Schneider-electric.com . تم الاطلاع عليه بتاريخ 3 يناير 2014 .
- ↑ "ببساطة مودبوس - حول مودبوس إنرون" . مودبوس ببساطة . تم الاسترجاع في 7 فبراير 2017 .
- ↑ بالمر؛ شينوي، سوجيت، محرران. (23-25 مارس 2009). حماية البنية التحتية الحيوية III . المؤتمر الدولي الثالث لمجموعة العمل 11 التابعة للاتحاد الدولي لمعالجة المعلومات. هانوفر، نيو هامبشاير: سبرينغر. ص 87. ISBN 978-3-642-04797-8.
المراجع
- بروتوكول تطبيق مودبوس (2012). مواصفات بروتوكول تطبيق مودبوس الإصدار 1.1b3 (ملف PDF) . منظمة مودبوس. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 25 أغسطس 2025. تاريخ الاطلاع: 10 أكتوبر 2023 .
- بروتوكول MODBUS عبر خط الاتصال التسلسلي (2006). دليل مواصفات وتنفيذ بروتوكول MODBUS عبر خط الاتصال التسلسلي، الإصدار 1.02 (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 10 سبتمبر 2025.
- بروتوكول مودبوس للمراسلة عبر TCP/IP (2006). دليل تطبيق بروتوكول مودبوس للمراسلة عبر TCP/IP الإصدار 1.0b (ملف PDF) . منظمة مودبوس. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 6 أغسطس 2025.
- شركة موديكون (1996). دليل مرجعي لبروتوكول مودبوس من موديكون/مودبوس عبر خط تسلسلي (للتطبيقات القديمة فقط) (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 25 أغسطس 2025.
روابط خارجية
رسمي
آخر
- مودبوس للفنيين الميدانيين على الموقع الإلكتروني modbusbacnet.com
- شرح بروتوكول Modbus في موقع RF Wireless World
- أتمتة المباني
- الحوسبة الصناعية
- شبكة إيثرنت الصناعية
- بروتوكولات الشبكة
