औद्योगिक प्रोग्रामिंग भाषाओं, या BluePill x405 के समर्थन के साथ होम ऑटोमेशन

समीक्षा की शुरुआत


इसलिए, मेरे प्यारे साथियों, हम समीक्षा शुरू करते हैं कि हम वास्तव में यहाँ क्या प्रकाश डालना चाहते हैं। लेख में मैं उन तत्वों पर विचार करना चाहता हूं जो एक औद्योगिक नियंत्रक कार्यक्रम के निर्माण के लिए विशिष्ट हैं, और दिखाते हैं कि उन्हें होम ऑटोमेशन सिस्टम पर कैसे लागू किया जा सकता है। और सबसे महत्वपूर्ण बात यह है कि प्रश्न का उत्तर ढूंढना है - इसके लिए क्या आवश्यक है।

होम ऑटोमेशन - एप्लीकेशन


होम स्वीट होम ... क्या आपको वास्तव में एक नियंत्रक की आवश्यकता है? उत्तर सरल है - यह सब इस बात पर निर्भर करता है कि ऐसे घर में क्या उपलब्ध है। बेशक, अगर आपके पास सिर्फ एक अपार्टमेंट है, और स्वचालन में आपके घर के मीडिया सेंटर और गर्मियों में एयर कंडीशनिंग का प्रबंधन होता है, तो नीचे लिखी गई सभी चीजें पूरी तरह से निर्बाध हो सकती हैं। लेकिन अगर आपका शौक न केवल सोफे को धक्का दे रहा है (छिपाने के लिए क्या है, मैंने खुद कभी-कभी इस पर ध्यान दिया है), तो लेख बहुत उपयोगी हो सकता है।

तो, आइए यह समझने की कोशिश करें कि कैसे सुधरा हुआ साधन हमारे कठिन जीवन को सरल बना सकता है। एक उदाहरण के रूप में, हम वास्तविक स्थिति का उपयोग करते हैं - एक अच्छी तरह से 70 मीटर गहरे में एक पंप, जिसे दो पड़ोसी एक तह में डालते हैं। उन्होंने इसे वसंत में स्थापित किया, जब कुएं में बहुत पानी था, और सामान्य तौर पर, यह सिर्फ गर्म और अच्छा था। लेकिन समय बीतता है, और सवाल शुरू होते हैं - इतनी गहराई से पानी जुटाने के लिए, आपको बिजली की आवश्यकता होती है, जिसके लिए आपको भुगतान करना पड़ता है। तहखाने और तकनीकी मंजिल में कई बार बाढ़ आ गई थी - वे बस पंप को बंद करना भूल गए ... हाँ, और इसे मैन्युअल रूप से नियंत्रित करने के लिए बहुत सुविधाजनक नहीं है - आपको एक नल को बंद करने, दूसरे को खोलने, फिर पंप चालू करने और टैंक में पानी के स्तर को देखने की आवश्यकता है।

