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] |