html شرح سجلات Modbus وترتيب الكلمات للقيم ذات 32 بت - FCTELE
                                   +8618758069661 [email protected]
البحث عن المنتجات دليل: مسافة = AND (و)، | = OR (أو)، ! = NOT (ليس)

لماذا تكون قيمة Modbus غير صحيحة؟ سجلات بعرض 16 بت، وبيانات بعرض 32 بت، وترتيب الكلمات

هل لديك أي أسئلة؟ اتصل بنا اليوم!

+8618758069661

أو اترك لنا رسالة

رسالة عبر الإنترنت

لماذا تكون قيمة Modbus غير صحيحة؟ سجلات بعرض 16 بت، وبيانات بعرض 32 بت، وترتيب الكلمات

المشاهدات: 13 +13المحتوى الأصلي من إعداد FCTELEالمؤلف: الفريق التقني لدى FCTELE

تفسير بيانات MODBUS

لماذا قد ينجح الاتصال بينما تكون القراءة خاطئة؟

ينقل التبادل الناجح محتويات السجلات، لكنه لا يثبت كيفية تفسير التطبيق لها. تحتاج القيمة ذات 32 بت إلى الترتيب الصحيح للكلمات الكاملة، ونوع البيانات، والتحجيم، والوحدة. كما تحتاج إلى توقيت تحديث متسق. ابدأ بخريطة سجلات الجهاز واحتفظ بالاستجابة الخام. هذه مفاهيم عامة، وليست إعدادات لجهاز قياس بعينه أو ضمانًا للقطات ذرية.

01

البايتات

A standard 16-bit register is carried as two ordered bytes.1234High byte first

يُنقل السجل القياسي ذو 16 بت على هيئة بايتين مرتبين.

02

الكلمات

Rebuild whole words using the device map and the correct data type.41C80000Float: 25.0

أعد تجميع الكلمات الكاملة بالاستعانة بخريطة الجهاز ونوع البيانات الصحيح.

03

اللحظات الزمنية

Check whether both words belong to one coherent update.Old: 0000 FFFFNew: 0001 0000Do not mix halves

تحقق مما إذا كانت الكلمتان تنتميان إلى تحديث واحد متسق.

01 اقرأ الخريطة

تأكد من صيغة كتابة العنوان، وعدد السجلات، والنوع، ومعامل التحجيم، والوحدة.

02 احتفظ بالبيانات الخام

احفظ طلب قراءة واحدًا مصرحًا به والاستجابة المطابقة له.

03 تحقق من الاتساق

تحقق من سلوك التحديث وأي طابع زمني لذاكرة التخزين المؤقت في البوابة.

قائمة تحقق للاختيار والتحقق — توسيع
الفحص ما يجب تأكيده كيفية التحقق
الترميز ترتيب البايتات والكلمات الكاملة قارن البايتات الخام بالخريطة الرسمية
المعنى نوع البيانات ومعامل التحجيم والوحدة تحقق من عدة قيم معروفة
حداثة البيانات اتساق التحديثات وعمر البيانات المخزنة مؤقتًا اطّلع على تفاصيل تنفيذ القراءة وأدلة الطوابع الزمنية

يعرض جهاز القياس 25، بينما يعرض الحاسوب قيمة عشرية غير معقولة ويسجل سجل الاتصال نجاح العملية. ليس من الضروري أن يكون الكابل أو الليف معيبًا؛ فقد تكون البيانات وصلت سليمة ثم فُسرت بصورة غير صحيحة. لا يتطلب فهم ترتيب الكلمات في Modbus صفحة من المعادلات. تتبّع ما يحتويه السجل، وكيف تنقله الرسالة، وكيف يعيد البرنامج تجميع القيمة، للتمييز بين نجاح النقل وصحة القراءة.

يدخل البايت الأعلى والبايت الأدنى لسجل واحد ذي 16 بت إلى الرسالة بالترتيب
الشكل 1: ترتيب البايتات للقيمة 0x1234، وليس توقيت البتات التسلسلية أو دائرة شريحة معينة.

ابدأ بخانات بيانات مرقّمة

