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

Modbus API

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

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

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

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

ניתן לבדוק מכשירי Limelight עם USB ו-Ethernet באמצעות ModbusTool

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

  1. התחבר ל-Limelight שלך דרך Ethernet או USB-C והגדר pipeline.

    • בעוד שכל ה-pipelines יפלטו תוצאות דרך modbus, ה-pipelines של python snapscript שלנו הם מאוד גמישים לשימושים תעשייתיים מכיוון שהם תומכים בנתוני קלט ופלט מותאמים אישית.
  2. הקצה ל-Limelight שלך כתובת IP סטטית

  3. חבר את ה-Limelight שלך לרשת modbus.

מפרט רגיסטרים של Modbus

רגיסטרי קלט / קריאה בלבד

רגיסטרמפתחסוגתיאור
0hbintערך פעימת לב. עולה פעם אחת לכל פריים
1pipelineIndexintאינדקס ה-pipeline הפעיל הנוכחי (0 .. 9).
2validTargetint1 אם קיימת מטרה תקפה, 0 אחרת.
3resultsCountintסך כל התוצאות. כולל את כל זיהויי הסמנים, זיהויים נוירונים וכו'
4IDintמזהה / מספר קבוצה
5modbusModeintמצב פלט שרת Modbus.
6cpuTempintטמפרטורת מעבד בצלזיוס.
7cpuUsageintאחוז שימוש במעבד.
8ramUsageintאחוז שימוש בזיכרון RAM.
9currentFPSintפריימים לשנייה נוכחיים.
10captureLatencyintהשהיית לכידה. (מילישניות)
11targetLatencyintהשהיית עיבוד. (מילישניות)
12-15שמורint

אם מצב הפלט מוגדר ל-0:

רגיסטרמפתחסוגתיאור
16,17txfloat32היסט זוויתי אופקי למטרה במעלות
18,19tyfloat32היסט זוויתי אנכי למטרה במעלות
20,21txncfloat32היסט זוויתי אופקי למטרה (יחסית לפיקסל הראשי) במעלות
22,23tyncfloat32היסט זוויתי אנכי למטרה (יחסית לפיקסל הראשי) במעלות
24,25tafloat32 (0-1)שטח המטרה כאחוז מגודל התמונה
26fiducialIDintמזהה AprilTag נוכחי
27classifierClassintאינדקס מחלקה של פלט pipeline מסווג נוכחי. -1 אם אין תוצאות מסווג
28detectorClassintאינדקס מחלקה של פלט pipeline גלאי נוכחי. -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פותח את ה-pipeline. הגדר ל-1 כדי לאפשר החלפת pipeline ונתוני קלט מותאמים אישית
1pipeIndexintמגדיר את אינדקס ה-pipeline אם "unlocked" מוגדר ל-1
2outputModeintמגדיר את מצב הפלט. 0 - סטנדרטי, 1 - rawtargets (בפיתוח)
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]