ממשק Modbus
מערכת ההפעלה של Limelight כוללת שרת Modbus TCP הפועל בכתובת (ipaddress):502
-
מספרים שלמים: המספרים השלמים הם עם סימן (SIGNED) ומקודדים באמצעות משלים לשתיים. שיטה זו מוכרת באופן אוניברסלי ומבטיחה פרשנות נכונה של הסימן.
-
מספרים בנקודה צפה: מספרים בנקודה צפה מקודדים באמצעות תקן IEEE 754. כדי לעמוד במגבלת הרגיסטר של 16 סיביות של פרוטוקול Modbus, מספרים בנקודה צפה מחולקים לשני חלקים:
- 16 הסיביות העליונות מאוחסנות ברגיסטר השני, ו-16 הסיביות התחתונות ברגיסטר הראשון.
- פורמט little-endian מבטיח תאימות עם מפרט Modbus.
ניתן לבדוק את Limelight בחיבור USB ו-Ethernet באמצעות ModbusTool
Modbus מאפשר תמיכה במקרי שימוש של בדיקת חלקים ואוטומציה תעשייתית. כדי להתחיל עם Modbus, עליך לבצע את הפעולות הבאות:
-
התחבר ל-Limelight שלך דרך Ethernet או USB-C והגדר צינור עיבוד (pipeline).
- בעוד שכל צינורות העיבוד יפיקו תוצאות דרך modbus, צינורות העיבוד של python snapscript שלנו הם ורסטיליים במיוחד למקרי שימוש תעשייתיים מכיוון שהם תומכים בקלט ופלט נתונים מותאמים אישית.
-
תן ל-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] |