واجهة برمجة التطبيقات Modbus
يتميز نظام تشغيل Limelight بخادم Modbus TCP يعمل على (عنوان_IP):502
-
الأعداد الصحيحة: الأعداد الصحيحة هي موقعة (SIGNED) ومشفرة باستخدام المتمم الثنائي. هذه الطريقة معترف بها عالميًا وتضمن التفسير الصحيح للإشارة.
-
الأرقام العائمة: يتم ترميز الأرقام العائمة باستخدام معيار IEEE 754. للامتثال لقيود السجل 16 بت لبروتوكول Modbus، يتم تقسيم الأرقام العائمة إلى جزأين:
- يتم تخزين الـ 16 بت ذات الترتيب الأعلى في السجل الثاني، والـ 16 بت ذات الترتيب الأدنى في السجل الأول.
- يضمن تنسيق little-endian التوافق مع مواصفات Modbus.
يمكن اختبار أجهزة Limelight التي تعمل عبر USB وإيثرنت باستخدام ModbusTool
يتيح Modbus دعم حالات استخدام فحص الأجزاء والأتمتة الصناعية. للبدء مع Modbus، تحتاج إلى القيام بما يلي:
-
اتصل بجهاز Limelight الخاص بك عبر إيثرنت أو USB-C وقم بتكوين خط أنابيب.
- بينما ستقوم جميع خطوط الأنابيب بإخراج النتائج عبر modbus، فإن خطوط أنابيب snapscript Python الخاصة بنا متعددة الاستخدامات للغاية للحالات الصناعية حيث أنها تدعم بيانات الإدخال والإخراج المخصصة.
-
امنح جهاز Limelight الخاص بك عنوان IP ثابت
-
قم بتوصيل جهاز Limelight الخاص بك بشبكة modbus.
مواصفات سجل Modbus
سجلات الإدخال / للقراءة فقط
السجل | المفتاح | النوع | الوصف |
---|---|---|---|
0 | hb | int | قيمة نبض القلب. تزداد مرة واحدة لكل إطار |
1 | pipelineIndex | int | فهرس خط الأنابيب النشط الحالي (0 .. 9). |
2 | validTarget | int | 1 إذا كان هناك هدف صالح، 0 خلاف ذلك. |
3 | resultsCount | int | إجمالي عدد النتائج. يشمل جميع اكتشافات الأشكال المرجعية، والاكتشافات العصبية، إلخ |
4 | ID | int | المعرف / رقم الفريق |
5 | modbusMode | int | وضع إخراج خادم Modbus. |
6 | cpuTemp | int | درجة حرارة وحدة المعالجة المركزية بالدرجة المئوية. |
7 | cpuUsage | int | نسبة استخدام وحدة المعالجة المركزية. |
8 | ramUsage | int | نسبة استخدام ذاكرة الوصول العشوائي. |
9 | currentFPS | int | عدد الإطارات الحالية في الثانية. |
10 | captureLatency | int | زمن التأخير في الالتقاط. (بالمللي ثانية) |
11 | targetLatency | int | زمن التأخير في المعالجة. (بالمللي ثانية) |
12-15 | محجوز | int |
إذا تم تعيين وضع الإخراج إلى 0:
السجل | المفتاح | النوع | الوصف |
---|---|---|---|
16,17 | tx | float32 | الإزاحة الزاوية الأفقية للهدف بالدرجات |
18,19 | ty | float32 | الإزاحة الزاوية العمودية للهدف بالدرجات |
20,21 | txnc | float32 | الإزاحة الزاوية الأفقية للهدف (بالنسبة للبكسل الرئيسي) بالدرجات |
22,23 | tync | float32 | الإزاحة الزاوية العمودية للهدف (بالنسبة للبكسل الرئيسي) بالدرجات |
24,25 | ta | float32 (0-1) | مساحة الهدف كنسبة مئوية من حجم الصورة |
26 | fiducialID | int | معرف AprilTag الحالي |
27 | classifierClass | int | فهرس الفئة لمخرجات خط أنابيب التصنيف الحالي. -1 إذا لم تكن هناك نتائج للمصنف |
28 | detectorClass | int | فهرس الفئة لمخرجات خط أنابيب الكشف الحالي. -1 إذا لم تكن هناك نتائج للكاشف |
29 | محجوز | int | |
30,31 | python[0] | float32 | مصفوفة إخراج Python المخصصة [0] |
32,33 | python[1] | float32 | مصفوفة إخراج Python المخصصة [1] |
34,35 | python[2] | float32 | مصفوفة إخراج Python المخصصة [2] |
36,37 | python[3] | float32 | مصفوفة إخراج Python المخصصة [3] |
38,39 | python[4] | float32 | مصفوفة إخراج Python المخصصة [4] |
40,41 | python[5] | float32 | مصفوفة إخراج Python المخصصة [5] |
42,43 | python[6] | float32 | مصفوفة إخراج Python المخصصة [6] |
44,45 | python[7] | float32 | مصفوفة إخراج Python المخصصة [7] |
سجلات الاحتفاظ / للكتابة فقط
السجل | المفتاح | النوع | الوصف |
---|---|---|---|
0 | unlocked | int | يفتح خط الأنابيب. قم بتعيينه إلى 1 لتمكين تبديل خط الأنابيب وبيانات الإدخال المخصصة |
1 | pipeIndex | int | يعين فهرس خط الأنابيب إذا تم تعيين "unlocked" إلى 1 |
2 | outputMode | int | يعين وضع الإخراج. 0 - قياسي، 1 - أهداف خام (قيد التطوير) |
3 | محجوز | int | |
4 | محجوز | int | |
5 | محجوز | int | |
6 | محجوز | int | |
7 | محجوز | int | |
8 | pythonInput[0] | int | مصفوفة إدخال Python المخصصة [0] |
9 | pythonInput[1] | int | مصفوفة إدخال Python المخصصة [1] |
10 | pythonInput[2] | int | مصفوفة إدخال Python المخصصة [2] |
11 | pythonInput[3] | int | مصفوفة إدخال Python المخصصة [3] |
12 | pythonInput[4] | int | مصفوفة إدخال Python المخصصة [4] |
13 | pythonInput[5] | int | مصفوفة إدخال Python المخصصة [5] |
14 | pythonInput[6] | int | مصفوفة إدخال Python المخصصة [6] |
15 | pythonInput[7] | int | مصفوفة إدخال Python المخصصة [7] |
16,17 | pythonInput[8] | float32 | مصفوفة إدخال Python المخصصة [8] |
18,19 | pythonInput[9] | float32 | مصفوفة إدخال Python المخصصة [9] |
20,21 | pythonInput[10] | float32 | مصفوفة إدخال Python المخصصة [10] |
22,23 | pythonInput[11] | float32 | مصفوفة إدخال Python المخصصة [11] |
24,25 | pythonInput[12] | float32 | مصفوفة إدخال Python المخصصة [12] |
26,27 | pythonInput[13] | float32 | مصفوفة إدخال Python المخصصة [13] |
28,29 | pythonInput[14] | float32 | مصفوفة إدخال Python المخصصة [14] |
30,31 | pythonInput[15] | float32 | مصفوفة إدخال Python المخصصة [15] |