एक प्रशिक्षु ने एक बार पूछा कि उसकी भरने की मशीन का प्रोग्राम कभी-कभी एक स्टेप क्यों छोड़ देता है और बोतल को उस समय भर देता है जब बोतल को स्थिति में नहीं रखा गया था। उत्तर यह नहीं था कि एक टाइमर गायब था — यह स्थिति गायब थी। उसका प्रोग्राम स्वतंत्र स्थितियों का एक ढेर था; असली अनुक्रमिक मशीनें एक स्टेट मशीन होती हैं, और अंतर यह है कि एक ऐसा प्रोग्राम जो कागज पर काम करता है और एक ऐसा प्रोग्राम जो सोमवार को काम करता है।
अनुक्रमिक नियंत्रण स्वचालन में हर जगह है: एक भरने की लाइन, एक टर्नटेबल, एक स्टाम्पिंग प्रेस, एक पेंट बूथ। क्लासिक गलती यह है कि प्रत्येक आउटपुट को एक ढीली स्थिति के रूप में लिखा जाता है — "जब सेंसर A और टाइमर B, वाल्व C खोलें" — और फिर 2 AM पर असंभव संयोजनों को डिबग करना। समाधान यह है कि आउटपुट में सोचना बंद करें और स्थितियों में सोचना शुरू करें।
स्टेट मशीन वास्तव में क्या है
एक स्टेट मशीन नामित चरणों का एक सेट है और उनके बीच स्थानांतरित होने के नियम हैं। मशीन हमेशा एक ही चरण में होती है: WAIT, POSITION, FILL, SEAL, EJECT। प्रत्येक चरण में प्रवेश क्रियाएँ, निकास स्थितियाँ, और गार्ड होते हैं। बोतल केवल FILL चरण में भरी जाती है, और FILL चरण केवल POSITION से तब पहुँचा जा सकता है जब बोतल सेंसर स्थिति की पुष्टि करता है। यह नौकरशाही की तरह लगता है; यह इंजीनियरिंग की तरह व्यवहार करता है।
xLogicSoft के FBD में, एक स्टेट मशीन क्लासिक शिफ्ट रजिस्टर पैटर्न या स्टेप बिट्स के रूप में उपयोग किए जाने वाले F फ्लैग पर साफ-सुथरा मैप होती है। पैटर्न: प्रत्येक चरण के लिए एक F फ्लैग, संक्रमण स्थितियों का एक सेट, और एक वन-शॉट संक्रमण ब्लॉक ताकि मशीन हर घटना पर ठीक एक चरण आगे बढ़े। क्योंकि वर्तमान चरण हमेशा दृश्य में होता है — LCD दिखाता है कि कौन सा F फ्लैग सक्रिय है — ऑपरेटर और रखरखाव व्यक्ति एक नज़र में देख सकते हैं कि मशीन क्या सोचती है। यह एकल विशेषता समस्या निवारण समय को किसी भी निदान मैनुअल से अधिक कम करती है।
इसे बनाना: तीन भरने के स्टेशन
एक साधारण तीन-स्टेशन उदाहरण लें: एक बोतल आती है, भरी जाती है, और कैप होती है। चरण:
- स्टेप 0 IDLE: सभी आउटपुट बंद। संक्रमण: बोतल-उपस्थित सेंसर, प्रारंभ पुशबटन।
- स्टेप 1 POSITION: कन्वेयर तब तक चलता है जब तक बोतल भरने के सिर पर रुक नहीं जाती। संक्रमण: स्थिति सेंसर।
- स्टेप 2 FILL: भरने वाला वाल्व एक समय सीमा के लिए खुलता है या जब तक स्तर सेंसर ट्रिप नहीं होता। संक्रमण: टाइमर समाप्त।
- स्टेप 3 CAPPING: कैपर नीचे आता है और दबाता है। संक्रमण: दबाव-की पुष्टि, टाइमर समाप्त।
- स्टेप 4 EJECT: कन्वेयर बोतल को बाहर ले जाने के लिए चलता है। संक्रमण: निकासी सेंसर साफ करता है।
प्रत्येक संक्रमण एक ऑन-डिले या एक वाइपिंग रिले (वन-शॉट) ब्लॉक का उपयोग करता है ताकि अग्रिम ठीक एक बार हो। हर संक्रमण पर गार्ड स्वयं चरण है — चरण 2 तब तक शुरू नहीं हो सकता जब तक मशीन चरण 1 में न हो, बस। बोतल को जल्दी नहीं भरा जा सकता क्योंकि "जल्दी" एक स्थिति के रूप में मौजूद नहीं है; यह चरण तालिका में नहीं है, और बोतल को स्थिति में नहीं रखा गया है जब तक मशीन POSITION को नहीं छोड़ देती।
ऑपरेटर को मैनुअल स्टेप मोड दें इससे पहले कि आप उन्हें कुछ और दें। एक चयनकर्ता इनपुट मशीन को अनुक्रम के माध्यम से एक बार में एक चरण आगे बढ़ने की अनुमति देता है, ताकि एक सेटअप तकनीशियन लाइन को POSITION, FILL और CAPPING के माध्यम से व्यक्तिगत रूप से जॉग कर सके जबकि वह एक्ट्यूएटर्स को देखता है। स्टेट मशीन इसे तुच्छ बनाती है — एक चरण आगे बढ़ाना बस अगले संक्रमण को मजबूर करना है — और यह कमीशनिंग को एक रहस्य से चेकलिस्ट में बदल देती है। जो मशीनें मैन्युअल रूप से चरणों के माध्यम से नहीं जा सकती हैं, वे मशीनें हैं जिन्हें स्क्रूड्राइवर से डिबग किया जाता है।
विफलता मोड परीक्षण
यहाँ वह व्यायाम है जो प्रकट करता है कि आपने एक स्टेट मशीन बनाई है या एक स्थिति का ढेर: आपात स्थितियों की सूची बनाएं। बोतल भरने के सिर के नीचे फंस गई? मशीन को FILL में रहना चाहिए, पंप को रोकना चाहिए, और अलार्म बजाना चाहिए — EJECT में नहीं भटकना चाहिए और उत्पाद को फर्श पर नहीं गिराना चाहिए। सेंसर विफल हो जाता है और हमेशा "बोतल मौजूद है" की रिपोर्ट करता है? मशीन को POSITION चरण का टाइमआउट करना चाहिए और अलार्म बजाना चाहिए, न कि पूरी रात उसी अदृश्य बोतल को भरना चाहिए। सेंसर दूसरी दिशा में विफल होता है, "कभी मौजूद नहीं"? मशीन धैर्यपूर्वक इंतजार करती है — यह ठीक है, यही मशीनों को करना चाहिए।
प्रोग्राम में एक वॉचडॉग लिखें: यदि मशीन किसी भी गैर-आईडीएल चरण में चरण के अधिकतम समय से अधिक समय तक बैठती है, तो FAULT स्थिति में गिरें, आउटपुट काटें, और अलार्म को फ्लैश करें। अधिकतम समय एक संख्या है जिसे आप पहले से ही चक्र समय से जानते हैं — आप अनुमान नहीं लगा रहे हैं, आप भौतिकी को लागू कर रहे हैं।
एक दोष के बाद क्या होता है, यह तय करें इससे पहले कि दोष हो। सामान्य विकल्प: मशीन जहां है वहीं रुक जाती है, ऑपरेटर कारण को साफ करता है, रीसेट दबाता है, और अनुक्रम आईडीएल में लौटता है — या यदि उत्पाद अभी भी सुरक्षित है तो बाधित चरण की शुरुआत में। आईडीएल में लौटना छोटे मशीनों के लिए सरल और सुरक्षित है; मध्य-चक्र में फिर से शुरू करना तेज है लेकिन मांग करता है कि हर आउटपुट स्थिति ज्ञात और सिद्ध हो। एक भरने की मशीन के लिए, आईडीएल ईमानदार उत्तर है — आधी भरी हुई बोतल किसी भी तरह से स्क्रैप है।
क्यों FBD सीढ़ी के लिए यह बेहतर है
एक डिबगिंग आदत तुरंत अपने लिए भुगतान करती है: वर्तमान चरण को सामने के LCD पर एक साधारण संख्या के रूप में दृश्य बनाएं। ऑपरेटर की पहली रिपोर्ट बन जाती है "यह चरण 4 पर अटका हुआ है," न कि "यह कुछ अजीब करता है," और चरण 4 सीधे इसके संक्रमण की स्थिति की ओर इशारा करता है। xLogicSoft में फ्लैग बिट्स मॉनिटर विंडो में वहीं होते हैं, इसलिए एक लैपटॉप सत्र वही चित्र दिखाता है जो LCD दिखाता है। ऑपरेटर के शब्दों को प्रोग्राम की स्थिति से मिलाना हर बार दो घंटे की खोज को बीस मिनट तक कम कर देता है।
लैडर लॉजिक एक स्टेट मशीन को व्यक्त कर सकता है, लेकिन इसमें सौ रungs और एक चित्र होता है जिसे कोई नहीं पढ़ता। FBD में, चरण संरचना आपके सामने होती है: शिफ्ट रजिस्टर या फ्लैग ब्लॉक वर्तमान चरण को दिखाता है, संक्रमण ब्लॉक दृश्य होते हैं, और अनुक्रम शीर्ष से नीचे पढ़ा जाता है। xLogicSoft वातावरण में लगभग सत्तर कार्य ब्लॉक शामिल हैं, और एक पांच-चरण मशीन जिसमें इंटरलॉक्स होते हैं, एक प्रोग्राम पृष्ठ में आराम से फिट होती है। जब मशीन बदलती है — नया स्टेशन, नया सेंसर — तो आप तारों को फिर से जोड़ने के बजाय एक चरण और दो संक्रमण जोड़ते हैं।
कागज पर चरण तालिका से शुरू करें, फिर फ्लैग, फिर संक्रमण। प्रोग्राम उबाऊ रूप से सही होगा, और उबाऊ रूप से सही एक स्वचालन प्रोग्राम के लिए सबसे बड़ा प्रशंसा है जो अर्जित किया जा सकता है। मशीनों को चालाकी की आवश्यकता नहीं होती; उन्हें भविष्यवाणी की आवश्यकता होती है।