يحدد Modbus قواعد تبادل بيانات الأجهزة الصناعية. عند قراءة سجلات الاحتفاظ أو سجلات الإدخال، تخيّل منطقة بيانات الجهاز على هيئة صف من الخانات المرقّمة. يحتوي كل سجل من هذه السجلات على 16 بت، أي بايتين؛ ويحتوي كل بايت على ثمانية بتات. هذه وحدات بيانات منطقية، وليست ادعاءً بأن جهاز القياس يحتوي فعليًا على صف من الشرائح المنفصلة.

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

تحقق أيضًا من صيغة كتابة العنوان. قد يستخدم الدليل مرجعًا لسجل احتفاظ مثل 40001، بينما تستخدم الرسالة إزاحة بدء؛ وتُجري بعض البرامج التحويل نيابةً عن المستخدم. قارن بطلب نموذجي في الوثائق نفسها لتحديد ما إذا كانت الواجهة تتوقع رقمًا مرجعيًا أم إزاحة. فهذا يجنب إزاحة القراءة بأكملها بمقدار خانة واحدة. أما تكرار تبديل الكلمات لتعويض خطأ في العنوان فلا يؤدي إلا إلى زيادة صعوبة التشخيص.

أي بايت يغادر السجل أولًا؟

يمكن فصل قيمة السجل التوضيحية 0x1234 إلى البايتين 12 و34. والتمثيل السداسي العشري مجرد طريقة موجزة لتسجيل البيانات الخام، وليس عملية حسابية متقدمة مطلوبة في الموقع. يضع ترميز السجلات القياسي في Modbus البايت الأعلى، 12، قبل البايت الأدنى، 34. ويستخدم برنامج الاستقبال هذا الترتيب لاستعادة المحتوى نفسه ذي 16 بت.

يصف هذا ترتيب البايتات في الرسالة، ويجب عدم الخلط بينه وبين ترتيب البتات التسلسلية المفردة داخل البايت. أما تخطيط ذاكرة الحاسوب فهو مسألة مستقلة أخرى: ترتيب التخزين الأصلي للمعالج لا يجيز للتطبيق تغيير ترميز رسائل البروتوكول. يُظهر الالتقاط بايتات الرسالة؛ بينما قد يعرض مصحح الأخطاء قيمة في الذاكرة جرى تحويلها بالفعل. حدد نقطة الرصد قبل المقارنة بينهما.

وجود سجلين يطرح مسألة ترتيب الكلمات

لا تتسع قيمة ذات 32 بت في سجل واحد ذي 16 بت، وتشغل عادةً سجلين متجاورين. وإلى جانب ترتيب البايتات داخل كل سجل، يظهر سؤال آخر: هل يحتوي السجل الأسبق على البتات العليا البالغ عددها 16 أم البتات الدنيا البالغ عددها 16 من القيمة الكاملة؟ هذا هو ترتيب الكلمات المقصود هنا. وقد تختلف الأجهزة والإعدادات، لذا فإن دعم Modbus لا يثبت بحد ذاته وجود ترتيب موحد.

على سبيل المثال، تتكون القيمة 25.0 بتنسيق الفاصلة العائمة أحادي الدقة IEEE 754 من البايتات الأربعة 41 C8 00 00. تضع إحدى خرائط السجلات التوضيحية 41C8 في السجل N و0000 في N+1؛ بينما تعكس خريطة أخرى ترتيب الكلمتين. وتنتج كلتاهما 25.0 عند القراءة وإعادة التجميع وفقًا لخريطتها. وقد يؤدي تطبيق التفسير الأول على الثانية إلى قيمة خاطئة تمامًا رغم نجاح التبادل. هذه أمثلة تعليمية وليست عناوين أو إعدادات فعلية لجهاز قياس.

تعيد خريطتا سجلات بديلتان تجميع قيمة الفاصلة العائمة التوضيحية نفسها 25.0
الشكل 2: يرمز N إلى موضع سجل تجريدي، وليس إلى خريطة أو إعدادات فعلية لجهاز قياس.

تبديل الكلمات يختلف عن تبديل البايتات داخل الكلمات

تخيّل كتابين، لكل منهما صفحة علوية وأخرى سفلية تمثلان معًا بايتات البيانات الأربعة. يشبه تبادل موضعي الكتابين تبديل كلمتين، كل منهما ذات 16 بت؛ ويشبه تبادل الصفحات داخل كل كتاب تبديل البايتات داخل الكلمات. تؤثر العمليتان في حدود مختلفة. وقد تشير تسميات البرامج مثل big-endian أو little-endian أو swap إلى مستويات مختلفة، لذا لا يكفي اسم القائمة وحده لتحديد التحويل.

