> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/deployment/hi/self-hosted/enterprise/deployment-manager/plc-relay.md).

# PLC Relay

PLC Relay एक एज कंटेनर सेवा है जो PLC टैग पढ़ने और लिखने के लिए HTTP API प्रदान करती है। आप इसे Deployment Manager UI के माध्यम से एक प्रोटोकॉल चुनकर, कनेक्शन विवरण दर्ज करके, और टैग परिभाषित करके कॉन्फ़िगर करते हैं।

{% hint style="info" %}
PLC Relay केवल Enterprise ग्राहकों के लिए विशेष रूप से उपलब्ध है। [Roboflow बिक्री टीम से संपर्क करें](https://roboflow.com/sales) अधिक जानने के लिए।
{% endhint %}

## समर्थित प्रोटोकॉल

PLC Relay सेवा जोड़ते या संपादित करते समय, आप तीन प्रोटोकॉल में से एक चुनते हैं। प्रत्येक प्रोटोकॉल की अपनी कनेक्शन सेटिंग्स और टैग प्रारूप होता है।

| प्रोटोकॉल                   | PLC                                  | डिफ़ॉल्ट पोर्ट |
| --------------------------- | ------------------------------------ | -------------- |
| Allen-Bradley (EtherNet/IP) | CompactLogix, ControlLogix, Micro800 | 44818          |
| Modbus TCP                  | कोई भी Modbus TCP डिवाइस             | 502            |
| Siemens S7                  | S7-300, S7-400, S7-1200, S7-1500     | 102            |

{% hint style="warning" %}
प्रोटोकॉल बदलने से सभी कॉन्फ़िगर किए गए टैग साफ़ हो जाते हैं क्योंकि टैग पता प्रारूप प्रोटोकॉल के बीच परस्पर विनिमेय नहीं होते हैं। परिवर्तन लागू करने से पहले UI पुष्टि के लिए पूछेगा।
{% endhint %}

## कनेक्शन सेटिंग्स

### PLC पता

पता प्रारूप चयनित प्रोटोकॉल पर निर्भर करता है:

* **Allen-Bradley:** IP या होस्टनाम, वैकल्पिक रूप से इसके बाद `/slot` (उदा. `192.168.1.100/0`) या एक पूर्ण CIP रूटिंग पथ।
* **Modbus TCP:** IP या होस्टनाम, वैकल्पिक `:port` (उदा. `192.168.1.100:502`। साथ ही 32-बिट मानों के लिए Unit ID (0-255) और Word Order (big या little) भी आवश्यक है।
* **Siemens S7:** IP या होस्टनाम, वैकल्पिक `:port` (उदा. `192.168.1.100:102`। साथ ही Rack (0-7) और Slot (0-31) भी आवश्यक है।

### सिमुलेशन मोड

सक्षम होने पर, PLC Relay वास्तविक PLC से कनेक्ट होने के बजाय इन-मेमोरी सिमुलेटर का उपयोग करता है। सभी API ऑपरेशन सामान्य रूप से काम करते हैं, लेकिन मान मेमोरी में संग्रहीत होते हैं। यह हार्डवेयर के बिना परीक्षण के लिए उपयोगी है।

## टैग कॉन्फ़िगरेशन

टैग PLC डेटा पॉइंट्स को परिभाषित करते हैं जो API के माध्यम से उपलब्ध होते हैं। प्रत्येक टैग में एक नाम, डेटा प्रकार, writable फ़्लैग, और वैकल्पिक विवरण होता है।

### डेटा प्रकार

| प्रकार | विवरण                         | सीमा                            |
| ------ | ----------------------------- | ------------------------------- |
| `BOOL` | बूलियन                        | `सत्य` / `असत्य`                |
| `INT`  | 16-बिट साइन किया हुआ पूर्णांक | -32,768 से 32,767               |
| `DINT` | 32-बिट साइन किया हुआ पूर्णांक | -2,147,483,648 से 2,147,483,647 |
| `REAL` | 32-बिट फ़्लोटिंग पॉइंट        | IEEE 754                        |

### टैग नाम प्रारूप

{% tabs %}
{% tab title="Allen-Bradley" %}
टैग नाम PLC प्रोग्राम से मेल खाते हैं और अक्षर-केस के प्रति संवेदनशील होते हैं।

| शैली              | उदाहरण                        |
| ----------------- | ----------------------------- |
| सरल               | `TagName`                     |
| प्रोग्राम-स्कोप्ड | `Program:MainProgram.TagName` |
| एरे तत्व          | `TagName[0]`                  |
| UDT सदस्य         | `MyUDT.Member`                |
| {% endtab %}      |                               |

{% tab title="Modbus TCP" %}
प्रारूप: `{area}:{address}` जहाँ address एक गैर-ऋणात्मक पूर्णांक है।

| एरिया        | प्रकार(प्रकारों) | एक्सेस           | उदाहरण        |
| ------------ | ---------------- | ---------------- | ------------- |
| `कॉइल`       | BOOL             | लिखने योग्य      | `coil:0`      |
| `डिस्क्रीट`  | BOOL             | केवल पढ़ने योग्य | `discrete:5`  |
| `होल्डिंग`   | INT, DINT, REAL  | लिखने योग्य      | `holding:100` |
| `इनपुट`      | INT, DINT, REAL  | केवल पढ़ने योग्य | `input:200`   |
| {% endtab %} |                  |                  |               |

{% tab title="Siemens S7" %}
डेटा ब्लॉक प्रारूप: `DB{n}.DB[XWD]{byte}[.{bit}]`

एरिया प्रारूप: `[MIQEA][WD]?{byte}[.{bit}]`

| पता             | प्रकार             | विवरण                            |
| --------------- | ------------------ | -------------------------------- |
| `DB1.DBX0.0`    | BOOL               | डेटा ब्लॉक 1 में byte 0 का bit 0 |
| `DB1.DBW0`      | INT                | DB1 में 16-बिट शब्द              |
| `DB1.DBD0`      | DINT या REAL       | DB1 में 32-बिट डबल-वर्ड          |
| `M0.0`          | BOOL               | मेर्कर बिट                       |
| `I0.0` / `Q0.0` | BOOL               | प्रक्रिया इनपुट/आउटपुट बिट       |
| `MW0` / `MD0`   | INT / DINT या REAL | मेर्कर शब्द / डबल-वर्ड           |

S7-1200/1500 के लिए: TIA Portal में PUT/GET सक्षम करें और एक्सेस किए गए DBs पर optimized block access अक्षम करें।
{% endtab %}
{% endtabs %}

## वेब डैशबोर्ड और REST API

PLC Relay में टैग मानों की वास्तविक समय में निगरानी के लिए एक अंतर्निहित वेब डैशबोर्ड शामिल है। सेवा चलने के बाद, इसे यहाँ एक्सेस करें `http://<device-ip>:8007`.

डैशबोर्ड यहाँ इंटरैक्टिव Swagger दस्तावेज़ीकरण भी होस्ट करता है `/docs` और यहाँ एक विज़ुअल कॉन्फ़िग बिल्डर भी है `/static/config-builder.html`.

### API एंडपॉइंट्स

| विधि | पथ               | विवरण                                      |
| ---- | ---------------- | ------------------------------------------ |
| GET  | `/healthz`       | कनेक्शन और सत्यापन स्थिति के साथ हेल्थ चेक |
| GET  | `/all_tags`      | सभी टैग्स के वर्तमान मान पढ़ें             |
| GET  | `/read?tag=name` | नाम से एकल टैग पढ़ें                       |
| POST | `/write`         | एकल टैग लिखें                              |
| POST | `/read_batch`    | एक साथ कई टैग पढ़ें                        |
| POST | `/write_batch`   | एक साथ कई टैग लिखें                        |
| GET  | `/schema`        | सभी टैग परिभाषाएँ प्राप्त करें             |
| POST | `/validate`      | PLC के विरुद्ध टैग सत्यापन को फिर से चलाएँ |

## कनेक्शन मॉनिटरिंग

डिवाइस पेज वर्तमान कनेक्शन स्थिति, सक्रिय प्रोटोकॉल, और नवीनतम टैग मानों के साथ एक लाइव PLC Relay स्थिति कार्ड दिखाता है। जब रिले PLC तक नहीं पहुँच पाता, तो कार्ड एक unreachable बैनर दिखाता है।

जब कोई रिले कनेक्टिविटी खो देता है, तो सूचना पाने के लिए डिवाइस के "Device Alerts" टैब से एक "PLC Disconnected" अलर्ट जोड़ें। देखें [डिवाइस अलर्ट सेट अप करें](/deployment/hi/self-hosted/enterprise/deployment-manager/setting-up/set-up-device-alerts.md).

## समस्या निवारण

| लक्षण                                    | समाधान                                                                                                                        |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| "PLC connected नहीं है" (Allen-Bradley)  | PLC पता प्रारूप (IP/Slot) सत्यापित करें, पोर्ट 44818 की पहुँच जाँचें                                                          |
| "PLC connected नहीं है" (Modbus)         | IP/port (डिफ़ॉल्ट 502) जाँचें और सत्यापित करें कि Unit ID डिवाइस से मेल खाता है                                               |
| "PLC connected नहीं है" (Siemens S7)     | IP/port (डिफ़ॉल्ट 102), rack, और slot मान जाँचें; S7-1200/1500 के लिए PUT/GET सक्षम करें और optimized block access अक्षम करें |
| "Function refused" (Siemens S7)          | TIA Portal में PUT/GET अक्षम है, या लक्ष्य DB पर optimized block access सक्षम है                                              |
| REAL मान कचरा जैसा पढ़ा जाता है (Modbus) | विपरीत Word Order (big बनाम little) आज़माएँ                                                                                   |
| सत्यापन में NOT\_FOUND दिखता है          | सटीक टैग नाम (अक्षर-केस के प्रति संवेदनशील) के लिए PLC प्रोग्राम जाँचें                                                       |