क्या उस पर अपना समय बिताना इसके लायक है, जिसमें पहले से ही कमी है? एक जिज्ञासु मन समाधानों की खोज करना शुरू करता है, और निश्चित रूप से, यह पाता है! कार्यान्वयन के लिए कार्यों की एक सूची पैदा होती है।

  1. खपत की गई बिजली के लिए भुगतान आम नहीं है - इसका मतलब है, हम दो शुरुआत स्थापित करेंगे, जिनमें से प्रत्येक अपने स्वयं के बिजली के मीटर से जुड़ा हुआ है।
  2. पानी की कमी के कारण पंप विफल नहीं होना चाहिए - इसका मतलब है कि हम पंप के "सूखी" स्ट्रोक के लिए एक सेंसर स्थापित करेंगे। यदि कोई पानी नहीं है, तो बस पंप शुरू न करें, और अगर यह काम करता है, तो हम आपातकालीन बंद कर देते हैं।
  3. पंप को बहुत लंबे समय तक नहीं चलना चाहिए - उदाहरण के लिए, 25 मिनट से अधिक। इस समय से अधिक होना यह दर्शाता है कि सिस्टम अपना सामान्य मोड छोड़ रहा है।
  4. कंटेनरों को भरना मानवीय हस्तक्षेप के बिना, अर्थात्, स्वचालित रूप से होना चाहिए। और इसका मतलब है कि निचले स्तर पर शुरू करना और ऊपरी स्तर पर रुकना।
  5. केवल एक टैंक भरा होना चाहिए, अर्थात्, हम दो वाल्व स्थापित करते हैं - प्रत्येक टैंक में एक सेट के लिए पानी की आपूर्ति करने के लिए।
  6. पंप शुरू होने के बीच का ठहराव कम से कम 30 मिनट का होना चाहिए।
  7. एक सक्रिय रुकावट को ऑपरेशन एल्गोरिथ्म को प्रभावित नहीं करना चाहिए, अगर यह सक्रिय था। सब कुछ के बावजूद, एल्गोरिथ्म पूरा होना चाहिए।

कार्य सरल हैं, और उन्हें एक सौ में हल किया जा सकता है, यदि एक हजार तरीके से नहीं। लेकिन लेख का शीर्षक खुद के लिए बोलता है, और हम एक कांटेदार रास्ते पर जाएंगे। आइए एक आभासी (अब के लिए, निश्चित रूप से) नियंत्रक का उपयोग करें, जो यह सब करेगा।

औद्योगिक नियंत्रक कैसे काम करता है?


बेशक, हम तुरंत स्पष्ट कर देंगे - हम तथाकथित प्रोग्रामर तर्क नियंत्रकों, या पीएलसी के बारे में संक्षेप में बात कर रहे हैं। इस संक्षिप्त नाम के तहत क्या छिपा है? और यहां जो छिपा है - एक अविश्वसनीय किस्म का हार्डवेयर समाधान, सॉफ्टवेयर उत्पादों और उपयोगिताओं की एक बड़ी संख्या। एक वाजिब सवाल तुरंत उठता है - फिर यह सब अच्छा कैसे उपयोग करें? क्या प्रशिक्षण पाठ्यक्रमों को लेने और प्रत्येक उपकरण के साथ काम करने के लिए आवश्यक कौशल प्राप्त करने के लिए, खरोंच से सामग्री भाग का अध्ययन करना और प्रत्येक नए उपकरण के लिए समय और धन प्राप्त करना वास्तव में आवश्यक है?

उत्तर है नहीं, यह आवश्यक नहीं है। हमारे सामने सबकुछ हो गया है। यह केवल अध्ययन और सीखना है कि कैसे उपयोग करना है। यह वही है जो मैं आगे करने का प्रस्ताव करता हूं - आईईसी 61131 मानक में थोड़ा विसर्जन। आइए प्रकट करते हैं कि इस मानक में कौन से हिस्से शामिल हैं।

  • आईईसी 61131-1: सामान्य जानकारी।
  • आईईसी 61131-2: उपकरण की आवश्यकताएं और परीक्षण।
  • IEC 61131-3: प्रोग्रामिंग भाषाएँ।
  • आईईसी 61131-4: उपयोगकर्ता गाइड।
  • आईईसी 61131-5: संचार।
  • IEC 61131-6: कार्यात्मक सुरक्षा।
  • IEC 61131-7: फ़ज़ी कंट्रोल प्रोग्रामिंग।
  • IEC 61131-8: प्रोग्रामिंग भाषाओं के उपयोग और कार्यान्वयन के लिए दिशानिर्देश।
  • आईईसी 61131-9: छोटे सेंसर और एक्ट्यूएटर्स के लिए एकल-बिंदु डिजिटल संचार इंटरफ़ेस।
  • IEC 61131-10: PLC ओपन XML आधारित इंटरचेंज प्रारूप।

