انتقل إلى المحتوى الرئيسي

واجهة برمجة التطبيقات Modbus

يتميز نظام تشغيل Limelight بخادم Modbus TCP يعمل على (عنوان_IP):502

  • الأعداد الصحيحة: الأعداد الصحيحة هي موقعة (SIGNED) ومشفرة باستخدام المتمم الثنائي. هذه الطريقة معترف بها عالميًا وتضمن التفسير الصحيح للإشارة.

  • الأرقام العائمة: يتم ترميز الأرقام العائمة باستخدام معيار IEEE 754. للامتثال لقيود السجل 16 بت لبروتوكول Modbus، يتم تقسيم الأرقام العائمة إلى جزأين:

    • يتم تخزين الـ 16 بت ذات الترتيب الأعلى في السجل الثاني، والـ 16 بت ذات الترتيب الأدنى في السجل الأول.
    • يضمن تنسيق little-endian التوافق مع مواصفات Modbus.

يمكن اختبار أجهزة Limelight التي تعمل عبر USB وإيثرنت باستخدام ModbusTool

يتيح Modbus دعم حالات استخدام فحص الأجزاء والأتمتة الصناعية. للبدء مع Modbus، تحتاج إلى القيام بما يلي:

  1. اتصل بجهاز Limelight الخاص بك عبر إيثرنت أو USB-C وقم بتكوين خط أنابيب.

    • بينما ستقوم جميع خطوط الأنابيب بإخراج النتائج عبر modbus، فإن خطوط أنابيب snapscript Python الخاصة بنا متعددة الاستخدامات للغاية للحالات الصناعية حيث أنها تدعم بيانات الإدخال والإخراج المخصصة.
  2. امنح جهاز Limelight الخاص بك عنوان IP ثابت

  3. قم بتوصيل جهاز Limelight الخاص بك بشبكة modbus.

مواصفات سجل Modbus

سجلات الإدخال / للقراءة فقط

السجلالمفتاحالنوعالوصف
0hbintقيمة نبض القلب. تزداد مرة واحدة لكل إطار
1pipelineIndexintفهرس خط الأنابيب النشط الحالي (0 .. 9).
2validTargetint1 إذا كان هناك هدف صالح، 0 خلاف ذلك.
3resultsCountintإجمالي عدد النتائج. يشمل جميع اكتشافات الأشكال المرجعية، والاكتشافات العصبية، إلخ
4IDintالمعرف / رقم الفريق
5modbusModeintوضع إخراج خادم Modbus.
6cpuTempintدرجة حرارة وحدة المعالجة المركزية بالدرجة المئوية.
7cpuUsageintنسبة استخدام وحدة المعالجة المركزية.
8ramUsageintنسبة استخدام ذاكرة الوصول العشوائي.
9currentFPSintعدد الإطارات الحالية في الثانية.
10captureLatencyintزمن التأخير في الالتقاط. (بالمللي ثانية)
11targetLatencyintزمن التأخير في المعالجة. (بالمللي ثانية)
12-15محجوزint

إذا تم تعيين وضع الإخراج إلى 0:

السجلالمفتاحالنوعالوصف
16,17txfloat32الإزاحة الزاوية الأفقية للهدف بالدرجات
18,19tyfloat32الإزاحة الزاوية العمودية للهدف بالدرجات
20,21txncfloat32الإزاحة الزاوية الأفقية للهدف (بالنسبة للبكسل الرئيسي) بالدرجات
22,23tyncfloat32الإزاحة الزاوية العمودية للهدف (بالنسبة للبكسل الرئيسي) بالدرجات
24,25tafloat32 (0-1)مساحة الهدف كنسبة مئوية من حجم الصورة
26fiducialIDintمعرف AprilTag الحالي
27classifierClassintفهرس الفئة لمخرجات خط أنابيب التصنيف الحالي. -1 إذا لم تكن هناك نتائج للمصنف
28detectorClassintفهرس الفئة لمخرجات خط أنابيب الكشف الحالي. -1 إذا لم تكن هناك نتائج للكاشف
29محجوزint
30,31python[0]float32مصفوفة إخراج Python المخصصة [0]
32,33python[1]float32مصفوفة إخراج Python المخصصة [1]
34,35python[2]float32مصفوفة إخراج Python المخصصة [2]
36,37python[3]float32مصفوفة إخراج Python المخصصة [3]
38,39python[4]float32مصفوفة إخراج Python المخصصة [4]
40,41python[5]float32مصفوفة إخراج Python المخصصة [5]
42,43python[6]float32مصفوفة إخراج Python المخصصة [6]
44,45python[7]float32مصفوفة إخراج Python المخصصة [7]

سجلات الاحتفاظ / للكتابة فقط

السجلالمفتاحالنوعالوصف
0unlockedintيفتح خط الأنابيب. قم بتعيينه إلى 1 لتمكين تبديل خط الأنابيب وبيانات الإدخال المخصصة
1pipeIndexintيعين فهرس خط الأنابيب إذا تم تعيين "unlocked" إلى 1
2outputModeintيعين وضع الإخراج. 0 - قياسي، 1 - أهداف خام (قيد التطوير)
3محجوزint
4محجوزint
5محجوزint
6محجوزint
7محجوزint
8pythonInput[0]intمصفوفة إدخال Python المخصصة [0]
9pythonInput[1]intمصفوفة إدخال Python المخصصة [1]
10pythonInput[2]intمصفوفة إدخال Python المخصصة [2]
11pythonInput[3]intمصفوفة إدخال Python المخصصة [3]
12pythonInput[4]intمصفوفة إدخال Python المخصصة [4]
13pythonInput[5]intمصفوفة إدخال Python المخصصة [5]
14pythonInput[6]intمصفوفة إدخال Python المخصصة [6]
15pythonInput[7]intمصفوفة إدخال Python المخصصة [7]
16,17pythonInput[8]float32مصفوفة إدخال Python المخصصة [8]
18,19pythonInput[9]float32مصفوفة إدخال Python المخصصة [9]
20,21pythonInput[10]float32مصفوفة إدخال Python المخصصة [10]
22,23pythonInput[11]float32مصفوفة إدخال Python المخصصة [11]
24,25pythonInput[12]float32مصفوفة إدخال Python المخصصة [12]
26,27pythonInput[13]float32مصفوفة إدخال Python المخصصة [13]
28,29pythonInput[14]float32مصفوفة إدخال Python المخصصة [14]
30,31pythonInput[15]float32مصفوفة إدخال Python المخصصة [15]