GRAFCET क्या है? IEC 60848 की संपूर्ण गाइड
अपडेट किया गया
GRAFCET एक ग्राफ़िकल भाषा है जो बताती है कि कोई सीक्वेंशियल कंट्रोल सिस्टम कैसे व्यवहार करता है: कोई मशीन, प्रोडक्शन लाइन या ट्रैफ़िक लाइट। GRAFCET चार्ट स्टेप (सिस्टम क्या कर रहा है) की एक शृंखला है, जो ट्रांज़िशन (आगे बढ़ने की कंडीशन) से जुड़े होते हैं। यह अंतरराष्ट्रीय स्तर पर IEC 60848 के रूप में मानकीकृत है और PLC की Sequential Function Chart (SFC) भाषा का मूल स्रोत है।
यह गाइड मानक के हर एलिमेंट और नियम को आरेखों और उदाहरणों के साथ समझाती है। सभी आरेख GrafcetMaker से बनाए गए हैं, जो आपके ब्राउज़र में चलने वाला एक मुफ़्त GRAFCET एडिटर और सिम्युलेटर है: उदाहरण खोलें और उन्हें स्टेप-दर-स्टेप विकसित होते देखें।
GRAFCET का पूरा नाम
GRAFCET का पूरा नाम GRAphe Fonctionnel de Commande Étape-Transition है, जो फ़्रेंच में "स्टेप- ट्रांज़िशन फ़ंक्शनल कंट्रोल चार्ट" है। इसे 1977 में फ़्रांस के साइबरनेटिक्स संघ AFCET के एक कार्य समूह ने, फ़्रांस की स्वचालित उत्पादन विकास एजेंसी ADEPA के साथ मिलकर प्रस्तावित किया था। यह पेट्री नेट से विकसित हुआ और इसे इस तरह बनाया गया कि PLC कोड की एक भी पंक्ति लिखने से पहले, यह स्पष्ट और तकनीक-निरपेक्ष ढंग से लिखा जा सके कि कंट्रोल सिस्टम को क्या करना है।
- 1982: फ़्रांसीसी मानक NF C03-190।
- 1988: अंतरराष्ट्रीय मानक IEC 848, Preparation of function charts for control systems।
- 2002: IEC 60848 संस्करण 2, GRAFCET specification language for sequential function charts।
- 2013: IEC 60848 संस्करण 3, वर्तमान संस्करण, जो यूरोप में EN 60848 (जर्मनी में DIN EN 60848) के रूप में भी प्रकाशित है।
GRAFCET तकनीकी स्कूलों, व्यावसायिक प्रशिक्षण और इंजीनियरिंग डिग्री में पढ़ाया जाता है, ख़ासकर फ़्रेंच, जर्मन, स्पैनिश और पुर्तगाली भाषी देशों में। परंपरा के अनुसार GRAFCET भाषा का नाम है और grafcet उस भाषा में लिखा गया एक चार्ट है।
grafcet के एलिमेंट
- स्टेप एक वर्ग होता है जिसमें एक नंबर होता है। यह सिस्टम की किसी स्थिर स्थिति को दर्शाता है: प्रतीक्षा, भरना, ड्रिलिंग। किसी भी क्षण हर स्टेप या तो सक्रिय होता है या निष्क्रिय, और सक्रिय स्टेप का समूह grafcet की स्थिति (situation) कहलाता है। स्टेप 1 सक्रिय रहने तक स्टेप वेरिएबल
X1सत्य रहता है। - प्रारंभिक स्टेप, जो डबल वर्ग के रूप में बनाया जाता है, सिस्टम शुरू होने पर सक्रिय होता है। हर grafcet में कम से कम एक प्रारंभिक स्टेप होना चाहिए।
- ट्रांज़िशन किसी लिंक पर बनी एक छोटी क्षैतिज बार है। यह हमेशा स्टेप के बीच होता है: दो स्टेप कभी सीधे नहीं जुड़ते, और न ही दो ट्रांज़िशन।
- रिसेप्टिविटी ट्रांज़िशन के पास लिखी कंडीशन है, जैसे
startयाpressure > 6। रिसेप्टिविटी1हमेशा सत्य होती है। - दिशायुक्त लिंक स्टेप और ट्रांज़िशन को जोड़ते हैं। इन्हें ऊपर से नीचे पढ़ा जाता है; ऊपर की ओर जाने वाले लिंक पर तीर होता है।
- एक्शन स्टेप के दाईं ओर बने आयत हैं: स्टेप सक्रिय रहने तक सिस्टम क्या करता है, जैसे मोटर चलाना।
विकास के पाँच नियम
IEC 60848 पाँच नियमों से ठीक-ठीक परिभाषित करता है कि grafcet कैसे विकसित होता है।
- प्रारंभिक स्थिति: शुरुआत में प्रारंभिक स्टेप सक्रिय होते हैं और बाकी सभी निष्क्रिय।
- ट्रांज़िशन का क्लियर होना: ट्रांज़िशन तब सक्षम (enabled) होता है जब उसके ठीक ऊपर के सभी स्टेप सक्रिय हों। जब वह सक्षम हो और उसकी रिसेप्टिविटी सत्य हो, तब वह क्लियर होता है (पार किया जाता है)।
- सक्रिय स्टेप का विकास: ट्रांज़िशन क्लियर होने पर उसके ठीक नीचे के सभी स्टेप सक्रिय और ठीक ऊपर के सभी स्टेप निष्क्रिय हो जाते हैं।
- एक साथ क्लियर होना: जो सभी ट्रांज़िशन एक ही क्षण में क्लियर हो सकते हैं, वे एक साथ क्लियर होते हैं।
- एक साथ सक्रिय और निष्क्रिय होना: जो स्टेप एक ही क्षण में सक्रिय और निष्क्रिय दोनों होता है, वह सक्रिय रहता है।
जब कोई इनपुट बदलता है, तो उन्हीं इनपुट के साथ नियम बार-बार लागू किए जाते हैं, जब तक कि कोई ट्रांज़िशन क्लियर न हो सके। इसे स्थिरता की खोज (search for stability) कहते हैं। जो स्टेप इस खोज के दौरान सक्रिय होकर फिर छोड़ दिया जाता है, वह अस्थिर स्टेप (या क्षणिक स्टेप) है: उसके कंटीन्यूअस एक्शन कभी नहीं चलते, लेकिन उसके स्टोर्ड एक्शन चलते हैं। उदाहरण के लिए, यदि स्टेप 1 के सक्रिय होते समय स्टेप 1 और 2 के नीचे की रिसेप्टिविटी दोनों पहले से सत्य हों, तो grafcet स्टेप 2 से होकर सीधे स्टेप 3 पर पहुँच जाता है, और स्टेप 2 के आउटपुट कभी चालू नहीं होते।
रिसेप्टिविटी: कंडीशन, एज और टाइमर
रिसेप्टिविटी इनपुट, इंटरनल वेरिएबल, स्टेप वेरिएबल और समय का एक लॉजिकल एक्सप्रेशन है। पाठ्यपुस्तक नोटेशन और GrafcetMaker में इसे टाइप करने का तरीका:
| नोटेशन | अर्थ | GrafcetMaker में टाइप करें |
|---|---|---|
| a · b | a AND b | a * b |
| a + b | a OR b | a + b |
| ऊपर रेखा वाला a | NOT a | /a |
| ↑a | राइज़िंग एज: जिस क्षण a सत्य होता है, उस क्षण सत्य | ↑a या RE a |
| ↓a | फ़ॉलिंग एज: जिस क्षण a असत्य होता है, उस क्षण सत्य | ↓a या FE a |
| X3 | स्टेप 3 सक्रिय है | X3 |
| 5 s/X2 | स्टेप 2 के सक्रिय होने के 5 s बाद सत्य | 5s/X2 |
| t1/a/t2 | a के सत्य होने के t1 बाद सत्य, a के असत्य होने के t2 बाद फिर असत्य | 2s/a/1s |
| [level > 80] | किसी संख्यात्मक मान की तुलना | level > 80 |
| = 1 | हमेशा सत्य | 1 |
एज तब महत्वपूर्ण होते हैं जब कोई सिग्नल सत्य बना रहता है: ↑start के साथ साइकिल बटन के हर दबाव पर एक बार शुरू होता है, और बटन दबाए रखने तक दोबारा नहीं। एडिटर का पूरा सिंटैक्स रिसेप्टिविटी लिखना में बताया गया है।
एक्शन
- कंटीन्यूअस एक्शन तब तक सत्य रहता है जब तक उसका स्टेप सक्रिय है: स्टेप 4 सक्रिय रहने तक Lamp जलता रहता है।
- कंडीशनल एक्शन एक कंटीन्यूअस एक्शन है जिसके बॉक्स के ऊपर एक असाइनमेंट कंडीशन लिखी होती है: Horn केवल तब बजता है जब स्टेप 4 सक्रिय हो और
alarmसत्य हो। - डिलेड (delayed) और टाइम-लिमिटेड (time-limited) एक्शन ऐसे कंडीशनल एक्शन हैं जिनकी कंडीशन में टाइमर होता है:
3s/X4के साथ आउटपुट स्टेप 4 के सक्रिय होने के 3 s बाद चालू होता है;/(3s/X4)के साथ यह केवल पहले 3 s चालू रहता है। - स्टोर्ड एक्शन एक बार मान असाइन करता है, और वह मान तब तक बना रहता है जब तक कोई दूसरा एक्शन उसे न बदले। यह तब चलता है जब स्टेप सक्रिय होता है (ऊपर की ओर तीर), जब वह निष्क्रिय होता है (नीचे की ओर तीर), या स्टेप सक्रिय रहते हुए किसी इवेंट पर (इवेंट के साथ एक फ़्लैग, यहाँ
↑reset)।C := C + 1जैसे काउंटर सामान्य स्टोर्ड एक्शन हैं।
कंटीन्यूअस एक्शन से चलने वाला आउटपुट अपने आप स्टेप का अनुसरण करता है। स्टोर्ड एक्शन से सेट किया गया आउटपुट तब तक सेट रहता है जब तक कोई दूसरा स्टोर्ड एक्शन उसे रीसेट न करे, इसलिए पहले से तय करें कि यह कहाँ होगा।
सीक्वेंस, विकल्प और समानांतर शाखाएँ
रास्तों में से चुनना: OR डाइवर्जेंस
जब किसी स्टेप के बाद कई ट्रांज़िशन हों, तो grafcet वह रास्ता लेता है जिसकी रिसेप्टिविटी सत्य हो: यह वैकल्पिक शाखा है, जो एक एकल क्षैतिज रेखा से बनाई जाती है (OR डाइवर्जेंस, SFC में selection of sequence)। रास्ते फिर एक एकल रेखा पर मिलते हैं (OR कन्वर्जेंस)।
रिसेप्टिविटी को परस्पर अनन्य (exclusive) बनाएँ, ताकि वे कभी एक साथ सत्य न हो सकें, जैसे यहाँ a और /a * b। अन्यथा दोनों ट्रांज़िशन एक साथ क्लियर हो जाते हैं (नियम 4) और दोनों शाखाएँ सक्रिय हो जाती हैं। जब GrafcetMaker यह सिद्ध नहीं कर पाता कि वैकल्पिक रिसेप्टिविटी परस्पर अनन्य हैं, तो वह चेतावनी देता है।
एक साथ काम करना: AND डाइवर्जेंस
जब किसी ट्रांज़िशन के बाद कई स्टेप हों, तो वे सभी एक साथ सक्रिय होते हैं: ये समानांतर शाखाएँ हैं, जो डबल लाइन से बनाई जाती हैं (AND डाइवर्जेंस, SFC में simultaneous sequence)। शाखाएँ भी डबल लाइन पर ख़त्म होती हैं (AND कन्वर्जेंस): उसके नीचे का ट्रांज़िशन तभी सक्षम होता है जब हर शाखा का अंतिम स्टेप सक्रिय हो, यानी वह सभी शाखाओं के पूरा होने की प्रतीक्षा करता है। इसी तरह grafcet कार्यों को सिंक्रनाइज़ करता है।
लूप, जंप, सोर्स और सिंक
- लूप तीर वाले ऊपर की ओर जाने वाले लिंक से किसी पिछले स्टेप पर लौटता है: साइकिल दोहराने का सामान्य तरीका।
- जंप (स्टेप स्किप) एक OR डाइवर्जेंस है जिसकी एक शाखा सीधे किसी बाद के स्टेप पर जाती है, जैसे किसी वैकल्पिक ऑपरेशन को छोड़ने के लिए।
- सोर्स ट्रांज़िशन के ऊपर कोई स्टेप नहीं होता। यह हमेशा सक्षम रहता है, इसलिए जब भी इसकी रिसेप्टिविटी सत्य हो, यह क्लियर हो जाता है;
↑aजैसे एज का उपयोग करें। - सिंक ट्रांज़िशन के नीचे कोई स्टेप नहीं होता: इसके क्लियर होने पर केवल इसके ऊपर के स्टेप निष्क्रिय होते हैं।
बड़े एप्लिकेशन की संरचना
वास्तविक मशीनों को कई grafcet से वर्णित किया जाता है जो मिलकर काम करते हैं।
- आंशिक grafcet में से हर एक सिस्टम के एक भाग का वर्णन करता है, जैसे प्रोडक्शन साइकिल, ऑपरेटिंग मोड और सुरक्षा। ये एक साथ चलते हैं और स्टेप वेरिएबल
Xnके ज़रिए एक-दूसरे के स्टेप देखते हैं। मिलकर ये ग्लोबल grafcet बनाते हैं। - मैक्रो-स्टेप अपनी अलग शीट पर बने एक विस्तृत सीक्वेंस, यानी अपने एक्सपैंशन, को दर्शाता है। एक्सपैंशन में एक इनपुट स्टेप E और एक आउटपुट स्टेप S होता है। मैक्रो-स्टेप के ऊपर का ट्रांज़िशन क्लियर होने पर स्टेप E सक्रिय होता है; मैक्रो-स्टेप के नीचे का ट्रांज़िशन तब सक्षम होता है जब स्टेप S सक्रिय हो।
- एनक्लोज़िंग स्टेप में एक या अधिक पूरे grafcet होते हैं जो केवल उसके सक्रिय रहने तक मौजूद रहते हैं। इसके सक्रिय होने पर तारांकन (*) से चिह्नित एनक्लोज़्ड स्टेप सक्रिय हो जाते हैं; इसके निष्क्रिय होने पर हर एनक्लोज़्ड स्टेप निष्क्रिय हो जाता है।
- फ़ोर्सिंग ऑर्डर, जो डबल फ़्रेम वाले एक्शन बॉक्स में बनाया जाता है, किसी दूसरे grafcet पर एक स्थिति लागू करता है:
G2{8}G2 के केवल स्टेप 8 को सक्रिय होने के लिए फ़ोर्स करता है,G2{*}G2 को उसकी वर्तमान स्थिति में फ़्रीज़ करता है औरG2{}उसके सभी स्टेप निष्क्रिय करता है। फ़ोर्स किया गया grafcet अपने आप विकसित नहीं हो सकता। आपातकालीन स्टॉप और इनिशियलाइज़ेशन का वर्णन करने का मानक तरीका फ़ोर्सिंग ही है।
GRAFCET और SFC
IEC 61131-3 की Sequential Function Chart (SFC) भाषा GRAFCET से बनाई गई थी और लगभग एक जैसी दिखती है, लेकिन दोनों का उद्देश्य एक नहीं है।
| GRAFCET (IEC 60848) | SFC (IEC 61131-3) | |
|---|---|---|
| उद्देश्य | स्पेसिफ़िकेशन: आवश्यक व्यवहार, तकनीक से स्वतंत्र | PLC द्वारा चलाई जाने वाली प्रोग्रामिंग भाषा |
| विकास | सभी क्लियर हो सकने वाले ट्रांज़िशन एक साथ, फिर स्थिरता की खोज | आमतौर पर हर PLC साइकिल में एक विकास, PLC पर निर्भर |
| एक्शन | कंटीन्यूअस, कंडीशनल, डिलेड, टाइम-लिमिटेड और स्टोर्ड एक्शन | एक्शन क्वालिफ़ायर N, S, R, P, P0, P1, L, D, SD, DS और SL |
| पदानुक्रम | आंशिक grafcet, मैक्रो-स्टेप, एनक्लोज़िंग स्टेप और फ़ोर्सिंग ऑर्डर | प्रोग्राम की संरचना के ज़रिए |
सामान्य कार्यप्रवाह यह है कि पहले GRAFCET लिखा और जाँचा जाए, फिर उसे SFC, लैडर या Structured Text में लागू किया जाए। GrafcetMaker उस इम्प्लीमेंटेशन के शुरुआती बिंदु के रूप में चार्ट से Structured Text और PLCopen TC6 XML जनरेट करता है; जनरेट किए गए कोड को उपयोग से पहले हमेशा जाँचें।
उदाहरण
पैदल यात्री बटन वाली ट्रैफ़िक लाइट
स्टेप 0 पैदल यात्रियों को 10 s के लिए हरी बत्ती देता है (10s/X0), फिर स्टेप 1 कारों को चलने देता है। कारों को 30 s तक हरी बत्ती मिलती है, लेकिन पैदल यात्री बटन दबाने पर यह घटकर 10 s रह जाता है: बटन का दबाव इवेंट ↑request पर एक स्टोर्ड एक्शन से याद रखा जाता है और स्टेप 0 के फिर सक्रिय होने पर भुला दिया जाता है। स्टेप 2 3 s के लिए पीली बत्ती दिखाता है।
पार्ट काउंटर वाला ड्रिलिंग स्टेशन
एक मशीनिंग साइकिल: पार्ट को क्लैम्प करें, नीचे ड्रिल करें, वापस लें, क्लैम्प खोलें। क्लैम्प को स्टोर्ड एक्शन सेट और रीसेट करते हैं, और स्टेप 4 पार्ट गिनता है। स्टेप 4 के बाद परस्पर अनन्य रिसेप्टिविटी वाला एक OR डाइवर्जेंस शुरुआत पर लौटता है, या हर 100 पार्ट पर मेंटेनेंस पर जाता है।
एडिटर में और भी उदाहरण हैं: संख्यात्मक इनपुट के साथ टैंक भरना, लाइन को फ़ोर्स करने वाले सुरक्षा grafcet के साथ समानांतर कन्वेयर, एक बॉटलिंग लाइन (मैक्रो-स्टेप, समानांतर में तीन स्टेशन, निरीक्षण और काउंटर) और ऑपरेटिंग मोड (एक एनक्लोज़िंग स्टेप, साइकिल को फ़्रीज़ करने वाला पॉज़, आपातकालीन स्टॉप)। इन्हें GrafcetMaker की प्रारंभ स्क्रीन से खोलें।
GRAFCET ऑनलाइन बनाएँ और सिम्युलेट करें
GrafcetMaker ऑटोमेशन इंजीनियरों, शिक्षकों और छात्रों के लिए बनाया गया एक मुफ़्त, ओपन सोर्स GRAFCET एडिटर है। यह पूरी तरह आपके ब्राउज़र में चलता है, ऑफ़लाइन काम करता है और किसी अकाउंट की ज़रूरत नहीं होती; आपके चार्ट आपके कंप्यूटर पर ही रहते हैं।
- माउस या कीबोर्ड से स्टेप, ट्रांज़िशन, एक्शन और शाखाएँ बनाएँ, और ऑटोमैटिक लेआउट से सब कुछ व्यवस्थित रखें।
- ऑटोकम्प्लीट और वेरिएबल तालिका के साथ रिसेप्टिविटी लिखें, और त्वरित सुधार के साथ स्पष्ट त्रुटि संदेश पाएँ।
- IEC 60848 के नियमों के साथ सिम्युलेट करें: सक्रिय स्टेप, टाइमर, एज, अस्थिर स्टेप, फ़ोर्सिंग और हर वेरिएबल का क्रोनोग्राम।
- आंशिक grafcet, मैक्रो-स्टेप, एनक्लोज़िंग स्टेप और फ़ोर्सिंग ऑर्डर से प्रोजेक्ट की संरचना बनाएँ।
- टाइटल ब्लॉक के साथ PDF, SVG और PNG में, या Structured Text और PLCopen TC6 XML में एक्सपोर्ट करें, और पूरा प्रोजेक्ट एक लिंक के रूप में शेयर करें।
अक्सर पूछे जाने वाले प्रश्न
GRAFCET का उपयोग किसलिए होता है?
सीक्वेंस वाले स्वचालित सिस्टम का व्यवहार निर्दिष्ट करने के लिए: मशीनें, असेंबली लाइनें, पैकेजिंग, बैच प्रक्रियाएँ, लिफ़्ट, ट्रैफ़िक लाइट। चार्ट वह साझा संदर्भ है जिसका उपयोग मशीन डिज़ाइन करने वाले, PLC प्रोग्राम करने वाले और उसका परीक्षण करने वाले लोग करते हैं।
क्या GRAFCET और SFC एक ही हैं?
नहीं। SFC (IEC 61131-3) GRAFCET से बनाया गया था और वही चिह्न उपयोग करता है, लेकिन GRAFCET सटीक विकास नियमों वाली एक स्पेसिफ़िकेशन भाषा है, जबकि SFC एक PLC प्रोग्रामिंग भाषा है जिसका निष्पादन कंट्रोलर पर निर्भर करता है। देखें GRAFCET और SFC।
स्टेप और ट्रांज़िशन में क्या अंतर है?
स्टेप एक ऐसी स्थिति है जो कुछ समय तक बनी रहती है (सिस्टम टैंक भर रहा है); ट्रांज़िशन वह क्षण है जब सिस्टम एक स्थिति से अगली स्थिति में जाता है, जब उसकी रिसेप्टिविटी सत्य होती है (टैंक भर गया है)।
X1 का क्या अर्थ है?
X1 स्टेप 1 का स्टेप वेरिएबल है: स्टेप 1 सक्रिय रहने तक यह सत्य रहता है। इसका उपयोग रिसेप्टिविटी में, एक्शन की कंडीशन में और दूसरे grafcet में होता है, जैसे 5s/X1 या X1 * /X5।
अस्थिर स्टेप क्या है?
ऐसा स्टेप जो स्थिरता की एक ही खोज के भीतर सक्रिय होकर फिर निष्क्रिय हो जाता है, क्योंकि उसके नीचे की रिसेप्टिविटी पहले से सत्य थी। उसके कंटीन्यूअस एक्शन नहीं चलते; उसके स्टोर्ड एक्शन चलते हैं।
GRAFCET को PLC प्रोग्राम में कैसे बदलें?
हर स्टेप एक मेमोरी बिट बन जाता है, हर ट्रांज़िशन एक कंडीशन जो नीचे के स्टेप को सेट और ऊपर के स्टेप को रीसेट करती है, और आउटपुट स्टेप बिट से लिखे जाते हैं। आप यह लैडर या Structured Text में हाथ से कर सकते हैं, अपने PLC की SFC भाषा का उपयोग कर सकते हैं, या शुरुआती बिंदु के रूप में GrafcetMaker से Structured Text या PLCopen XML जनरेट करवा सकते हैं।
क्या कोई मुफ़्त GRAFCET सॉफ़्टवेयर है?
हाँ: GrafcetMaker मुफ़्त और ओपन सोर्स (MIT लाइसेंस) है। यह Windows, macOS, Linux, टैबलेट और फ़ोन पर किसी भी आधुनिक ब्राउज़र में चलता है, और कंपनियाँ इसे अपने नेटवर्क पर होस्ट कर सकती हैं।