मैं एक संख्या से शुरू करता हूँ: 214-219। यह V6.2.2 मैनुअल में पृष्ठ सीमा है जहाँ फ्लोटिंग-पॉइंट ब्लॉक रहते हैं। आप सोचेंगे कि विक्रेता ने उन्हें वहाँ छिपा दिया क्योंकि कोई उनका उपयोग नहीं करता। गलत। उन्होंने उन्हें वहाँ इसलिए छिपाया क्योंकि पूर्णांक गणित नब्बे प्रतिशत कार्यों के लिए ठीक है - और अंतिम दस प्रतिशत वह है जहाँ असली मशीनें रहती हैं।
एक माइक्रो-PLC SIN, COS, TAN, LN, EXP, SQRT, वास्तविक संख्या की तुलना और वास्तविक संख्या के मूव्स कर रहा है। दस साल पहले यह वाक्य मजाक होता। आज यह एक 35 मिमी DIN-रेल मॉड्यूल में भेजा जाता है जो एक अच्छे ऑस्सिलोस्कोप प्रोब से कम लागत का है।
जब पूर्णांक गणित आपसे झूठ बोलता है
यहाँ जाल है। पूर्णांक गणित के साथ 0-10V एनालॉग इनपुट को स्केल करना काम करता है - जब तक आप विभाजित नहीं करते। 6V को 0-1000 रेंज में: पूर्णांक विभाजन शेष को गिरा देता है, और अचानक आपका स्तर पढ़ाई हर स्कैन में एक यूनिट से भटक जाता है। एक शिफ्ट में, भटकाव बढ़ता है। एक सप्ताह में, आपका टैंक ओवरफ्लो हो जाता है क्योंकि PLC ने सोचा कि स्तर ठीक है।
फ्लोटिंग पॉइंट इसे ठीक करता है। एक स्केलिंग ब्लॉक, वास्तविक संख्याएँ सिर से सिर, और राउंडिंग शोर गायब हो जाता है। यह कोई विलासिता नहीं है। यही आपके पंपों को सूखा रखता है और आपके ग्राहकों को शांत रखता है।
कंक्रीट मामला: वास्तविक गणित के साथ PID तापमान नियंत्रण
एक PR-18 पर PID लूप सेट करें: एनालॉग इनपुट एक 0-10V ट्रांसमीटर के माध्यम से PT100 को पढ़ता है, PID ब्लॉक वास्तविक संख्या लाभ के साथ गणना करता है, आउटपुट हीटर के लिए PWM चैनल को चलाता है। फ्लोटिंग-पॉइंट इंजन इंटीग्रल टर्म को स्थिर रखता है। केवल पूर्णांक हार्डवेयर पर, वही लूप मैनुअल गेन शेड्यूलिंग की आवश्यकता होती है और फिर भी कम त्रुटि पर ओस्सिलेट करता है।
मैंने एक कमीशनिंग इंजीनियर को दो दिनों तक एक 0.4-डिग्री ओस्सिलेशन का पीछा करते देखा। फ्लोटिंग-पॉइंट मॉडल के लिए CPU को स्वैप किया, एक घंटे में इसे ट्यून किया। हार्डवेयर की लागत का अंतर हास्यास्पद था। इंजीनियरिंग समय का अंतर नहीं था।
ब्लॉक जिन्हें आप वास्तव में उपयोग करेंगे
ईमानदार रहें: आप ADD-R, SUB-R, MUL-R, DIV-R, और SQRT का उपयोग करेंगे। शायद ROUND और TRUNC जब HMI को मान सौंपते हैं। त्रिकोणीय कार्य वहाँ हैं वास्तव में अजीब परियोजनाओं के लिए - प्रवाह गणनाएँ, स्तर से टैंक की मात्रा, कन्वेयर कोण मुआवजा। जब वह अजीब अनुरोध आता है, तो आप यह समझाना नहीं चाहते कि आपका PLC कोसाइन नहीं कर सकता।
और स्ट्रिंग रूपांतरण उतने महत्वपूर्ण हैं जितने वे सुनाई देते हैं। वास्तविक-से-स्ट्रिंग, पूर्णांक-से-ASCII - यही है जिससे आप पढ़ने योग्य अलार्म संदेश और डेटा लॉग बनाते हैं बिना HMI स्क्रिप्टिंग भाषा के।
इसकी लागत क्या है
कुछ अतिरिक्त नहीं, जब आप सही CPU चुनते हैं। फ्लोटिंग-पॉइंट ब्लॉक वर्तमान मैनुअल संशोधन में मानक पुस्तकालय का हिस्सा हैं, और सॉफ़्टवेयर मुफ्त है। एकमात्र वास्तविक लागत आदत परिवर्तन है: पूर्णांकों में सोचना बंद करें, इंजीनियरिंग इकाइयों में सोचना शुरू करें।
स्केलिंग सही ढंग से की गई
स्केलिंग वह जगह है जहाँ फ्लोटिंग पॉइंट अपनी जगह बनाता है, और यह भी वह जगह है जहाँ अधिकांश स्केलिंग बग रहते हैं। क्लासिक त्रुटि: पूर्णांक गणित के साथ कच्चे मूल्य को स्केल करना और हर विभाजन पर शेष को खोना। क्लासिक समाधान: वास्तविक संख्याओं में गणना करें और एक बार, सीमा पर, जहाँ HMI या SCADA पूर्णांक की अपेक्षा करता है, रूपांतरित करें। एक स्केलिंग ब्लॉक, वास्तविक संख्याएँ सिर से सिर, और राउंडिंग शोर गायब हो जाता है।
स्केलिंग स्थिरांक को लिखें जहाँ अगला इंजीनियर उन्हें ढूंढ सके। 4-20mA ट्रांसमीटर 0-10 बार पढ़ रहा है: सूत्र, कच्ची रेंज, इंजीनियरिंग रेंज - इसका सारा हिस्सा स्केलिंग ब्लॉक पर एक टिप्पणी में होना चाहिए। मूल्य "सही दिखता है" महीनों तक जब तक कि यह नहीं होता, और इसे डिबग करने वाला व्यक्ति स्थिरांक की आवश्यकता होगी, न कि उस व्यक्ति की याद जो उन्हें चुना।
कमिशनिंग पर सीमाओं का परीक्षण करें: न्यूनतम, अधिकतम, और मध्य बिंदु। एक स्केलिंग ब्लॉक जो 50% पर सही है लेकिन 0% पर गलत है, एक आकस्मिक नज़र से पास होगा और एक वास्तविक प्रक्रिया में असफल होगा। तीन परीक्षण बिंदु, पांच मिनट, और स्केलिंग हो गई।
पूर्णांक-केवल भ्रांति
एक विचारधारा है जो कहती है कि एकMicro PLCको केवल पूर्णांक में रहना चाहिए क्योंकि यही छोटे नियंत्रक करते हैं। यह लागत के दृष्टिकोण से एक बचाव योग्य स्थिति है और इंजीनियरिंग के दृष्टिकोण से एक अक्षम्य स्थिति है जब आपका प्रक्रिया विभाजन, अनुपात, या किसी भी चीज़ से संबंधित होती है जो वास्तविक इकाइयों की तरह होती है। इस प्लेटफ़ॉर्म पर फ्लोटिंग-पॉइंट हार्डवेयर की कोई अतिरिक्त लागत नहीं है; क्षमता ब्लॉक पुस्तकालय में है, प्रीमियम स्तर में नहीं।
पूर्णांक-केवल सोच की वास्तविक लागत रखरखाव में प्रकट होती है: वर्कअराउंड - स्केल किए गए पूर्णांक, शिफ्टेड दशमलव, हाथ से रोल किए गए फिक्स्ड-पॉइंट गणित - बिल्कुल वही कोड हैं जिसे कोई छह महीने बाद नहीं समझता। फ्लोटिंग पॉइंट प्रक्रिया की तरह पढ़ता है: तापमान डिग्री में, स्तर मीटर में, प्रवाह लीटर प्रति मिनट में। पढ़ने योग्य कोड रखरखाव योग्य कोड है, और रखरखाव योग्य कोड वही है जो सेवा अनुबंध को लाभदायक रखता है।
पूर्णांक का उपयोग करें जहाँ वे सही उपकरण हैं - काउंटर, फ्लैग, इंडेक्स मान। फ्लोट्स का उपयोग करें जहाँ प्रक्रिया रहती है। प्लेटफ़ॉर्म आपको दोनों देता है; अनुशासन प्रति सिग्नल चुनना है, न कि प्रति धर्म।
HMI में वास्तविक संख्याएँ
HMI और SCADA स्क्रीन को इंजीनियरिंग इकाइयों को दिखाना चाहिए, कच्चे पूर्णांक नहीं - और स्केलिंग PLC पक्ष पर रहती है। एक बार रूपांतरण करें, एक स्केलिंग ब्लॉक में, और डिस्प्ले हर जगह डिग्री, बार, और लीटर प्रति मिनट पढ़ते हैं। विकल्प - हर स्क्रीन, हर टैग, हर रिपोर्ट में स्केलिंग - एक सूत्र-टाइपो होने की प्रतीक्षा कर रहा है। प्रति सिग्नल एक रूपांतरण बिंदु, ब्लॉक टिप्पणी में दस्तावेजित, और पूरा सिस्टम ऑपरेटर की भाषा बोलता है।
यही बदलाव है। हार्डवेयर ने पहले ही इसे बना दिया। आपकी प्रोग्रामिंग शैली अपग्रेड का अंतिम टुकड़ा है।












