Modbus

From alpha
Jump to navigation Jump to search

मोडबस एक डेटा संचार प्रोटोकॉल है जो मूल रूप से 1979 में मोडिकॉन (अब शिनाईज़ेर इलेक्ट्रिक ) द्वारा अपने निर्देशयोग्य तर्क नियंत्रक ्स (पीएलसी) के साथ उपयोग के लिए प्रकाशित किया गया था। मोडबस एक 'वास्तविक' मानकीकरण संचार प्रोटोकॉल बन गया है और अब यह औद्योगिक इलेक्ट्रानिक्स उपकरणों को जोड़ने का एक सामान्य रूप से उपलब्ध साधन है।[1] मोडबस औद्योगिक वातावरण में लोकप्रिय है क्योंकि यह खुले तौर पर प्रकाशित और रॉयल्टी मुक्त है। यह औद्योगिक अनुप्रयोगों के लिए विकसित किया गया था, अन्य मानकों की तुलना में तैनात करना और बनाए रखना अपेक्षाकृत आसान है, और प्रेषित किए जाने वाले डेटा के प्रारूप पर कुछ प्रतिबंध लगाता है।

मोडबस प्रोटोकॉल ट्रांसपोर्ट लेयर के रूप में आनुक्रमिक द्वार , ईथरनेट या इंटरनेट प्रोटोकॉल सूट का उपयोग करता है। मोडबस एक ही केबल या ईथरनेट नेटवर्क से जुड़े कई उपकरणों से संचार का समर्थन करता है। उदाहरण के लिए, एक उपकरण हो सकता है जो तापमान को मापता है और एक अन्य उपकरण एक ही केबल से जुड़े आर्द्रता को मापने के लिए, दोनों एक ही कंप्यूटर पर माप संचार करते हैं, मोडबस के माध्यम से।

मोडबस का उपयोग अक्सर पर्यवेक्षी नियंत्रण और डेटा अधिग्रहण (SCADA) सिस्टम में सुदूर टर्मिनल इकाई (RTU) के साथ प्लांट / सिस्टम सुपरवाइजरी कंप्यूटर को जोड़ने के लिए किया जाता है। फ़ैक्टरी उपकरणों के औद्योगिक नियंत्रण से कई डेटा प्रकारों का नामकरण किया जाता है, जैसे कि सीढ़ी तर्क ड्राइविंग रिले में इसके उपयोग के कारण: एकल-बिट भौतिक आउटपुट को कॉइल कहा जाता है, और एकल-बिट भौतिक इनपुट को असतत इनपुट कहा जाता है या संपर्क।

मोडबस प्रोटोकॉल का विकास और अद्यतन मोडबस संगठन द्वारा प्रबंधित किया गया है[2] अप्रैल 2004 से, जब श्नाइडर इलेक्ट्रिक ने उस संगठन को अधिकार हस्तांतरित किए।[3] मोडबस संगठन मोडबस-संगत उपकरणों के उपयोगकर्ताओं और आपूर्तिकर्ताओं का एक संघ है जो प्रौद्योगिकी के निरंतर उपयोग की वकालत करता है।[4] मोडबस संगठन, इंक. मोडबस प्रोटोकॉल के प्रचार और विकास के लिए एक व्यापार संघ है।[2]


सीमाएं

  • चूंकि मोडबस को 1970 के दशक के अंत में प्रोग्रामेबल लॉजिक कंट्रोलर्स से संवाद करने के लिए डिज़ाइन किया गया था, डेटा प्रकारों की संख्या उस समय तक सीमित है जो उस समय पीएलसी द्वारा समझी गई थी। बड़े बाइनरी ऑब्जेक्ट समर्थित नहीं हैं।
  • डेटा ऑब्जेक्ट का विवरण खोजने के लिए नोड के लिए कोई मानक तरीका मौजूद नहीं है, उदाहरण के लिए, यह जानने के लिए कि एक रजिस्टर मान 30 और 175 डिग्री के बीच तापमान का प्रतिनिधित्व करता है।
  • चूंकि मोडबस एक क्लाइंट/सर्वर (पूर्व में मास्टर/गुलाम) है[5] प्रोटोकॉल, इवेंट हैंडलर तंत्र (ईथरनेट टीसीपी/आईपी को छोड़कर, जिसे ओपन-एमबस कहा जाता है) द्वारा डेटा प्राप्त करने के लिए फील्ड डिवाइस के लिए कोई रास्ता नहीं है क्योंकि क्लाइंट नोड को नियमित रूप से प्रत्येक फील्ड डिवाइस को पोल करना चाहिए और डेटा में बदलाव की तलाश करनी चाहिए। यह उन अनुप्रयोगों में बैंडविड्थ (कंप्यूटिंग) और नेटवर्क समय की खपत करता है जहां बैंडविड्थ महंगा हो सकता है, जैसे कम-बिट-रेट रेडियो लिंक पर।
  • मोडबस एक डेटा लिंक पर 247 उपकरणों को संबोधित करने के लिए प्रतिबंधित है, जो फ़ील्ड उपकरणों की संख्या को सीमित करता है जो मूल स्टेशन से जुड़ा हो सकता है (फिर से, ईथरनेट टीसीपी/आईपी एक अपवाद है)।
  • मोडबस प्रोटोकॉल स्वयं अनधिकृत कमांड या डेटा के अवरोधन के विरुद्ध कोई सुरक्षा प्रदान नहीं करता है।[6]