लेकिन हमने मानकों के विषय में तल्लीन नहीं किया है, और सीधे शब्दों में कहें, तो नियंत्रक आमतौर पर चक्रवाती काम करता है - इनपुट की स्थिति को प्रदूषित करना, नियंत्रण कार्यक्रम को निष्पादित करने वाला दुभाषिया, आउटपुट की स्थिति निर्धारित करना, आंतरिक रखरखाव कार्य करना और फिर से इनपुट की स्थिति पर वापस लौटना। यह काफी उबाऊ है, लेकिन प्रभावी और कुशल है। एक नियंत्रण कार्यक्रम एक छद्म कोड है जो एक प्रोग्रामिंग वातावरण का उपयोग करके बनाया गया है। आमतौर पर, ऐसा छद्म कोड एक द्विआधारी-कोडित अनुक्रम है, जिसका सामान्य प्रोग्रामिंग भाषाओं से कोई लेना-देना नहीं है। यद्यपि उपयोगकर्ता के लिए यह एक ऐसे रूप में प्रस्तुत किया गया है जो समझने योग्य है - नियंत्रक के लिए, एक पूरी तरह से अलग दृश्य का उपयोग किया जाता है। एक अच्छा उदाहरण एक छोटा सा कार्यक्रम है, जिसे आईएल, एलडी के रूप में प्रस्तुत किया गया है और नियंत्रक के लिए द्विआधारी एन्कोडिंग के रूप में (हम्म, एक विशेष शब्द भी नहीं है)। स्पॉइलर के नीचे एक छोटा सा उदाहरण दिखाया गया है।

कार्यक्रम प्रदर्शन विकल्प


तो क्या इस कार्यक्रम को उपयोगी बनाता है? हां, वह कुछ नहीं करती है - यदि M8010 मर्कर का मान 1 है, तो 1. Y377 के साथ आउटपुट को लिखा जाएगा। तदनुसार, 0 के लिए समान है।
इस तरह के कार्यान्वयन का सबसे बड़ा लाभ नियंत्रक की मेमोरी से प्रोग्राम को अनलोड करने की क्षमता है, इसे एक संपादक में संपादन के लिए खोलना है जो मनुष्यों के लिए समझ में आता है, संकलन (यह शब्द यहां सशर्त है) और इसे नियंत्रक की मेमोरी में वापस लोड करें। इसके अलावा, कुछ नियंत्रक टिप्पणियों और चर नामों को भी सहेजते हैं।

कंट्रोलर को कैसे प्रोग्राम करें?


बेशक, विशेष सॉफ़्टवेयर की आवश्यकता है। लंबी खोज और प्रयोगों के बाद, Inovance Control से ऑटोशॉप v3.02 को चुना गया। यह उल्लेखनीय है कि यह मुफ़्त है, मुफ्त डाउनलोड के लिए उपलब्ध है और यह मित्सुबिशी नियंत्रकों के साथ संगत नियंत्रकों का समर्थन करता है। और यह न केवल सीरियल पोर्ट के माध्यम से, बल्कि ईथरनेट के माध्यम से भी काम करता है। हमारे द्वारा उपयोग किए गए संस्करण का लिंक, स्पॉइलर के नीचे।

यैंडेक्स डिस्क से डाउनलोड करने के लिए लिंक

खैर, हमने कार्यक्रम स्थापित किया और अब एक और सवाल - हमारे नियंत्रक को कार्यक्रम कैसे लिखना है? चूंकि हम एक विशिष्ट डिवाइस के साथ काम करेंगे, इसलिए हम वर्चुअल COM पोर्ट के लिए विशिष्ट ड्राइवर स्थापित करेंगे। निष्कर्ष बचाने के लिए, और सरल बनाने के लिए, मैंने कनेक्शन के लिए बोर्ड के यूएसबी पोर्ट का उपयोग करने का निर्णय लिया। बिगाड़ने वाले वाहन चालक।