سجّل البايتات الخام الأربعة بترتيب استلامها، واكتب بجانبها ترتيب إعادة التجميع الذي يستخدمه البرنامج. غيّر إعداد تفسير واحدًا محددًا بوضوح في كل مرة، وقارنه بخريطة السجلات الرسمية. تجنب تطبيق التبديل نفسه عشوائيًا على كل نقطة أو اعتبار رقم واحد معقول دليلًا على صحة الخريطة بأكملها. فقد تخفي القيم القريبة من الصفر خطأً في الترتيب، لذا تحقق من عدة قيم معروفة ومتمايزة.

إن CRC الموجود في نهاية إطار Modbus RTU هو رمز لكشف الأخطاء يساعد على التحقق مما إذا كان المحتوى المرسل قد تغير. وإذا أعاد الجهاز عمدًا بيانات تبدأ بالكلمة الدنيا، فقد يكون CRC الخاص بها صالحًا. وإذا فسّرها البرنامج لاحقًا على أنها تبدأ بالكلمة العليا، فلن يجعل ذلك CRC يبلغ عن خطأ التفسير هذا. وقد تجتاز قراءة عنوان مختلف لكنه صالح هذا الفحص أيضًا. احتفظ بأدلة منفصلة لما وصل ولكيفية تفسيره.

قد تتطلب البايتات نفسها تفسيرات مختلفة

الترتيب الصحيح ليس سوى متطلب واحد. فالعدد الصحيح ذو 32 بت وقيمة الفاصلة العائمة ذات 32 بت يستخدمان تفسيرين مختلفين. يمكن لتنسيقات الفاصلة العائمة تمثيل الكسور، لكن هذا لا يعني وجوب فك ترميز كل عنصر من أربعة بايتات كقيمة فاصلة عائمة. تتيح الأعداد الصحيحة الموقّعة قيمًا سالبة، بينما تستخدم الأعداد الصحيحة غير الموقّعة تفسيرًا مختلفًا للنطاق. استمد هذه الخيارات من وثائق الجهاز بدلًا من تخمينها بناءً على مدى معقولية ما يظهر على الشاشة.

يُعد التحجيم والوحدات أيضًا جزءًا من سلسلة التفسير. فإذا نصت خريطة السجلات صراحةً على أن العدد الصحيح الخام 253 يعني 25.3 درجة مئوية، فينبغي للبرنامج تطبيق هذه القاعدة بدلًا من عرض 253 درجة مئوية. وهذا مثال منفصل عن قيمة الفاصلة العائمة 25.0 الواردة أعلاه. تحقق أيضًا من ترميزات القيم غير الصالحة، ومؤشرات انقطاع الاتصال، والبتات المحجوزة. فقد يؤدي رسم رمز خاص يدل على عدم توفر القيمة بوصفه قياسًا عاديًا إلى إظهار اضطراب مقنع لكنه زائف في العملية.

القراءات التي تتم على جانبي تحديث العدّاد تجمع كلمات من لحظات مختلفة
الشكل 3: مثال مفاهيمي لاتساق التحديث، وليس قياسًا. قراءة كتلة من السجلات لا تضمن بحد ذاتها لقطة ذرية.

يظل الترتيب الصحيح بحاجة إلى لحظة أخذ عينات متسقة

عند قراءة سجلين في طلبين منفصلين، قد يُجري الجهاز تحديثًا بين القراءتين. لنأخذ عدّادًا توضيحيًا غير موقّع ذا 32 بت يتغير من 0000 FFFF إلى 0001 0000. تؤدي قراءة الكلمة العليا القديمة 0000 ثم الكلمة الدنيا الجديدة 0000 إلى إنتاج 0000 0000. وهذه النتيجة ليست القيمة القديمة الكاملة ولا القيمة الجديدة الكاملة. المشكلة هنا هي اتساق أخذ العينات.