मोडबस ऑब्जेक्ट प्रकार

निम्नलिखित ऑब्जेक्ट प्रकार एक मोडबस सर्वर द्वारा एक मोडबस क्लाइंट डिवाइस को प्रदान किए जा सकते हैं:[7]पते मूल के प्रतिनिधि हैं मोडिकॉन विनिर्देश। वर्तमान मानक के तहत उपयोग किए गए कमांड द्वारा पहचाने गए ऑब्जेक्ट प्रकार के साथ पता 0 - 65535 हो सकता है कॉइल या रजिस्टर को पढ़ने या लिखने के लिए।

Object type Access Size Address Space
Coil Read-write 1 bit 00001 – 09999
Discrete input Read-only 1 bit 10001 – 19999
Input register Read-only 16 bits 30001 – 39999
Holding register Read-write 16 bits 40001 – 49999


प्रोटोकॉल संस्करण

मोडबस प्रोटोकॉल के संस्करण सीरियल पोर्ट और ईथरनेट और अन्य प्रोटोकॉल के लिए मौजूद हैं जो इंटरनेट प्रोटोकॉल सूट का समर्थन करते हैं। मोडबस प्रोटोकॉल के कई रूप हैं:

  • मोडबस आरटीयू (रिमोट टर्मिनल यूनिट) - धारावाहिक संचार में उपयोग किया जाता है, और यह मोडबस के लिए उपलब्ध सबसे आम कार्यान्वयन है। मोडबस आरटीयू प्रोटोकॉल संचार के लिए डेटा के एक कॉम्पैक्ट, बाइनरी प्रतिनिधित्व का उपयोग करता है। आरटीयू प्रारूप डेटा की विश्वसनीयता सुनिश्चित करने के लिए एक त्रुटि जांच तंत्र के रूप में चक्रीय अतिरेक चेक चेकसम के साथ कमांड / डेटा का पालन करता है। एक मोडबस आरटीयू संदेश को अंतर-चरित्र झिझक के बिना लगातार प्रेषित किया जाना चाहिए। मोडबस संदेशों को निष्क्रिय (मौन) अवधियों द्वारा तैयार (अलग) किया जाता है।
  • मोडबस एएससीआईआई - धारावाहिक संचार में उपयोग किया जाता है और प्रोटोकॉल संचार के लिए एएससीआईआई वर्णों का उपयोग करता है। एएससीआईआई प्रारूप एक अनुदैर्ध्य अतिरेक चेक चेकसम का उपयोग करता है। मोडबस एएससीआईआई संदेशों को एक अग्रणी कोलन ( : ) और अनुगामी न्यूलाइन (सीआर/एलएफ) द्वारा तैयार किया जाता है।
  • मोडबस टीसीपी/आईपी या मोडबस टीसीपी - टीसीपी/आईपी नेटवर्क पर संचार के लिए इस्तेमाल किया जाने वाला मोडबस संस्करण, पोर्ट 502 से जुड़ता है।[8] इसमें चेकसम गणना की आवश्यकता नहीं है, क्योंकि निचली परतें पहले से ही चेकसम सुरक्षा प्रदान करती हैं।
  • टीसीपी/आईपी पर मोडबस, टीसीपी पर मोडबस, या मोडबस आरटीयू/आईपी - एक संस्करण जो मोडबस टीसीपी से अलग है जिसमें एक चेकसम पेलोड में शामिल है, जैसा कि मोडबस आरटीयू के साथ है।
  • यूडीपी पर मोडबस - कुछ ने आईपी नेटवर्क पर डेटाग्राम प्रोटेकॉलका उपयोग करें पर मोडबस का उपयोग करने का प्रयोग किया है, जो टीसीपी के ओवरहेड को हटा देता है।[9]
  • मोडबस प्लस (मोडबस, एमबी, या एमबीपीएस) - मोडबस प्लस श्नाइडर इलेक्ट्रिक के स्वामित्व में है और अन्य वेरिएंट के विपरीत, यह कई क्लाइंट्स के बीच पीयर-टू-पीयर संचार का समर्थन करता है।[10] तेज़ उच्च-स्तरीय डेटा लिंक नियंत्रण टोकन रोटेशन को संभालने के लिए इसे एक समर्पित सह-प्रोसेसर की आवश्यकता होती है। यह 1 Mbit/s पर ट्विस्टेड पेयर का उपयोग करता है और इसमें प्रत्येक नोड पर ट्रांसफॉर्मर आइसोलेशन शामिल होता है, जो इसे वोल्टेज/लेवल-ट्रिगर के बजाय ट्रांज़िशन/एज-ट्रिगर बनाता है। मोडबस प्लस को कंप्यूटर से जोड़ने के लिए विशेष हार्डवेयर की आवश्यकता होती है, आमतौर पर उद्योग मानक वास्तुकला, परिधीय घटक इंटरकनेक्ट या पीसी कार्ड बस के लिए बनाया गया कार्ड।
  • पेमेक्स मोडबस - ऐतिहासिक और प्रवाह डेटा के समर्थन के साथ मानक मोडबस का विस्तार। यह पेमेक्स तेल और गैस कंपनी के लिए प्रक्रिया नियंत्रण में उपयोग के लिए डिज़ाइन किया गया था और इसे व्यापक रूप से अपनाया नहीं गया था।
  • एनरॉन मोडबस - 32-बिट पूर्णांक और फ्लोटिंग-पॉइंट चर, और ऐतिहासिक और प्रवाह डेटा के समर्थन के साथ एनरॉन द्वारा विकसित मानक मोडबस का एक और विस्तार। डेटा प्रकारों को मानक पतों का उपयोग करके मैप किया जाता है।[11] डेटा को कैसे संग्रहीत किया जाना चाहिए, इसके लिए ऐतिहासिक डेटा एक अमेरिकन पेट्रोलियम इंस्टीट्यूट (एपीआई) उद्योग मानक को पूरा करने के लिए कार्य करता है।[citation needed]

