Thread Content
वर्तमान में एक सिस्टम DCS के साथ MODBUS प्रोटोकॉल के द्वारा संचार करता है; DCS, JX-300XP नामक सिस्टम है। समस्या यह है कि दूसरे सिस्टम से आने वाले डेटा में दो-बाइट एवं चार-बाइट वाले डेटा दोनों प्रकार के होते हैं। दो-बाइट वाला डेटा तो सही ढंग से प्राप्त हो जाता है, लेकिन चार-बाइट वाला डेटा सही ढंग से प्राप्त नहीं हो पाता। समस्या अब स्पष्ट हो गई है। दरअसल, वहाँ दिया गया रजिस्टर पता 32-बिट का, चार-बाइट वाला वेरिएबल है। लेकिन DCS, चार-बाइट वाले वेरिएबलों को सीधे पढ़ नहीं सकता। इस समस्या का समाधान कैसे किया जा सकता है?
32 बिट के मामले में, वह तो वास्तविक संख्या ही होगी। अब दूसरे सिस्टम में उसे 16 बिट की पूर्णांक संख्या में परिवर्तित कर दिया जाता है, और फिर कंट्रोल सेंटर में उसे फिर से मूल रूप में परिवर्तित किया जाता है।
मॉडबस प्रोटोकॉल में 32-बिट के डेटा प्रकार का कोई निर्धारण नहीं है; केवल 16-बिट के रजिस्टर डेटा का ही उल्लेख है। इसलिए इस समस्या को हल करने हेतु स्वयं ही प्रोग्रामिंग करनी पड़ती है – चाहे वह स्लेव साइड हो या मास्टर साइड। कुल मिलाकर, इस डेटा प्रकार संबंधी समस्या को हल करने हेतु स्वयं ही प्रयास करने ही पड़ते हैं।
संभवतः उच्च 16 बिट एवं निम्न 16 बिटों की स्थिति उलट गई है। सब-स्टेशन पर फ्लोटिंग-पॉइंट मानों को 16-बिटीय पूर्णांक में परिवर्तित किया जा सकता है; या फिर मुख्य स्टेशन पर ही उच्च 16 बिटों एवं निम्न 16 बिटों की जगह आपस में बदली जा सकती है।
मॉडबस स्कैन करके डेटा के प्रकार का पता लगाएं। संभव है कि यह 64-बिट के “डबल” प्रकार का डेटा हो। कुछ सिस्टमों में तो यह वास्तव में “डबल” प्रकार का ही डेटा होता है… जैसे कि डैनियल फ्लो मीटर में दर्शाया गया डेटा भी इसी प्रकार का होता है। आम तौर पर, फ्लोटिंग-पॉइंट डेटा 4 बाइट्स का होता है, एवं इसके क्रम आमतौर पर 1234/3412/2143/4321 जैसे होते हैं। । । । विशेष रूप से, मतली होना एक समस्या है। । । । यदि सीमेंस PLC में मॉडबस कम्युनिकेशन डॉग का उपयोग किया जाए, तो फ्लोटिंग-पॉइंट फॉर्मेट में मान 3412 होता है; जबकि सामान्य परिस्थितियों में यह मान 1234 होता है।
DCS मैनुअल को देखें; वहाँ बताया गया है कि डेटा-टाइपों को कैसे परिभाषित किया जाता है। कुछ डेटा-टाइपों को “रियल” कहा जाता है, जबकि कुछ को “ड्वोर्ड” कहा जाता है।
पोस्ट करने वाले एवं अन्य सभी उपयोगकर्ताओं ने MODBUS प्रोटोकॉल का उपयोग किया है। MODBUS_RTU प्रोटोकॉल के द्वारा प्रत्येक बार n मात्रा में डेटा भेजा जा सकता है… तो यह n का अधिकतम मान कितना हो सकता है? यानी, MODBUS_RTU हर बार अधिकतम कितने डेटा ट्रांसफर कर सकता है? ‘n’ का मान अनंत नहीं हो सकता; वरना डेटा को पूरी तरह से स्थानांतरित नहीं किया जा सकेगा।