يعتمد معدل تحديث بيانات Modbus على عدة معلمات غير واضحة. في مرحلة التصميم ، تنشأ المشكلة حول كيفية تقييم سرعة خط واجهة مستقبلي. في هذه المقالة ، نعتبر العوامل التي تؤثر على سرعة تحديث البيانات على Modbus RTU ، وإجراء بعض الحسابات القياسية ، وفي نهاية المقال سيكون هناك رابط إلى آلة حاسبة على الويب لسرعة خط Modbus RTU.لا يزال Modbus هو بروتوكول الاتصالات الأكثر استخدامًا للمعدات الصناعية. يمكن العثور على وصف للبروتوكول وأسباب انتشاره في العديد من المقالات ، على سبيل المثال هنا . ومن المفهوم أيضًا أنك على دراية بأساسيات عمل البروتوكول.سننظر في Modbus RTU ، ولكن النتائج ستكون قابلة للتطبيق جزئيًا على Modbus TCP.لحساب السرعة ، نبدأ بالنظر في البروتوكول المادي (المستوى الأول من نموذج OSI). يستخدم Modbus RTU الواجهة المادية RS-485 أو RS-422 أو RS-232 (هذا الأخير لا يستخدم عمليا لـ Modbus). لإرسال الإشارات ، تستخدم هذه الواجهات UART (جهاز الإرسال والاستقبال غير المتزامن العالمي). يمكنك قراءة المزيد عن UART هنا .تتكون حزمة UART القياسية من:- بت البداية () 1 بت
- بيانات مفيدة (data) 7-8 بت
- بت التكافؤ (parity_bit) 0-1 بت
- بت توقف (stop_bit) 1-2 بت
أي أنه لكل 7-8 بتات من البيانات المفيدة ، يتم إرسال 2-4 بتات مساعدة. معدل الحمولة (Vdata) ستكون أقل من سرعة الواجهة (Vuart) احسبVdata يمكن أن تكون وفقًا للصيغة:Vdata=Vuart∗datastart_bit+data+parity_bit+stop_bit
بعد ذلك ، تحتاج إلى فهم كيفية تواصل سيد Modbus مع العبيد في طبقة ارتباط البيانات (مستوى نموذج OSI 2). نظرًا لخصائص الواجهة المادية للجهاز ، المتصلة بالخط الذي يرسل البيانات بشكل تسلسلي ، أي أنه يمكن لجهاز واحد فقط في وقت معين إرسال البيانات. وبسبب هذا ، يتواصل المعالج مع العبيد بشكل دوري ، ويسجلون القراءة والكتابة بالتسلسل إلى العبيد. ستبدو الدورة الكاملة لسجلات القراءة من العبد كما يلي:- مهلة (3.5 أحرف على الأقل = 28 بت ، عد أدناه بالثواني)
- قراءة إرسال الطلب (8 بايت)
- التأخير في استجابة الجهاز التابع (28 بت على الأقل ، غالبًا عشرات الملي ثانية لتكوين رسالة استجابة)
- إرسال تابع لرسالة استجابة (بحد أقصى 256 بايت لـ Modbus RTU).
يختار بعض المهندسين إصدارًا مكونًا من أربعة أسلاك للواجهة ، على أمل إرسال أسرع (مما يعني نقل مواز للبيانات للاستقبال والإرسال). من الواضح أن هذا الحل لا يعمل. سيكون تسلسل إرسال البيانات هو نفسه لخطوط الأسلاك 2x و 4x.نحن نحسب الوقت المستغرق في دورة قراءة كاملة 125 سجل تسجيل (الحد الأقصى لعدد Modbus RTU) مع معلمات السطر التالية:تنسيق الإطار: 8N1 (8 بت بيانات ، لا بت تماثل ، بت توقف واحد)Speed uart:Vuart= 19200 bit / sمعدل نقل الحمولة:Vdata= 15360 بت / ثانيةتأخير رئيسي:master_silence = 28 بت / Vuart(هذا هو الحد الأدنى المسموح به للتأخير ، عادة أكثر)تأخير استجابة الرقيق:slave_silence= 0.04 ثانية (تعتمد القيمة على الجهاز التابع)إرسال طلب مع 125 سجل حجز: 8 بايت أو 64 بتإجابة 125 سجل تسجيل: 256 بايت أو 2048 بتالصيغة لحساب وقت دورة القراءة:Tcycle=silence_master+64bit/Vdata+slave_silence+2048bit/Vdata=0.179s
تسلسل كتابة السجلات متطابقة تقريبًا. سيكون حجم حزمة السيد أكبر ، لأن يتضمن معلومات حول السجلات القابلة للكتابة. تأكيد التسجيل الناجح من الرقيق سيكون 8 بايت.وفقًا لمواصفات Modbus ، يمكن توصيل 32 عبدًا بخط RS-485/422. كما يتم استجواب العبيد بالتتابع ، عادة في شكل دائرة. لفهم سرعة تحديث البياناتN العبيد بحاجة إلى التكاثر Tcycleعلى ال Nيطلق عليه وقت التحديث الكامل. Tfull.بعض الحساباتTfull(قراءة وكتابة الحد الأقصى لعدد سجلات الاحتفاظ) لمختلف معلمات الاتصال:تنسيق الإطار: 8N1 ،Vuart = 19200 بت / ثانية ، عدد العبيد ، N= 16Tfull= 5.727 ثانيةتنسيق الإطار: 8N1 ،Vuart = 9600 بت / ثانية ، عدد العبيد ، N= 16Tfull= 10.173 ثانيةتنسيق الإطار: 7E1 ،Vuart = 19200 بت / ثانية ، عدد العبيد ، N= 16Tfull= 6.355 ثانيةتنسيق الإطار: 8N1 ،Vuart = 19200 بت / ثانية ، عدد العبيد ، N= 2Tfull= 0.716 sكما ترى ، يؤثر تنسيق الإطار على وقت تحديث البيانات ، ولكن ليس كثيرًا. تؤثر سرعة نقل البيانات بشكل كبير ، ولكن في مثالنا ننقل الحد الأقصى لعدد السجلات ، في المشاريع الحقيقية قد لا يكون هذا العامل كبيرًا. الأهم من ذلك كله ، يؤثر عدد العبيد على معدل تحديث البيانات.لتبسيط الحسابات ، قمنا بعمل تطبيق ويب لتقدير الوقت لتحديث البيانات عبر Modbus