यैंडेक्स डिस्क पर ड्राइवर

ड्राइवरों को स्थापित करने और मिनी-यूएसबी के माध्यम से बोर्ड को जोड़ने के बाद, आप जांच सकते हैं कि क्या आपके साथ सब कुछ सफल है। ऐसा करने के लिए, My Computer-Management-Device Manager-Ports (COM और LPT) पर राइट-क्लिक करें। आपको ऐसी विंडो को स्पॉइलर के नीचे देखना चाहिए। आपके सिस्टम पर COM पोर्ट संख्या भिन्न हो सकती है।

डिवाइस मैनेजर


अब आप AutoShop मेनू में टूल्स-कम्युनिकेशन सेटिंग का चयन कर सकते हैं, दिखाई देने वाली विंडो में सीरियल का चयन करें, पोर्ट नंबर निर्दिष्ट करें और टेस्ट बटन पर क्लिक करें। आप एक बिगाड़ने के तहत इस तरह एक खिड़की होनी चाहिए।

बोर्ड से सफल संबंध


लेकिन अगर आपके लिए कुछ काम नहीं करता है, तो पीएम या टिप्पणी में लिखें। हम निश्चित रूप से मदद करेंगे।

कार्यक्रम के तत्व, जिसके बिना यह दुखी होगा


इसके बाद, हम सीढ़ी चित्र, या तथाकथित एलडी की भाषा पर विचार करेंगे। आइए हम केवल उन तत्वों पर विचार करें जिन्हें हम बाद में उपयोग करेंगे।

  • इनपुट और आउटपुट असतत हैं। उन्हें एक्स और वाई के रूप में नामित किया गया है और असतत संकेतों को प्राप्त करने और जारी करने के लिए डिज़ाइन किया गया है।
  • एम। की स्मृति क्षेत्र एम। यह दो राज्य ले सकता है - ऑन और ऑफ।
  • टाइमर को T से नामित किया गया है। इसकी गणना 0.1 से 3276.7 सेकंड के लिए की जाती है।
  • रजिस्टरों के क्षेत्र डी। इसमें 16 बिट्स का सेल आयाम है, लेकिन इसे 32 बिट सेल के रूप में भी संबोधित किया जा सकता है।

एक निर्वात में गोलाकार घोड़ा, या अप्रत्यक्ष संबोधन रजिस्टर


अप्रत्यक्ष संबोधित करने वाले रजिस्टर V और Z नामित हैं और इन्हें V0 से V7 और Z0 से Z7 तक संबोधित किया जा सकता है। उनका उपयोग क्यों किया जा सकता है? आइए देखें कि वे आम तौर पर कैसे काम करते हैं। इस पागल दिखने वाले D1000V0 रिकॉर्ड का अर्थ है कि D1000 पते के रूप में गणना की गई सेल पता और अप्रत्यक्ष एड्रेसिंग रजिस्टर को लिखे गए मूल्य का उपयोग किया जाएगा। यदि 15 है, तो हम सेल D1015 के पते का उपयोग करेंगे। डेटा सरणियों के साथ या तालिका नियंत्रण के साथ काम करते समय यह बहुत सुविधाजनक है - यह हमारे लिए सूचकांक रजिस्टर के मूल्य को बदलने के लिए पर्याप्त है, और हम उन मेमोरी कोशिकाओं से मान प्राप्त करते हैं जिन्हें संबोधित किया गया था। लेकिन जब तक हम उन्हें लागू नहीं करेंगे, हम अगले प्रकाशन में इस पर ध्यान देंगे।

कार्यक्रम के दृश्य, या ऑनलाइन डिबगिंग के बारे में थोड़ा सा