डेटा मॉडल और फ़ंक्शन कॉल ऊपर सूचीबद्ध पहले चार प्रकारों के लिए समान हैं; केवल एनकैप्सुलेशन अलग है। हालाँकि वेरिएंट इंटरऑपरेबल नहीं हैं, न ही फ्रेम फॉर्मेट हैं।

संचार और उपकरण

मोडबस पर संचार करने वाले प्रत्येक उपकरण (अर्थात, डेटा स्थानांतरित करना) को एक विशिष्ट पता दिया जाता है।[clarification needed]

मोडबस आरटीयू, मोडबस एएससीआईआई, और मोडबस प्लस (जो सभी RS-485 सिंगल-केबल मल्टी-ड्रॉप नेटवर्क हैं) में, केवल 'मास्टर' के रूप में निर्दिष्ट नोड ही कमांड आरंभ कर सकता है। अन्य सभी डिवाइस 'गुलाम' हैं जो अनुरोधों और आदेशों का जवाब देते हैं।[12] मोडबस टीसीपी जैसे ईथरनेट का उपयोग करने वाले प्रोटोकॉल के लिए नामकरण अलग है। यहां कोई भी डिवाइस मोडबस कमांड भेज सकता है, और जैसा कि कंप्यूटर नेटवर्क में होता है, कमांड भेजने वाला डिवाइस 'क्लाइंट' होता है और प्रतिक्रिया 'सर्वर' से आती है।[12]

कई मोडेम और गेटवे मोडबस का समर्थन करते हैं, क्योंकि यह एक सरल और अक्सर कॉपी किया गया प्रोटोकॉल है। उनमें से कुछ विशेष रूप से इस प्रोटोकॉल के लिए डिजाइन किए गए थे। विभिन्न कार्यान्वयन वायरलाइन या बेतार संचार का उपयोग करते हैं, जैसे आईएसएम रेडियो बैंड में, और यहां तक ​​कि लघु संदेश सेवा (एसएमएस) या सामान्य पैकेट रेडियो सेवा (जीपीआरएस)।

कमांड

मोडबस कमांड एक मोडबस डिवाइस को निर्देश दे सकता है:

  • इसके एक रजिस्टर में मान बदलें, जो कि कॉइल और होल्डिंग रजिस्टरों को लिखा गया है
  • एक I/O पोर्ट पढ़ें: असतत इनपुट या कॉइल से डेटा पढ़ें
  • डिवाइस को उसके कॉइल और होल्डिंग रजिस्टरों में निहित एक या एक से अधिक मान वापस भेजने का आदेश दें

एक मोडबस कमांड में डिवाइस का मोडबस पता होता है (1 से 247)। केवल संबोधित डिवाइस ही कमांड पर प्रतिक्रिया और कार्य करेगा, भले ही अन्य डिवाइस इसे प्राप्त कर सकते हैं (एक अपवाद विशिष्ट ब्रॉडकास्टेबल कमांड है जो नोड 0 पर भेजा जाता है, जिस पर कार्रवाई की जाती है लेकिन स्वीकार नहीं किया जाता है)।

सभी मोडबस कमांड में प्राप्तकर्ता को ट्रांसमिशन त्रुटियों का पता लगाने की अनुमति देने के लिए चेकसम जानकारी होती है।

फ़्रेम प्रारूप

एक मोडबस फ्रेम में एक एप्लिकेशन डेटा यूनिट (ADU) होता है, जो एक प्रोटोकॉल डेटा यूनिट (PDU) को इनकैप्सुलेट करता है:[8]* एडीयू = पता + पीडीयू + त्रुटि जांच।

  • पीडीयू = फ़ंक्शन कोड + डेटा।

मोडबस डेटा फ्रेम में, बहु-बाइट मान का सबसे महत्वपूर्ण बाइट दूसरों के सामने भेजा जाता है।

सभी मोडबस संस्करण निम्न फ़्रेम स्वरूपों में से एक का उपयोग करते हैं।[1]


