ASCII لبيانات PLC: رموز عشرية وسداسية عشرية ورموز تحكم
تعرّف على كيفية ظهور محارف ASCII والقيم العشرية والبايتات السداسية عشرية ورموز التحكم في سلاسل PLC والرسائل التسلسلية، مع طريقة عملية لتشخيص أعطال التأطير والتنسيق.
لا يزال ASCII شائعًا في مشاريع PLC لأن العديد من الأجهزة الصناعية تتبادل النصوص بايتًا واحدًا في كل مرة. وغالبًا ما تمثل قارئات الباركود، وطابعات الملصقات، والموازين، ووحدات التشغيل، والبوابات التسلسلية، ومحطات التشغيل الأوامر والقياسات على هيئة رموز محارف. ويتمكن المهندسون الذين يستطيعون الانتقال بين المحارف والقيم العشرية والبايتات السداسية عشرة من استكشاف أخطاء هذه الوصلات وإصلاحها بسرعة أكبر.
ما الذي يعرّفه ASCII
إن معيار الترميز الأمريكي الأصلي لتبادل المعلومات هو مجموعة محارف من سبع بتات. ويعرّف 128 قيمة، مرقمة من 0 إلى 127. وتُعد القيم من 0 إلى 31 والقيمة 127 محارف تحكم. أما القيم من 32 إلى 126 فهي محارف قابلة للطباعة، وتشمل الحروف والأرقام وعلامات الترقيم والمسافة.
توثّق مواصفة RFC 20 المستضافة لدى IETF مواضع الرموز ومعانيها المقصودة. عادةً ما تخزّن الأنظمة الحديثة محرف ASCII في بايت من ثماني بتات. وتظل البتة العليا صفرًا في ASCII القياسي.
العشري والسداسي عشري والثنائي هي البايت نفسه
قد تعرض علامة PLC القيمة نفسها بعدة تنسيقات رقمية. فالحرف الكبير A يساوي 65 عشريًا، و41 سداسيًا عشريًا، و01000001 ثنائيًا. والرقم 0 يساوي 48 عشريًا أو 30 سداسيًا عشريًا. وهذه ليست محارف مختلفة، بل طرق عرض مختلفة للنمط الرقمي نفسه.
يكون النظام السداسي عشري مفيدًا أثناء التشغيل التجريبي لأن بايتًا واحدًا يتسع في خانتين سداسيتين عشريتين. كما تميل عمليات التقاط الحزم، ومراقبات الاتصال التسلسلي، وأدلة الأجهزة إلى عرض قيم البايتات بالنظام السداسي عشري. وغالبًا ما يكون النظام العشري أسهل عندما تتطلب تعليمات PLC ثوابت صحيحة.
أكواد التحكم مهمة في الرسائل الصناعية
تستخدم العديد من البروتوكولات التسلسلية محارف التحكم كفواصل. فمحرف إرجاع العربة يساوي 13 عشريًا أو 0D سداسيًا عشريًا. ومحرف تغذية السطر يساوي 10 عشريًا أو 0A سداسيًا عشريًا. ويكون محرف بداية النص هو 02 سداسيًا عشريًا، بينما يكون محرف نهاية النص هو 03 سداسيًا عشريًا. وقد يتجاهل الجهاز أمرًا صحيحًا إذا كان المُنهي المطلوب مفقودًا.
لا تفترض أن كل جهاز يستخدم CR/LF. فبعض الأجهزة تتطلب CR فقط. ويستخدم بعضها الآخر فاصلًا قابلًا للطباعة، أو طول رسالة ثابتًا، أو بايتًا للمجموع الاختباري. أكّد الإطار الدقيق في دليل بروتوكول الشركة المصنّعة.
كيف تتحول سلاسل PLC إلى مصفوفات بايتات
تخزّن منصات PLC السلاسل النصية بطرق مختلفة. فبعضها يضع الطول الحالي قبل بيانات المحارف. بينما يحجز بعضها الآخر مصفوفة ثابتة وينهي النص ببايت صفري. وعندما تعبر البيانات حدود البروتوكول، يرى الجهاز المستقبل بايتات بدلًا من نوع السلسلة الداخلي لوحدة التحكم.
افحص طول السلسلة المُعلن والمخزن الأساسي على حد سواء. فقد يظهر بايت قديم بعد الطول الحالي في البيانات المرسلة إذا كان أحد الإجراءات يرسل المخزن كاملًا. امسح الوجهة أو أرسل عدد المحارف النشطة فقط.
طريقة عملية للتشخيص
- التقط البايتات المرسلة بدقة باستخدام مراقب تسلسلي، أو محلل بروتوكول، أو صفحة التشخيص في البوابة.
- اكتب كل بايت بالنظام السداسي عشري، وحوّل القيم القابلة للطباعة إلى محارف مقابلة.
- حدّد بايتات التأطير، والمنهيات، والفواصل، وحقول الطول، والمجاميع الاختبارية.
- قارن الالتقاط بدليل الجهاز، بما في ذلك المسافات وحالة الأحرف.
- كرّر الالتقاط لرسالة معروفة الصحة وقارن مواضع البايتات.
يفصل هذا الأسلوب على مستوى البايت بين أخطاء التنسيق ومشكلات التوصيلات ومعدل البود والتكافؤ. إذا أظهر الالتقاط نصًا مقروءًا لكنه غير مكتمل، فركّز على تجميع السلسلة النصية. وإذا كانت كل البايتات خاطئة، فتحقق أولًا من الإعدادات الفيزيائية والتسلسلية.
أخطاء شائعة في التنفيذ
الخلط بين الرقم وقيمته العددية
المحرف “5” هو 53 عشريًا في ASCII، وليس القيمة الصحيحة 5. ويتطلب تحويل رقم مقاس إلى نص استخدام إجراء تنسيق. أما نسخ العدد الصحيح الخام إلى مخزن محارف فينتج بايت تحكم بدلًا من ذلك.
خلط النص السداسي عشري بالبايتات الثنائية
يحتوي النص “41” على محرفين: 34 سداسيًا عشريًا و31 سداسيًا عشريًا. أما البايت الواحد ذو القيمة 41 سداسيًا عشريًا فيمثل الحرف A. حدّد ما إذا كان البروتوكول يتوقع نصًا سداسيًا عشريًا مقروءًا للبشر أو بيانات ثنائية خامًا.
تجاهل الترميزات التي تتجاوز ASCII
يغطي ASCII الحروف الإنجليزية ومجموعة محدودة من الرموز. ويستخدم UTF-8 قيم البايتات نفسها للمحارف الـ128 الأولى، لكن المحارف غير الموجودة في ASCII تستخدم عدة بايتات. وقد يرفض جهاز قديم هذه البايتات أو يحسبها بشكل غير صحيح.
إرشادات تصميم لشفرة PLC سهلة الصيانة
ضع تنسيق البروتوكول في إجراء واحد. وسمِّ الثوابت الخاصة بأكواد التحكم بدلًا من نثر القيم الرقمية الثابتة في منطق السلم أو النص المنظم. وسجّل مخزن الإرسال النهائي بالنظام السداسي عشري أثناء التشغيل التجريبي. وأدرج أمثلة في وثائق المشروع.
عندما يتجاوز البروتوكول تأطير النصوص البسيط، استخدم آلة حالات محددة. وتتبّع موضع الاستقبال، والمهلة، وحالة الإطار، ونتيجة التحقق كلًّا على حدة. فهذا يجعل إعادة المحاولة وتشخيص الرسائل المشوهة أسهل.
للاطلاع على أنماط أوسع لمعالجة البيانات، راجع التكرار عبر المصفوفات في أنظمة PLC. وبالنسبة إلى الأجهزة المتصلة بالشبكة، يضيف دليل نشر جهاز Modbus TCP سياقًا حول التأطير والتشغيل التجريبي.
قائمة التحقق من التشغيل التجريبي
- أكّد مجموعة المحارف وترتيب البايتات.
- تحقق من الفواصل والمنهيات بالنظام السداسي عشري.
- تحقق مما إذا كانت الرسالة ذات طول ثابت أو يسبقها حقل طول.
- ميّز بين النص السداسي عشري القابل للطباعة والبيانات الثنائية الخام.
- تحقق من سلوك المهلة وإعادة المحاولة ومسح المخزن المؤقت.
- أرشف التقاطًا معروف الصحة للبايتات مع ملفات المشروع.
إن ASCII بسيط، لكن الأعطال الصناعية غالبًا ما تختبئ في بايت واحد مفقود أو مقروء بشكل خاطئ. تعامل مع الرسالة أولًا على أنها سلسلة من القيم الرقمية. ولا تحوّلها مرة أخرى إلى نص إلا بعد فهم الإطار.