यदि आप एक प्रोग्रामर हैं और एक प्रोग्राम लिखना अभी समाप्त कर चुके हैं, तो अगला कदम डिबगिंग है। और यहां सवाल उठता है - यह कैसे करना है। फिर से, बहुत सारे विकल्प हैं, लेकिन मैं उस चीज के बारे में बात करूंगा जिसका हम आगे उपयोग करेंगे। प्रोग्रामिंग पर्यावरण संपादक आपको नेत्रहीन यह दिखाने की अनुमति देता है कि वर्तमान में एक बटन दबाकर नियंत्रक मेमोरी में बिट्स और चर के कौन से मूल्य हैं। एक बहुत ही चौकाने वाला उदाहरण होगा - संपादक में कार्यक्रम के ऑफ़लाइन और ऑनलाइन प्रदर्शन को बिगाड़ने वाले के नीचे।

चर दृश्य मोड में स्विच करने के लिए बटन


चर मान देखने के मोड में प्रोग्राम का प्रकार


एडिट मोड में प्रोग्राम का प्रकार


ऑनलाइन बटन पर क्लिक करने पर होने वाली प्रक्रियाओं के बारे में थोड़ा और। कार्यक्रम जल्दी से दृश्यमान चर की सूची संकलित करता है, और पूरा होने पर, इसे एक विशिष्ट नियंत्रक बफर को लिखता है। उसके बाद, नियंत्रक इस सूची से डेटा तैयार करता है और इसे दूसरे बफर में रखता है। कार्यक्रम इस बफ़र से मान पढ़ता है और उन्हें मिमिक आरेख पर मान के रूप में प्रदर्शित करता है। यदि आप डिस्प्ले विंडो में थोड़ा प्रोग्राम स्क्रॉल करते हैं और दृश्य चर बदलते हैं, तो यह चक्र फिर से दोहराएगा ...

कौन हैमलेट कहता है, या मंच पर ब्लूपील x405 है


क्या आपने देखा है कि बाजार में नीली गोली की तरह साधारण मदरबोर्ड नहीं आते हैं, लेकिन F405 और उच्चतर जैसे प्रोसेसर से लैस हैं? मैं व्यक्तिगत रूप से केवल F401 पत्थरों के साथ आया था, लेकिन यह थोड़ा अलग स्तर है ... मुझे चढ़ाई करना आसान है, और अपने प्रयोगों के लिए, दो बार सोचने के बिना, मैंने अच्छे पुराने पी-सीएडी 2006 में भुगतान किया और एक त्वरित क्रम साइटों पर चीनी से आदेश दिया। बेशक, रंग में यह एक हरे रंग की गोली है, लेकिन अर्थ के संदर्भ में मैंने ब्लूपिल नाम छोड़ने का फैसला किया, लेकिन यह दर्शाता है कि यह पहले से ही x405 है। स्पॉइलर के नीचे का परिणाम ब्लूपिल x405 बोर्ड की एक तस्वीर है।

शीर्ष दृश्य


नीचे का दृश्य


गितुब पर अवधारणा और गेरबर

थोड़ा इस बारे में कि यह बोर्ड इतना उल्लेखनीय क्यों है? आखिरकार, ब्लूपिल क्लोन बनाने के लिए सिर्फ हजारों प्रयास हुए! लेकिन अंतर यह है: मैं फर्मवेयर को इस बोर्ड से जोड़ता हूं, जो इसे एक कर्नेल में बदल देगा जो एक प्रोग्राम चलाता है जो कमांड सिस्टम में मित्सुबिशी औद्योगिक नियंत्रकों के साथ संगत है। इस चमत्कार की गणना 16 इनपुट, 16 आउटपुट, 2 एनालॉग इनपुट, 3 UART के साथ DE4 के साथ RS485, 1 ऑनव्यू मास्टर बस के लिए की जाती है। UART एक मास्टर बस modbus RTU के रूप में, और एक दास के रूप में काम कर सकता है। और वे पूरी तरह से स्वतंत्र रूप से काम कर सकते हैं।
लेकिन यह सब नहीं है - यदि आप वीबीएटी पिन से 3 वी की बैटरी कनेक्ट करते हैं, तो न केवल घड़ी, बल्कि टाइमर, काउंटरर्स, मर्कर्स और पहले 1000 सामान्य-उद्देश्य रजिस्टर डी अपने मूल्यों को बनाए रखेंगे। और 8000 बहनें हैं।