मोडबस आरटीयू फ्रेम प्रारूप

यह प्रारूप मुख्य रूप से एसिंक्रोनस सीरियल डेटा लाइनों जैसे RS-485/EIA-485 पर उपयोग किया जाता है। इसका नाम रिमोट टर्मिनल यूनिट को संदर्भित करता है।

Name Length (bits) Function
Start 3.5 x 8 At least 3+12 character times (28 bits) of silence (mark condition)
Address 8 Station address
Function 8 Indicates the function code e.g. "read coils"
Data n × 8 Data + length will be filled depending on the message type
CRC 16 Cyclic redundancy check
End 3.5 x 8 At least 3+12 character times (28 bits) of silence (mark condition) between frames

सीआरसी गणना:

  • बहुपद: x16 + x15 + x2 + 1 (सीआरसी-16-एएनएसआई को सीआरसी-16-आईबीएम के रूप में भी जाना जाता है, सामान्य हेक्साडेसिमल बीजगणितीय बहुपद 8005 और उलटा A001).
  • प्रारंभिक मूल्य: 65,535।
  • हेक्साडेसिमल में फ्रेम का उदाहरण: 01 04 02 FF FF B8 80 (5 बाइट्स के लिए CRC-16-ANSI गणना 01 को FF देता है 80B8, जो कम से कम महत्वपूर्ण बाइट पहले प्रसारित होता है)।

मोडबस एएससीआईआई फ्रेम प्रारूप

मुख्य रूप से 7-बिट या 8-बिट अतुल्यकालिक सीरियल लाइनों पर उपयोग किया जाता है।

Name Length (bytes) Function
Start 1 Colon : (ASCII value 3A16)
Address 2 Station address
Function 2 Indicates the function code e.g. "read coils"
Data n × 2 Data + length will be filled depending on the message type
LRC 2 Checksum (longitudinal redundancy check)
End 2 Carriage return + line feed (CR/LF) pair (ASCII values 0D16 and 0A16)

पता, फ़ंक्शन, डेटा और LRC ASCII हेक्साडेसिमल एन्कोडेड मान हैं, जिससे 8-बिट मान (0–255) को 0–9 और A–F की श्रेणी से दो मानव-पठनीय ASCII वर्णों के रूप में एन्कोड किया गया है। उदाहरण के लिए, 122 का मान (7A16) दो ASCII वर्णों, 7 और A के रूप में एन्कोड किया गया है, और दो बाइट्स के रूप में प्रसारित किया गया है, 55 (3716, ASCII मान 7 के लिए) और 65 (4116, A के लिए ASCII मान)।

LRC की गणना 8-बिट मानों (प्रारंभ और अंत वर्णों को छोड़कर), अस्वीकृत (दो के पूरक) और 8-बिट मान के रूप में एन्कोडेड के योग के रूप में की जाती है। उदाहरण के लिए, यदि पता, फ़ंक्शन और डेटा 247, 3, 19, 137, 0, और 10 हैं, तो उनके योग (416) का पूरक -416 है; इसे 8 बिट्स तक ट्रिम किया गया है 96 (256 × 2 − 416 = 6016), निम्नलिखित 17 ASCII कैरेक्टर फ्रेम दे रहा है: :F7031389000A60␍␊. एलआरसी केवल एक चेकसम के रूप में उपयोग के लिए निर्दिष्ट है: क्योंकि यह प्रेषित वर्णों के बजाय एन्कोडेड डेटा पर गणना की जाती है, इसकी 'अनुदैर्ध्य' विशेषता एकल-बिट त्रुटियों का पता लगाने के लिए समता बिट्स के उपयोग के लिए उपलब्ध नहीं है।

मोडबस टीसीपी फ्रेम प्रारूप

मुख्य रूप से ईथरनेट नेटवर्क पर उपयोग किया जाता है।

Name Length (bytes) Function
Transaction identifier 2 For synchronization between messages of server and client
Protocol identifier 2 0 for Modbus/TCP
Length field 2 Number of remaining bytes in this frame
Unit identifier 1 Server address (255 if not used)
Function code 1 Function codes as in other variants
Data bytes n Data as response or commands

यूनिट पहचानकर्ता का उपयोग मोडबस/टीसीपी उपकरणों के साथ किया जाता है जो कई मोडबस उपकरणों के संयोजन होते हैं, उदा। मोडबस/टीसीपी से मोडबस आरटीयू गेटवे। ऐसे मामले में, इकाई पहचानकर्ता गेटवे के पीछे डिवाइस का सर्वर पता होता है। मूल रूप से मोडबस/टीसीपी-सक्षम डिवाइस आमतौर पर यूनिट पहचानकर्ता को अनदेखा करते हैं।

कार्य और आदेश

मोडबस सर्वर में प्रमुख वैचारिक संस्थाओं में निम्नलिखित शामिल हैं:

  • कॉइल्स: पढ़ने योग्य और लिखने योग्य, 1 बिट (ऑफ/ऑन)
  • असतत इनपुट: केवल पढ़ने के लिए, 1 बिट (ऑफ/ऑन)
  • इनपुट रजिस्टर: रीड-ओनली माप और स्थितियाँ, 16 बिट्स (0–65,535)
  • होल्डिंग रजिस्टर: पढ़ने योग्य और लिखने योग्य कॉन्फ़िगरेशन मान, 16 बिट (0–65,535)

