TCP/IP कनेक्शन के साथ Qt Modbus

इस ब्लॉग में, मैं टीसीपी/आईपी पर मॉडबस कनेक्शन के उदाहरण के रूप में एक छोटा क्यूटी क्विक एप्लिकेशन (क्यूएमएल) प्रदान करना चाहता हूं।
क्यूटी उदाहरणों में, मुझे केवल मॉडबस कनेक्शन के लिए क्यूइलेक्ट्रिक उदाहरण मिले हैं, और हाल ही में इसके लिए क्यूटी क्विक एप्लिकेशन बनाने के बाद, मैं एक उदाहरण के रूप में इसका एक स्लिम-डाउन संस्करण प्रदान करना चाहता हूं।

प्रयोगशाला

एप्लिकेशन का परीक्षण करने में सक्षम होने के लिए, आपको एक मॉडबस सर्वर या एक प्रोग्राम की आवश्यकता है जो इस तरह के सर्वर को "अनुकरण" करता है। मैंने इसके लिए http://www.apphugs.com/modbus-server.html से "मॉडबस सर्वर प्रो" का उपयोग किया। यह आपको उन सभी परिदृश्यों के माध्यम से चलाने की अनुमति देता है जिनकी आपको आवश्यकता है।

क्यूटी अनुप्रयोग

सबसे पहले: चूंकि यहां सभी कोड पोस्ट करने के लिए यह बहुत दूर चला जाएगा, इसलिए मैं पूरे कोड को ज़िप फ़ाइल के रूप में प्रदान करूंगा (नीचे देखें)।

सेटिंग्स

सबसे पहले, मैंने एक साधारण सेटिंग्ससंवाद वर्ग बनाया जिसमें कनेक्शन विकल्प शामिल हैं। सरलीकृत उदाहरण में, यह सिर्फ "modbusServerUrl", "रिस्पांसटाइम" और "नंबरऑफरेट्रीज़" है।

    struct Settings {
        QString modbusServerUrl = "192.168.2.86:1502";
        int responseTime = 1000;
        int numberOfRetries = 3;
    };

पदनाम हैं - मुझे लगता है - आत्म-व्याख्यात्मक।

  • modbusServerUrl = TCP/IP नंबर प्लस Modbus सर्वर पोर्ट, उदा. 192.168.2.86:502
  • प्रतिसाद समय = एमएस में अधिकतम समय जिसमें सर्वर से प्रतिक्रिया की प्रतीक्षा की जाती है
  • संख्या ओं की संख्या = असफल प्रयासों की संख्या जो स्वीकार की जाएगी।

आवेदन

onConnectButtonClicked()

ऑनकनेक्टबटनक्लिक () फ़ंक्शन सेटिंग्स फ़ाइल से कनेक्शन डेटा पढ़ता है और मॉडबस सर्वर से कनेक्शन स्थापित करता है।

onReadButtonClicked()

OnReadButtonClick () के साथ विभिन्न रीडरिक्वेस्ट तब शुरू किए जाते हैं और संबंधित रजिस्टर ों को मॉडबस सर्वर से पढ़ा जाता है। लौटाए गए मानों को क्यूएमएल पर Q_PROPERTY के रूप में उत्सर्जित संकेतों के माध्यम से पारित किया जाता है और उपयोगकर्ता इंटरफ़ेस में अपडेट किया जाता है।

फ़ंक्शन लिखें

WriteButtonClick (int ritrजिस्टर) पर फ़ंक्शन का उपयोग Modbus सर्वर रजिस्टरों को लिखने के लिए किया जाता है। यहां यह परिकल्पना की गई है कि विभिन्न रजिस्टरों को चर "राइटर" के माध्यम से मॉडबस सर्वर पर लिखा जा सकता है।

आप यहां आवेदन डाउनलोड कर सकते हैं ix-modbus-tcp-example.zip