प्रश्नों का अनुमान लगाते हुए, मैं तुरंत कहता हूँ - हाँ, सॉफ्टवेयर एक वास्तविक समय ऑपरेटिंग सिस्टम पर आधारित है। हां, जहां भी संभव हो डीएमए का उपयोग किया जाता है। ये सुविधाएँ उच्च संचार भार पर चक्र समय में महत्वपूर्ण बदलाव के बिना काम करने की अनुमति देती हैं। यह संस्करण दूसरा संशोधन, संशोधित और पूरक है।

इस बोर्ड को पूरी तरह से GX FXDeveloper और IEC Developer और GX Works दोनों द्वारा प्रोग्राम किया जा सकता है।

पंप और दो टैंकों का भाग्य


आइए अब हम इस समस्या को हल करते हैं - खासकर जब से इसके लिए सभी उपकरण उपलब्ध हैं। अधिक बाहर न खींचने के लिए, मैंने एक कार्यक्रम लिखा, इसे भागों (तथाकथित नेटवर्किंग, या कार्य श्रृंखला) में तोड़ दिया, और मैं उनमें से प्रत्येक को यहां दिखाऊंगा और टिप्पणियां दूंगा।

नेट 1 - कार्यक्रम का पहला रन


D1000 रजिस्टर संपर्क बाउंस को दबाने के लिए आवश्यक समय संग्रहीत करता है। वास्तव में, यह पहले से ही कार्यक्रम में है - लेकिन मैं इसे और अधिक स्पष्ट रूप से दिखाना चाहता हूं। पंप सुरक्षा समय के लिए रजिस्टर D1001 जिम्मेदार है। इसमें हम 15,000, या 1,500 सेकंड लिखते हैं। अगला, हमारे पास एक बैकअप रीसेट श्रृंखला है - अगर कुछ गलत होता है, तो आप इनपुट 1 को सिग्नल X14 पर भेज सकते हैं और बोर्ड को पुनरारंभ कर सकते हैं। इस स्थिति में, 0 रजिस्टरों D0 और D1 को लिखा जाता है, और M98 और M99 मर्कर्स को रीसेट किया जाता है।

नेट 2 - इनपुट सिग्नल प्रोसेसिंग


यहां, टाइमर की मदद से, हम संपर्कों की उछाल से छुटकारा पा लेते हैं। ऐसा करने के लिए, 200 मिलीसेकेंड की देरी का उपयोग करें। यह सुनिश्चित करने के लिए कि भविष्य के कार्यक्रम में संपर्क के इनपुट पते को बदलते समय बहुत अधिक जंजीरों को फिर से लिखना आवश्यक नहीं है, मैं मध्यवर्ती विलय का उपयोग करता हूं (उदाहरण के लिए, एम 102)। यह भी उल्लेखनीय है कि M8003 सिस्टम व्यापारी का उपयोग यहां किया जाता है - यह प्रोग्राम निष्पादन के पहले चक्र के बीत जाने के बाद चालू होता है। लेकिन M8002 मर्कर केवल कार्यक्रम के पहले चक्र में सक्रिय है, और इसे प्रारंभिक मूल्यों को निर्धारित करने के लिए उपयोग किया जा सकता है।

नेट 3 - टैंक भरने 1।