इन संस्थाओं को पढ़ने और लिखने के आदेश निम्न तालिका में संक्षेपित हैं।[7] सबसे आदिम पढ़ने और लिखने को बोल्ड में दिखाया गया है।

कुछ स्रोत शब्दावली का उपयोग करते हैं जो मानक से भिन्न होती है; उदाहरण के लिए सिंगल कॉइल लिखने के बजाय फोर्स सिंगल कॉइल।[13] मोडबस फ़ंक्शन कोड की तीन श्रेणियां हैं: सार्वजनिक, उपयोगकर्ता परिभाषित और आरक्षित।

Public Modbus function codes
Function type Function name Function code Comment
Data Access Bit access Physical Discrete Inputs Read Discrete Inputs 2
Internal Bits or Physical Coils Read Coils 1
Write Single Coil 5
Write Multiple Coils 15
16-bit access Physical Input Registers Read Input Registers 4
Internal Registers or Physical Output Registers Read Multiple Holding Registers 3
Write Single Holding Register 6
Write Multiple Holding Registers 16
Read/Write Multiple Registers 23
Mask Write Register 22
Read FIFO Queue 24
File Record Access Read File Record 20
Write File Record 21
Diagnostics Read Exception Status 7 serial only
Diagnostic 8 serial only
Get Com Event Counter 11 serial only
Get Com Event Log 12 serial only
Report Server ID 17 serial only
Read Device Identification 43
Other Encapsulated Interface Transport 43


अनुरोधों और प्रतिक्रियाओं का प्रारूप

अनुरोध और प्रतिक्रियाएँ ऊपर वर्णित फ़्रेम स्वरूपों का अनुसरण करती हैं। यह खंड सबसे अधिक उपयोग किए जाने वाले फ़ंक्शन कोड के डेटा स्वरूपों का विवरण देता है।

फंक्शन कोड 1 (कॉइल पढ़ें) और 2 (असतत इनपुट पढ़ें)

अनुरोध:

  • पढ़ने के लिए पहले कॉइल/डिस्क्रीट इनपुट का पता (16-बिट)
  • पढ़ने के लिए कॉइल्स/डिस्क्रीट इनपुट्स की संख्या (16-बिट)

सामान्य प्रतिक्रिया:

  • पालन करने के लिए कॉइल / असतत इनपुट मानों के बाइट्स की संख्या (8-बिट)
  • कॉइल/असतत इनपुट मान (8 कॉइल/असतत इनपुट प्रति बाइट)

प्रत्येक कॉइल/असतत इनपुट का मान बाइनरी है (ऑफ के लिए 0, ऑन के लिए 1)। पहले अनुरोधित कॉइल/असतत इनपुट को उत्तर में पहले बाइट के कम से कम महत्वपूर्ण बिट के रूप में संग्रहीत किया जाता है। यदि कॉइल/असतत इनपुट की संख्या 8 का गुणक नहीं है, तो अंतिम बाइट का सबसे महत्वपूर्ण बिट शून्य से भरा जाएगा।

उदाहरण के लिए, यदि ग्यारह कॉइल का अनुरोध किया जाता है, तो दो बाइट मानों की आवश्यकता होती है। मान लीजिए कि उन क्रमिक कॉइल्स की स्थिति ऑन, ऑफ, ऑन, ऑफ, ऑफ, ऑन, ऑन, ऑन, ऑफ, ऑन, ऑन है, तो प्रतिक्रिया होगी 02 A7 03 हेक्साडेसिमल में।

क्योंकि उत्तर संदेश में लौटाई गई बाइट संख्या केवल 8 बिट चौड़ी है और प्रोटोकॉल ओवरहेड 5 बाइट्स है, अधिकतम 2008 (251 x 8) असतत इनपुट या कॉइल को एक बार में पढ़ा जा सकता है।

फंक्शन कोड 5 (फोर्स/सिंगल कॉइल लिखें)

अनुरोध:

  • कॉइल का पता (16-बिट)
  • बाध्य करने/लिखने का मान: बंद के लिए 0 और चालू के लिए 65,280 (हेक्साडेसिमल में FF00)

सामान्य प्रतिक्रिया: अनुरोध के समान।

फंक्शन कोड 15 (बल/कई कॉइल लिखें)

अनुरोध:

  • बाध्य करने/लिखने के लिए पहले कॉइल का पता (16-बिट)
  • बाध्य करने/लिखने के लिए कॉइल्स की संख्या (16-बिट)
  • पालन ​​करने के लिए कॉइल वैल्यू के बाइट्स की संख्या (8-बिट)
  • कुंडली मान (8 कुंडल मान प्रति बाइट)

