Modbus API
Limelight OS में (ipaddress):502 पर एक Modbus TCP सर्वर चलता है
-
Integers: Integers SIGNED होते हैं और twos complement का उपयोग करके एन्कोड किए जाते हैं। यह विधि सार्वभौमिक रूप से मान्यता प्राप्त है और सही साइन व्याख्या सुनिश्चित करती है।
-
Floating-Point Numbers: Floats IEEE 754 मानक का उपयोग करके एन्कोड किए जाते हैं। Modbus प्रोटोकॉल की 16-बिट रजिस्टर सीमा का पालन करने के लिए, floating-point numbers को दो भागों में विभाजित किया जाता है:
- उच्च-क्रम के 16 बिट्स दूसरे रजिस्टर में संग्रहीत होते हैं, और निम्न-क्रम के 16 बिट्स पहले रजिस्टर में।
- Little-endian प्रारूप Modbus spec के साथ संगतता सुनिश्चित करता है।
USB और Ethernet Limelights का परीक्षण ModbusTool के साथ किया जा सकता है
Modbus पार्ट इंस्पेक्शन और औद्योगिक स्वचालन उपयोग-मामलों के लिए समर्थन सक्षम करता है। Modbus के साथ शुरू करने के लिए, आपको निम्नलिखित करना होगा:
-
Ethernet या USB-C के माध्यम से अपने Limelight से कनेक्ट करें और एक पाइपलाइन कॉन्फ़िगर करें।
- जबकि सभी पाइपलाइन modbus पर परिणाम आउटपुट करेंगी, हमारी python snapscript पाइपलाइन औद्योगिक उपयोग-मामलों के लिए अत्यंत बहुमुखी हैं क्योंकि वे कस्टम इनपुट आउटपुट डेटा का समर्थन करती हैं।
-
अपने Limelight को एक स्थिर IP पता दें
-
अपने Limelight को modbus नेटवर्क से जोड़ें।
Modbus Register विनिर्देश
Input / Read-Only Registers
| Register | Key | Type | विवरण |
|---|---|---|---|
| 0 | hb | int | Heartbeat मान। प्रति फ्रेम एक बार बढ़ता है |
| 1 | pipelineIndex | int | वर्तमान सक्रिय पाइपलाइन इंडेक्स (0 .. 9)। |
| 2 | validTarget | int | यदि वैध लक्ष्य मौजूद है तो 1, अन्यथा 0। |
| 3 | resultsCount | int | कुल परिणाम गणना। सभी fiducial डिटेक्शन, neural डिटेक्शन, आदि शामिल हैं |
| 4 | ID | int | ID / टीम नंबर |
| 5 | modbusMode | int | Modbus Server आउटपुट मोड। |
| 6 | cpuTemp | int | CPU तापमान सेल्सियस में। |
| 7 | cpuUsage | int | CPU उपयोग प्रतिशत। |
| 8 | ramUsage | int | RAM उपयोग प्रतिशत। |
| 9 | currentFPS | int | वर्तमान फ्रेम प्रति सेकंड। |
| 10 | captureLatency | int | कैप्चर विलंबता। (मिलीसेकंड) |
| 11 | targetLatency | int | प्रोसेसिंग विलंबता। (मिलीसेकंड) |
| 12-15 | reserved | int |
यदि Output Mode 0 पर सेट है:
| Register | Key | Type | विवरण |
|---|---|---|---|
| 16,17 | tx | float32 | लक्ष्य के लिए क्षैतिज कोणीय ऑफसेट डिग्री में |
| 18,19 | ty | float32 | लक्ष्य के लिए ऊर्ध्वाधर कोणीय ऑफसेट डिग्री में |
| 20,21 | txnc | float32 | लक्ष्य के लिए क्षैतिज कोणीय ऑफसेट (principal pixel के सापेक्ष) डिग्री में |
| 22,23 | tync | float32 | लक्ष्य के लिए ऊर्ध्वाधर कोणीय ऑफसेट (principal pixel के सापेक्ष) डिग्री में |
| 24,25 | ta | float32 (0-1) | छवि आकार के प्रतिशत के रूप में लक्ष्य का क्षेत्रफल |
| 26 | fiducialID | int | वर्तमान AprilTag ID |
| 27 | classifierClass | int | वर्तमान classifier पाइपलाइन आउटपुट का Class Index। यदि कोई Classifier परिणाम नहीं है तो -1 |
| 28 | detectorClass | int | वर्तमान detector पाइपलाइन आउटपुट का Class Index। यदि कोई Detector परिणाम नहीं है तो -1 |
| 29 | reserved | int | |
| 30,31 | python[0] | float32 | कस्टम python आउटपुट array [0] |
| 32,33 | python[1] | float32 | कस्टम python आउटपुट array [1] |
| 34,35 | python[2] | float32 | कस ्टम python आउटपुट array [2] |
| 36,37 | python[3] | float32 | कस्टम python आउटपुट array [3] |
| 38,39 | python[4] | float32 | कस्टम python आउटपुट array [4] |
| 40,41 | python[5] | float32 | कस्टम python आउटपुट array [5] |
| 42,43 | python[6] | float32 | कस्टम python आउटपुट array [6] |
| 44,45 | python[7] | float32 | कस्टम python आउटपुट array [7] |
Holding / Write-Only Registers
| Register | Key | Type | विवरण |
|---|---|---|---|
| 0 | unlocked | int | पाइपलाइन को अनलॉक करता है। पाइपलाइन स्विचिंग और कस्टम इनपुट डेटा सक्षम करने के लिए 1 पर सेट करें |
| 1 | pipeIndex | int | यदि "unlocked" 1 पर सेट है तो पाइपलाइन इंडेक्स सेट करता है |
| 2 | outputMode | int | आउटपुट मोड सेट करता है। 0 - standard, 1 - rawtargets (WIP) |
| 3 | reserved | int | |
| 4 | reserved | int | |
| 5 | reserved | int | |
| 6 | reserved | int | |
| 7 | reserved | int | |
| 8 | pythonInput[0] | int | कस्टम python इनपुट array [0] |
| 9 | pythonInput[1] | int | कस्टम python इनपुट array [1] |
| 10 | pythonInput[2] | int | कस्टम python इनपुट array [2] |
| 11 | pythonInput[3] | int | कस्टम python इनपुट array [3] |
| 12 | pythonInput[4] | int | कस्टम python इनपुट array [4] |
| 13 | pythonInput[5] | int | कस्टम python इनपुट array [5] |
| 14 | pythonInput[6] | int | कस्टम python इनपुट array [6] |
| 15 | pythonInput[7] | int | कस्टम python इनपुट array [7] |
| 16,17 | pythonInput[8] | float32 | कस्टम python इनपुट array [8] |
| 18,19 | pythonInput[9] | float32 | कस्टम python इनपुट array [9] |
| 20,21 | pythonInput[10] | float32 | कस्टम python इनपुट array [10] |
| 22,23 | pythonInput[11] | float32 | कस्टम python इनपुट array [11] |
| 24,25 | pythonInput[12] | float32 | कस्टम python इनपुट array [12] |
| 26,27 | pythonInput[13] | float32 | कस्टम python इनपुट array [13] |
| 28,29 | pythonInput[14] | float32 | कस्टम python इनपुट array [14] |
| 30,31 | pythonInput[15] | float32 | कस्टम python इनपुट array [15] |