टैंक 1 का भरना पतों के अपवाद के साथ टैंक 2 को भरने के लिए पूरी तरह से समान है। आरेखण थोड़ा फिट नहीं हुआ - लेकिन आप इसे केवल प्रोजेक्ट को खोलकर देखते हैं। इस नियंत्रण इकाई के बारे में क्या उल्लेखनीय है? सुरक्षा और गतिरोधों की उपस्थिति जो सदमे रहित शुरुआत और तंत्र को रोकने की अनुमति देती है। उदाहरण के लिए, वाल्व 1 खोलने के बाद, स्टार्टर को चालू करने के लिए केवल 700 एमएस के बाद एक कमांड जारी किया जाएगा, जो पंप को चालू करता है।

यहां प्रबंधन मैनुअल मोड के लिए प्रदान नहीं करता है। इसके अलावा, ड्राई रनिंग से सुरक्षा और बहुत लंबे पंप ऑपरेशन के खिलाफ सुरक्षा लागू की जाती है।

नेट 5-6 - आउटपुट प्रबंधन


और यहां हम ताले के अनुपालन में आउटपुट को नियंत्रित करते हैं।

कार्यों में से, पुनः आरंभ करने से पहले केवल 30 मिनट की सुरक्षा अंतराल का कनेक्शन अधूरा रह गया। मुझे तुरंत कहना चाहिए - इस संस्करण में केवल इनपुट X0-X3 और आउटपुट Y0-Y3 को लागू किया गया है, जो इस लेख में सामग्री के परीक्षण के लिए काफी है। बाइंडिंग PA4-X0, PA5-X1, PA6-X2, PA7-X3 और PB4-Y0, PB5-Y1, PB6-Y2, PB7-Y3 है।

कार्यक्रम साइकिल की गति - दादाजी माप के तरीके


जब हम खुद से यह सवाल पूछते हैं, तो तुरंत यह करने के लिए दिमाग में आता है - नियंत्रक को एक निश्चित संख्या में समान तत्वों से एक बहुत बड़े कार्यक्रम को लिखने के लिए, निष्पादन का समय मिलता है और एक कमांड का निष्पादन समय मिलता है। यह कहा जाता है - स्पॉइलर प्रोग्राम के तहत और स्पॉइलर के निष्पादन समय के नाम पर किया जाता है।

7995 चरण - 2.6 मिलीसेकंड

यहां, प्रत्येक चरण एक कमांड है, और हमें वह 2.6 / 7995 = 0.325 माइक्रोसेकंड मिलता है। बहुत तेज नहीं है, लेकिन बुरा नहीं है।

एफपीयू - होना या नहीं होना?


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

एक निर्देश के निष्पादन समय की गणना के लिए कार्यक्रम

नीचे दिए गए फर्मवेयर स्पॉइलर के नीचे हैं, और उनके पास कोई प्रतिबंध नहीं है

दो फर्मवेयर

हार्डवेयर FPU का उपयोग करते समय, प्रोग्राम का निष्पादन समय 1.8 ms, या 1.8 / 600 = 0.003 ms, या 3 माइक्रोसेकंड होता है।

अब फर्मवेयर को बदलें - सॉफ्टवेयर एमुलेशन का उपयोग करें। परिणाम पहले से ही अलग है - 2.5 एमएस, या 2.5 / 600 = 0.0041 एमएस, या 4.1 माइक्रोसेकंड। बुरा नहीं है, लेकिन अंतर काफी ध्यान देने योग्य है।

निष्कर्ष


लेख की बड़ी मात्रा के बावजूद, अभी भी बहुत सारी सामग्रियां हैं जिन्हें कवर करना अच्छा होगा। तो अगर यह लेख आपके लिए रूचि का है, तो यह लेख अभी तक किसी अन्य द्वारा पीछा किया जाएगा। लेकिन मैं ऐसे दिमाग वाले लोगों को ढूंढना चाहूंगा जो केवल एक ही उद्देश्य के साथ औद्योगिक और घरेलू के पार जाना चाहते हैं - ताकि ये उपकरण एक साधारण व्यक्ति तक पहुंच सकें।

Source: https://habr.com/ru/post/hi477478/


All Articles