प्रत्येक कॉइल का मान बाइनरी है (ऑफ के लिए 0, ऑन के लिए 1)। पहले अनुरोधित कॉइल को अनुरोध में पहले बाइट के कम से कम महत्वपूर्ण बिट के रूप में संग्रहीत किया जाता है। यदि कई कॉइल 8 के गुणक नहीं हैं, तो अंतिम बाइट का सबसे महत्वपूर्ण बिट शून्य से भरा होना चाहिए। फ़ंक्शन कोड 1 और 2 के लिए उदाहरण देखें।

सामान्य प्रतिक्रिया:

  • पहले कॉइल का पता (16-बिट)
  • कॉइल्स की संख्या (16-बिट)

फंक्शन कोड 4 (इनपुट रजिस्टर पढ़ें) और 3 (होल्डिंग रजिस्टर पढ़ें)

अनुरोध:

  • पढ़ने के लिए पहले रजिस्टर का पता (16-बिट)
  • पढ़ने के लिए रजिस्टरों की संख्या (16-बिट)

सामान्य प्रतिक्रिया:

  • अनुसरण करने के लिए रजिस्टर मूल्यों के बाइट्स की संख्या (8-बिट)
  • रजिस्टर मान (16 बिट प्रति रजिस्टर)

क्योंकि मोडबस पीडीयू की अधिकतम लंबाई 253 है (आरएस485 पर अधिकतम मोडबस एडीयू लंबाई 256 से अनुमानित), आरटीयू प्रारूप का उपयोग करते समय 125 रजिस्टरों तक और टीसीपी पर 123 तक अनुरोध किया जा सकता है।[7]


फंक्शन कोड 6 (प्रीसेट/सिंगल होल्डिंग रजिस्टर लिखें)

अनुरोध:

  • पूर्व निर्धारित/लिखने के लिए रजिस्टर रखने का पता (16-बिट)
  • होल्डिंग रजिस्टर का नया मूल्य (16-बिट)

सामान्य प्रतिक्रिया: अनुरोध के समान।

फंक्शन कोड 16 (प्रीसेट/मल्टीपल होल्डिंग रजिस्टर लिखें)

अनुरोध:

  • प्रीसेट/लिखने के लिए पहले होल्डिंग रजिस्टर का पता (16-बिट)
  • प्रीसेट/लिखने के लिए होल्डिंग रजिस्टरों की संख्या (16-बिट)
  • अनुसरण करने के लिए रजिस्टर मूल्यों के बाइट्स की संख्या (8-बिट)
  • होल्डिंग रजिस्टरों के नए मूल्य (प्रति रजिस्टर 16 बिट)

क्योंकि एक मोडबस पीडीयू की अधिकतम लंबाई 253 है (RS485 पर 256 की अधिकतम मोडबस एडीयू लंबाई से अनुमानित), एक बार में 123 रजिस्टरों को लिखा जा सकता है।[7]

सामान्य प्रतिक्रिया:

  • पहले प्रीसेट/लिखित होल्डिंग रजिस्टर का पता (16-बिट)
  • प्रीसेट/लिखित होल्डिंग रजिस्टरों की संख्या (16-बिट)

अपवाद प्रतिक्रियाएं

सामान्य प्रतिक्रिया के लिए, सर्वर फ़ंक्शन कोड को दोहराता है। क्या सर्वर किसी त्रुटि की रिपोर्ट करना चाहता है, यह अनुरोधित फ़ंक्शन कोड प्लस 128 (हेक्स 0x80) (3 बन जाता है 131 = हेक्स 0x83), और इसमें केवल एक बाइट डेटा शामिल होगा, जिसे अपवाद कोड के रूप में जाना जाता है।

मुख्य मोडबस अपवाद कोड

Code Text Details
1 Illegal Function Function code received in the query is not recognized or allowed by server
2 Illegal Data Address Data address of some or all the required entities are not allowed or do not exist in server
3 Illegal Data Value Value is not accepted by server
4 Server Device Failure Unrecoverable error occurred while server was attempting to perform requested action
5 Acknowledge Server has accepted request and is processing it, but a long duration of time is required. This response is returned to prevent a timeout error from occurring in the client. client can next issue a Poll Program Complete message to determine whether processing is completed
6 Server Device Busy Server is engaged in processing a long-duration command; client should retry later
7 Negative Acknowledge Server cannot perform the programming functions; client should request diagnostic or error information from server
8 Memory Parity Error Server detected a parity error in memory; client can retry the request
10 Gateway Path Unavailable Specialized for Modbus gateways: indicates a misconfigured gateway
11 Gateway Target Device Failed to Respond Specialized for Modbus gateways: sent when server fails to respond


इकाई संख्या और पते

मोडबस संगठन ने मोडबस एप्लिकेशन प्रोटोकॉल v1.1b में निम्नलिखित का उल्लेख किया है:[7]

  • मोडबस एप्लिकेशन प्रोटोकॉल पीडीयू एड्रेसिंग नियमों को परिभाषित करता है: पीडीयू में, प्रत्येक डेटा आइटम को 0 से 65535 तक संबोधित किया जाता है।
  • यह चार ब्लॉकों से बने एक मॉडबस डेटा मॉडल को भी परिभाषित करता है जिसमें 1 से n तक गिने जाने वाले कई तत्व शामिल हैं।
  • मोडबस डेटा मॉडल में, डेटा ब्लॉक के प्रत्येक तत्व को 1 से n तक क्रमांकित किया जाता है।