عادةً ما تقلل قراءة سجلين متتاليين في طلب واحد النافذة الزمنية الناتجة عن الطلبات المنفصلة، لكنها لا تثبت أن كل جهاز يوفر لقطة ذرية. راجع وثائق التنفيذ بحثًا عن تثبيت القيم، أو سلوك التحديث، أو الأرقام التسلسلية، أو الطوابع الزمنية التي تحدد تحديثًا متسقًا. وإذا كانت البوابة تخزّن البيانات مؤقتًا، فسجّل أيضًا وقت تحديث الذاكرة المؤقتة. فالرسالة المعادة حديثًا لا تحتوي بالضرورة على قيمة مقاسة حديثًا، ولا يمكن للاستقصاء الأسرع أن يحل محل آلية تضمن الاتساق.

حدد المسؤوليات على امتداد مسار الاتصال

يعرض موقع FCTELE المودم الضوئي الصناعي FCP-D8G من نوع Modbus، القابل للتركيب على سكة DIN، لنقل اتصالات Modbus التسلسلية من نقطة إلى نقطة عبر الألياف الضوئية. يوضح ذلك تقسيمًا مفيدًا: تنقل الوصلة الضوئية بيانات الاتصال، بينما تحدد خريطة سجلات جهاز القياس معناها. ولا يعني استخدام مودم ضوئي Modbus التعرف التلقائي على ترتيب كلمات الفاصلة العائمة في كل جهاز قياس، أو تحويل الوحدات، أو توفير لقطات قياس متزامنة. تحقق من القدرات الفعلية بالرجوع إلى وثائق إصدار المنتج المعني.

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

إذا كانت قراءة نقطة صحيحة باستخدام أداة محلية لكنها خاطئة عبر وصلة ضوئية، فقارن الاستجابات الخام من الجهاز نفسه في ظل الإعدادات نفسها، ثم افحص اختيار القناة وإعدادات الاتصال التسلسلي والسجلات. تشير البايتات الخام المتطابقة مع اختلاف القيم المعروضة إلى إعدادات فك الترميز؛ أما اختلاف البايتات أو عدم تطابق المعاملات فيستدعي مزيدًا من البحث على امتداد مسار الاتصال. يقلل هذا التسلسل استبدال العتاد غير الضروري، من دون استبعاد أعطال النقل الحقيقية باعتبارها مشكلات في ترتيب الكلمات.

المراجع والنطاق

منظمة Modbus: السجلات وتنسيقات البيانات; بروتوكول التطبيق V1.1b3، القسم 4.2: ترميز البايتات; Schneider Electric: تعيين السجلات وأمثلة لترتيب الكلمات; Schneider Electric: قراءة قيم الفاصلة العائمة ذات الكلمات المتبادلة; معلومات المودم الضوئي FCTELE FCP-D8G Modbus (بالصينية). لا تثبت إعدادات الأطراف الثالثة قدرات منتجات FCTELE. الرسوم والأمثلة شروحات أُعدّت بصورة مستقلة، وليست نتائج مقاسة أو تعليمات لتوصيل الأسلاك.

مترجم عن المقال التقني الصيني: اقرأ المقال الصيني الأصلي.

أسئلة شائعة

لماذا قد يُظهر تبادل ناجح عبر Modbus قيمة خاطئة رغم ذلك؟

النقل والتفسير أمران منفصلان. تحقق من الهدف واصطلاح العنوان وعدد السجلات وترتيب الكلمات ونوع البيانات والتحجيم والوحدة ووقت التحديث. لا يثبت CRC الصالح صحة التفسير في سياق العمل.

هل تبديل سجلين هو نفسه تبديل البايتات؟

لا. أحدهما يغير مواضع كلمات كاملة ذات 16 بت؛ والآخر قد يغير مواضع البايتات داخل الكلمة. تحقق من خريطة الجهاز وإعادة التجميع الفعلية بدلًا من الاكتفاء بتسمية في القائمة.

هل يضمن طلب واحد لقراءة سجلين لحظة أخذ عينات واحدة؟

لا. قد تقلل قراءة كتلة من السجلات النافذة الزمنية الناتجة عن الطلبات المنفصلة، لكن اللقطات الذرية وتثبيت القيم وسلوك التحديث تعتمد على التنفيذ. كما تتطلب بيانات البوابة المخزنة مؤقتًا التحقق من وقت تحديثها.

قراءات إضافية

وحدات PLC متعددة وموزّع Modbus · تأطير بايتات UART وأخذ العينات

مشاركة هذا المقال