דלג לתוכן הראשי

ממשק Modbus

מערכת ההפעלה Limelight כוללת שרת Modbus TCP הפועל בכתובת (ipaddress):502

  • מספרים שלמים: המספרים השלמים הם בעלי סימן (SIGNED) ומקודדים באמצעות משלים לשתיים. שיטה זו מוכרת באופן אוניברסלי ומבטיחה פירוש נכון של הסימן.

  • מספרים בנקודה צפה: מספרים בנקודה צפה מקודדים באמצעות תקן IEEE 754. כדי לעמוד במגבלת האוגר של 16 סיביות בפרוטוקול Modbus, מספרים בנקודה צפה מחולקים לשני חלקים:

    • 16 הסיביות העליונות מאוחסנות באוגר השני, ו-16 הסיביות התחתונות באוגר הראשון.
    • פורמט little-endian מבטיח תאימות עם מפרט Modbus.

ניתן לבדוק את התקני Limelight המחוברים ב-USB ואתרנט באמצעות ModbusTool

Modbus מאפשר תמיכה במקרי שימוש של בדיקת חלקים ואוטומציה תעשייתית. כדי להתחיל עם Modbus, עליך לבצע את הפעולות הבאות:

  1. התחבר ל-Limelight שלך דרך אתרנט או USB-C והגדר צינור עיבוד (pipeline).

    • בעוד שכל צינורות העיבוד יפלטו תוצאות דרך modbus, צינורות העיבוד של python snapscript שלנו הם ורסטיליים במיוחד למקרי שימוש תעשייתיים מכיוון שהם תומכים בנתוני קלט/פלט מותאמים אישית.
  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]