कुछ परंपराएं मॉडबस संस्थाओं (कॉइल्स, असतत इनपुट्स, इनपुट रजिस्टरों, होल्डिंग रजिस्टरों) को संदर्भित करने के तरीके को नियंत्रित करती हैं।

इकाई संख्या और इकाई के पते के बीच अंतर करना महत्वपूर्ण है:

  • इकाई संख्याएँ इकाई प्रकार और इकाई स्थान को उनके विवरण तालिका में जोड़ती हैं
  • इकाई का पता प्रारंभिक पता है, मोडबस फ्रेम के डेटा भाग में 16-बिट मान, 0 से 65,535 तक (पैकेट में 0000 से FFFF)

पारंपरिक अधिवेशन में[citation needed], इकाई संख्या इकाई प्रकार का प्रतिनिधित्व करने वाले अंक से शुरू होती है, जिसके बाद इकाई स्थान का प्रतिनिधित्व करने वाले चार अंक होते हैं:

  • कॉइल नंबर '0' से शुरू होते हैं और '0'0001 से '0'9999 तक होते हैं,
  • असतत इनपुट नंबर '1' से शुरू होते हैं और '1'0001 से '1'9999 तक होते हैं,
  • होल्डिंग रजिस्टर संख्या '4' से शुरू होती है और '4'0001 से '4'9999 तक होती है।

डेटा संचार के लिए, इकाई स्थान (1 से 9,999) को घटाकर 0-आधारित इकाई पते (0 से 9,998) में अनुवादित किया जाता है। उदाहरण के लिए, नंबर 40001 से शुरू होने वाले होल्डिंग रजिस्टरों को पढ़ने के लिए, डेटा फ्रेम में फ़ंक्शन होगा कोड 3 (जैसा कि ऊपर देखा गया है) और पता 0. नंबर 40100 से शुरू होने वाले रजिस्टरों के लिए पता 99 होगा।

यह प्रत्येक इकाई के लिए पतों की संख्या को 9,999 तक सीमित करता है। एक वास्तविक मानक इसे 65,536 तक बढ़ाता है[14] पिछली सूची में एक अंक जोड़कर:

  • कॉइल संख्या '0'00001 से '0'65536 तक फैली हुई है,
  • असतत इनपुट संख्या '1'00001 से '1'65536 तक फैली हुई है,
  • इनपुट रजिस्टर संख्या '3'00001 से '3'65536 तक फैली हुई है,
  • होल्डिंग रजिस्टर संख्या '4'00001 से '4'65536 तक फैली हुई है।

विस्तारित संदर्भ का उपयोग करते समय, कॉइल और अन्य संस्थाओं के बीच भ्रम से बचने के लिए सभी संख्या संदर्भों में ठीक 6 अंक होने चाहिए। उदाहरण के लिए, होल्डिंग रजिस्टर #40001 और कॉइल #40001 के बीच अंतर करने के लिए, यदि कॉइल #40001 लक्ष्य है, तो इसे #040001 के रूप में प्रदर्शित होना चाहिए।

डेटा पतों को नोट करने का एक अन्य तरीका हेक्साडेसिमल मान का उपयोग करना है, जो पहले बताए गए पारंपरिक सम्मेलन में चार अंकों के उपयोग को स्पष्ट करता है।

  • कॉइल संख्या '0x'0000 से '0x'FFFF तक फैली हुई है
  • असतत इनपुट संख्या '1x'0000 से '1x'FFFF तक फैली हुई है
  • इनपुट रजिस्टर संख्या '3x'0000 से '3x'FFFF तक फैली हुई है
  • होल्डिंग रजिस्टर संख्या '4x'0000 से '4x'FFFF तक फैली हुई है

इस अंकन का लाभ यह है कि मोडबस पैकेट को डिकोड करते समय समान संख्याएँ पाई जाती हैं।

जेबीयूएस मैपिंग

मोडबस से निकटता से संबंधित एक और वास्तविक प्रोटोकॉल बाद में दिखाई दिया, और प्रोग्रामेबल लॉजिक कंट्रोलर निर्माता अप्रैल ऑटोमेट्स द्वारा परिभाषित किया गया था, जो 1985 में फ्रांसीसी कंपनियों रेनॉल्ट ऑटोमेशन और मर्लिन गेरिन एट सी के बीच एक सहयोगी प्रयास का परिणाम था: 'जेबीयूएस'। उस समय मोडबस और जेबीयूएस के बीच अंतर (इकाइयों की संख्या, सर्वर स्टेशन) अब अप्रासंगिक हैं क्योंकि अप्रैल पीएलसी श्रृंखला के साथ यह प्रोटोकॉल लगभग गायब हो गया था, जिसे एईजी श्नाइडर ऑटोमेशन ने 1994 में खरीदा और फिर अप्रचलित कर दिया। हालाँकि, JBUS नाम कुछ हद तक बच गया है।

जेबीयूएस फ़ंक्शन कोड 1, 2, 3, 4, 5, 6, 15, और 16 का समर्थन करता है और इस प्रकार ऊपर वर्णित सभी इकाइयां, हालांकि नंबरिंग अलग है:

  • संख्या और पता मेल खाते हैं: इकाई #x का डेटा फ़्रेम में पता x है।
  • नतीजतन, इकाई संख्या में इकाई प्रकार शामिल नहीं है। उदाहरण के लिए, मोडबस में होल्डिंग रजिस्टर #40010 JBUS में एड्रेस 9 पर रजिस्टर #9 होगा।
  • संख्या 0 (और इस प्रकार पता 0) समर्थित नहीं है। सर्वर को इस नंबर और पते पर कोई वास्तविक डेटा लागू नहीं करना चाहिए, और अनुरोध किए जाने पर यह एक शून्य मान लौटा सकता है या एक त्रुटि फेंक सकता है।

कार्यान्वयन

लगभग हर कार्यान्वयन में आधिकारिक मानक से भिन्नताएँ होती हैं। विभिन्न किस्मों के विभिन्न आपूर्तिकर्ताओं के उपकरण के बीच सही ढंग से संचार नहीं हो सकता है। कुछ सबसे आम विविधताएं हैं:

  • डेटा के प्रकार
    • IEEE 754 फ़्लोटिंग-पॉइंट नंबर
    • 32-बिट पूर्णांक
    • 8-बिट डेटा
    • मिश्रित डेटा प्रकार
    • पूर्णांक में बिट फ़ील्ड
    • पूर्णांक से/में डेटा बदलने के लिए गुणक। 10, 100, 1000, 256, ...
  • प्रोटोकॉल एक्सटेंशन
    • 16-बिट सर्वर पते
    • 32-बिट डेटा आकार (1 पता = 32 बिट डेटा लौटाया गया)
    • शब्द-अदला-बदली डेटा

मोडबस प्लस

नाम के बावजूद, मोडबस प्लस[15] मोडबस का एक प्रकार नहीं है। यह एक अलग संचार प्रोटोकॉल है, जिसमें टोकन पासिंग शामिल है। यह श्नाइडर इलेक्ट्रिक का मालिकाना प्रोटोकॉल है, हालांकि यह पेटेंट कराने के बजाय अप्रकाशित है। यह आमतौर पर श्नाइडर के भागीदारों के लिए उपलब्ध कस्टम चिपसेट का उपयोग करके कार्यान्वित किया जाता है।


यह भी देखें

संदर्भ

  1. 1.0 1.1 Drury, Bill (2009). नियंत्रण तकनीक ड्राइव और नियंत्रण हैंडबुक (PDF) (2nd ed.). Institution of Engineering and Technology. pp. 508–.
  2. 2.0 2.1 "मोडबस होम पेज". Modbus. Modbus Organization, Inc. Retrieved 2 August 2013.
  3. "मोडबस अकसर किये गए सवाल". Modbus. Modbus Organization, Inc. Retrieved 1 November 2012.
  4. "मोडबस संगठन के बारे में". Modbus. Modbus Organization, Inc. Retrieved 8 November 2012.
  5. Modbus Organization Replaces Master-Slave with Client-Server (press release)
  6. Palmer; Shenoi, Sujeet, eds. (23–25 March 2009). क्रिटिकल इंफ्रास्ट्रक्चर प्रोटेक्शन III. Third IFIP WG 11. 10 International Conference. Hanover, New Hampshire: Springer. p. 87. ISBN 978-3-642-04797-8.
  7. 7.0 7.1 7.2 7.3 7.4 "Modbus Application Protocol V1.1b3" (PDF). Modbus. Modbus Organization, Inc. Retrieved 2 August 2013.
  8. 8.0 8.1 Modbus Messaging on TCP/IP Implementation Guide V1.0b (PDF), Modbus Organization, Inc., October 24, 2006, retrieved 2017-01-07
  9. "जावा मोडबस लाइब्रेरी - के बारे में". 2010. Retrieved 2017-02-07.
  10. "What is the difference between Modbus and Modbus Plus?". Schneider Electric. Retrieved 2017-02-07.
  11. "सिम्पली मोडबस - एनरॉन मोडबस के बारे में". Simply Modbus. Retrieved 2017-02-07.
  12. 12.0 12.1 Prat, Jérôme (13 February 2017). "Crash Course: Client/Server/Master/Slave". ProSoft Technology. Retrieved 2022-10-17.
  13. Clarke, Gordon; Reynders, Deon (2004). Practical Modern Scada Protocols: Dnp3, 60870.5 and Related Systems. Newnes. pp. 47–51. ISBN 0-7506-5799-5.
  14. "Modbus 101 – Introduction to Modbus". Control Solutions, Inc.
  15. "मोडबस प्लस - मोडबस प्लस नेटवर्क - उत्पाद अवलोकन - श्नाइडर इलेक्ट्रिक यूनाइटेड स्टेट्स". Schneider-electric.com. Retrieved 2014-01-03.


बाहरी संबंध

Specifications

Other