बिट लॉजिक ऑपरेशन्स
कॉन्टैक्ट्स, कॉइल्स और एज डिटेक्शन
PLC प्रोग्रामिंग का हृदय। बिट लॉजिक निर्देश हर बूलियन ऑपरेशन को संभालते हैं — सरल कॉन्टैक्ट्स और कॉइल्स से लेकर फ्लिप-फ्लॉप्स और एज डिटेक्शन तक। इनमें महारत हासिल करें और आप कोई भी ऑटोमेशन लॉजिक बना सकते हैं।
बिट लॉजिक ऑपरेशन्स क्या हैं?
बिट लॉजिक ऑपरेशन्स PLC प्रोग्रामिंग में सबसे मौलिक निर्देश हैं। वे बूलियन सिग्नल (TRUE/FALSE, 1/0) के साथ काम करते हैं — इनपुट की स्थिति पढ़ना, AND/OR लॉजिक के साथ शर्तों को जोड़ना और आउटपुट को नियंत्रित करना। LAD में, ये रोंग्स (rungs) पर कॉन्टैक्ट्स और कॉइल्स के रूप में दिखाई देते हैं। FBD में, ये AND/OR/NOT गेट बॉक्स के रूप में दिखाई देते हैं।
प्रत्येक PLC प्रोग्राम बिट लॉजिक निर्देशों का व्यापक रूप से उपयोग करता है। मोटर स्टार्ट/स्टॉप सर्किट, अलार्म स्थिति, वाल्व इंटरलॉक — ये सभी सेंसर की स्थिति पढ़ने वाले कॉन्टैक्ट्स से शुरू होते हैं और एक्चुएटर्स को चलाने वाले कॉइल्स के साथ समाप्त होते हैं।
कॉन्टैक्ट्स — इनपुट स्थिति पढ़ना
कॉन्टैक्ट्स किसी टैग की बूलियन स्थिति को पढ़ते हैं और उसे लॉजिक श्रृंखला में आगे बढ़ाते हैं
नॉर्मली ओपन कॉन्टैक्ट (Normally Open Contact)
—| |—यह क्या करता है
एक बूलियन टैग (BOOL) को पढ़ता है। यदि टैग TRUE (1) है, तो कॉन्टैक्ट बंद हो जाता है और पावर (RLO = TRUE) को अगले तत्व तक पहुंचाता है। यदि टैग FALSE (0) है, तो कॉन्टैक्ट खुला रहता है और पावर प्रवाह को रोकता है। यह LAD प्रोग्रामिंग में सबसे अधिक उपयोग किया जाने वाला निर्देश है।
इसका उपयोग कब करें
हर बार जब आपको यह जांचने की आवश्यकता हो कि कोई शर्त TRUE है: क्या बटन दबाया गया है? क्या सेंसर सक्रिय है? क्या कोई फ्लैग सेट है? एक नॉर्मली ओपन कॉन्टैक्ट रखें और अपना टैग उसे असाइन करें।
प्रो टिप्स
'नॉर्मली ओपन' नाम रिले लॉजिक से आया है — कॉन्टैक्ट अपनी सामान्य/विश्राम स्थिति में खुला (करंट नहीं गुजरने देता) रहता है। ऊर्जा मिलने पर यह बंद हो जाता है।
सीरीज में कई NO कॉन्टैक्ट्स AND लॉजिक बनाते हैं। समानांतर शाखाओं में कई NO कॉन्टैक्ट्स OR लॉजिक बनाते हैं।
FBD में, इसके बराबर केवल एक BOOL वेरिएबल को AND/OR बॉक्स इनपुट से जोड़ना है — किसी स्पष्ट कॉन्टैक्ट सिंबल की आवश्यकता नहीं है।
नॉर्मली क्लोज्ड कॉन्टैक्ट (Normally Closed Contact)
—|/|—यह क्या करता है
नॉर्मली ओपन कॉन्टैक्ट का उल्टा। यदि टैग FALSE (0) है, तो कॉन्टैक्ट बंद रहता है और पावर पास करता है। यदि टैग TRUE (1) है, तो कॉन्टैक्ट खुल जाता है और पावर रोकता है। यह टैग वैल्यू पर NOT ऑपरेशन के रूप में कार्य करता है।
इसका उपयोग कब करें
जब आपको यह जांचने की आवश्यकता हो कि कोई शर्त सत्य नहीं है: इमरजेंसी स्टॉप नहीं दबाया गया है, कोई फॉल्ट सक्रिय नहीं है, लिमिट स्विच तक नहीं पहुंचे हैं। सुरक्षा इंटरलॉक और अलार्म स्थितियों के लिए बहुत सामान्य है।
प्रो टिप्स
इमरजेंसी स्टॉप और सुरक्षा सर्किट के लिए NC कॉन्टैक्ट्स का उपयोग करें — वे फेल-सेफ (fail-safe) होते हैं। यदि तार टूट जाता है, तो NC कॉन्टैक्ट खुल जाता है और मशीन को रोक देता।
FBD में, इसके बराबर एक नेगेटेड इनपुट (AND/OR बॉक्स के इनपुट पिन पर छोटा सर्कल) है।
NC कॉन्टैक्ट निर्देश को भौतिक रूप से NC पुश-बटन के साथ भ्रमित न करें। वे स्वतंत्र अवधारणाएं हैं।
RLO को उल्टा करें (NOT)
—|NOT|—यह क्या करता है
वर्तमान रिजल्ट ऑफ लॉजिक ऑपरेशन (RLO) को उल्टा (नेगेट) करता है। यदि इस बिंदु तक की लॉजिक श्रृंखला TRUE है, तो NOT उसे FALSE बना देता है, और इसके विपरीत। यह संचित लॉजिक परिणाम पर काम करता है, किसी विशिष्ट टैग पर नहीं।
इसका उपयोग कब करें
जब आपको किसी एकल टैग के बजाय एक जटिल लॉजिक एक्सप्रेशन को उल्टा करने की आवश्यकता हो। उल्टे कॉन्टैक्ट्स के साथ पूरी शर्त को फिर से लिखने के बजाय, परिणाम को पलटने के लिए अंत में NOT रखें।
प्रो टिप्स
NOT श्रृंखला में उस बिंदु पर पूरे RLO को उल्टा कर देता है — यह एक NC कॉन्टैक्ट से अलग है जो केवल एक टैग को उल्टा करता है।
FBD में, NOT बॉक्स का उपयोग करें या लॉजिक गेट के आउटपुट को नेगेट करें।
किफायत से उपयोग करें — NOT का अत्यधिक उपयोग लॉजिक को पढ़ने में कठिन बनाता है। अक्सर, लॉजिक को पुनर्गठित करना अधिक स्पष्ट होता है।
कॉइल्स — आउटपुट को नियंत्रित करना
कॉइल्स लॉजिक श्रृंखला के परिणाम को एक आउटपुट टैग में लिखते हैं
असाइनमेंट (Assignment)
—( )—यह क्या करता है
वर्तमान RLO (Result of Logic Operation) को एक बूलियन टैग में लिखता है। यदि लॉजिक श्रृंखला TRUE है, तो टैग TRUE हो जाता है। यदि FALSE है, तो टैग FALSE हो जाता है। यह मानक आउटपुट कॉइल है — यह सीधे हर स्कैन चक्र में इनपुट लॉजिक को दर्शाता है।
इसका उपयोग कब करें
किसी भी आउटपुट के लिए जो सीधे अपनी इनपुट स्थितियों का पालन करना चाहिए। एक पायलट लाइट जो मोटर चलने पर चालू होती है, एक वाल्व जो शर्तें पूरी होने पर खुलता है। आउटपुट इनपुट को ट्रैक करता है — जब शर्तें FALSE होती हैं, तो आउटपुट भी FALSE हो जाता है।
प्रो टिप्स
असाइनमेंट कॉइल 'नॉन-रिटेंटिव' है — यह हर स्कैन में लिखता है। यदि लॉजिक FALSE हो जाता है, तो आउटपुट तुरंत FALSE हो जाता है।
एक टैग को केवल एक नेटवर्क में असाइन किया जाना चाहिए। एक ही टैग के कई असाइनमेंट होने पर अंतिम वाला जीतता है, जिससे अप्रत्याशित व्यवहार हो सकता है।
FBD में, असाइनमेंट केवल एक लॉजिक गेट के आउटपुट को BOOL टैग से जोड़ना है।
नेगेट असाइनमेंट (Negate Assignment)
—(/)—यह क्या करता है
बूलियन टैग में उल्टे RLO को लिखता है। यदि लॉजिक श्रृंखला TRUE है, तो टैग FALSE हो जाता है। यदि लॉजिक श्रृंखला FALSE है, तो टैग TRUE हो जाता है। यह एक निर्देश में असाइनमेंट + NOT को जोड़ता है।
इसका उपयोग कब करें
जब कोई आउटपुट विपरीत स्थिति में सक्रिय होना चाहिए। उदाहरण के लिए, एक 'सिस्टम ओके' लैंप जो फॉल्ट होने पर बंद हो जाता है। पूरी लॉजिक श्रृंखला को उलटने के बजाय, नेगेटेड कॉइल का उपयोग करें।
प्रो टिप्स
नियमित असाइनमेंट कॉइल से पहले NOT लगाने के बराबर, लेकिन अधिक संक्षिप्त।
सावधानी के साथ उपयोग करें — नेगेटेड कॉइल्स पढ़ने में भ्रमित करने वाले हो सकते हैं। कभी-कभी लॉजिक को पुनर्गठित करना अधिक स्पष्ट होता है।
FBD में, यह एक नेगेटेड आउटपुट कनेक्शन है।
आउटपुट रीसेट करें (Reset Output)
—(R)—यह क्या करता है
जब RLO TRUE होता है, तो टैग को FALSE (0) पर सेट किया जाता है। जब RLO FALSE होता है, तो टैग अपरिवर्तित रहता है (अपना वर्तमान मान बनाए रखता है)। यह एक एकतरफा ऑपरेशन है — यह केवल चीजों को बंद कर सकता है, कभी चालू नहीं।
इसका उपयोग कब करें
सेट/रीसेट सर्किट में: एक नेटवर्क आउटपुट सेट (चालू) करता है, दूसरा उसे रीसेट (बंद) करता है। स्टॉप स्थितियों, फॉल्ट क्लियरिंग और अलार्म पावती के लिए रीसेट का उपयोग करें। सुरक्षा लॉजिक में आमतौर पर रीसेट को प्राथमिकता दी जाती है।
प्रो टिप्स
रीसेट केवल तभी काम करता है जब उसका RLO TRUE हो। जब RLO FALSE होता है, तो आउटपुट अपरिवर्तित रहता है — यह इसे TRUE पर सेट नहीं करता है।
S/R जोड़ी में, प्रोग्राम में अंत में आने वाले निर्देश को प्राथमिकता दी जाती है (यदि दोनों स्थितियां एक साथ TRUE हों)।
रीसेट रिटेंटिव है — रीसेट के बाद, आउटपुट स्पष्ट रूप से फिर से सेट होने तक FALSE रहता है।
आउटपुट सेट करें (Set Output)
—(S)—यह क्या करता है
जब RLO TRUE होता है, तो टैग को TRUE (1) पर सेट किया जाता है। जब RLO FALSE होता है, तो टैग अपरिवर्तित रहता है (अपना वर्तमान मान बनाए रखता है)। यह एक एकतरफा ऑपरेशन है — यह केवल चीजों को चालू कर सकता है, कभी बंद नहीं।
इसका उपयोग कब करें
सेट/रीसेट सर्किट में: स्टार्ट स्थितियों, लैच सिग्नल और पहली बार चलाने वाले फ्लैग्स के लिए सेट का उपयोग करें। एक बार सेट होने के बाद, आउटपुट स्पष्ट रूप से रीसेट होने तक TRUE रहता है — जिससे यह बिना सील-इन कॉन्टैक्ट की आवश्यकता के 'सेल्फ-लैचिंग' बन जाता है।
प्रो टिप्स
सेट केवल तभी काम करता है जब उसका RLO TRUE हो। जब RLO FALSE होता है, तो आउटपुट अपरिवर्तित रहता है — यह इसे रीसेट नहीं करता है।
क्लासिक मोटर नियंत्रण: नेटवर्क 1 = स्टार्ट बटन → सेट मोटर। नेटवर्क 2 = स्टॉप बटन या फॉल्ट → रीसेट मोटर।
सुरक्षा सर्किट में रिटेंटिव टैग के साथ सावधान रहें — पावर साइकिल के बाद, DB सेटिंग्स के आधार पर सेट आउटपुट अपनी अंतिम स्थिति को बनाए रख सकते हैं।
बिट फील्ड ऑपरेशन्स
एक ही ऑपरेशन में बिट्स की एक श्रृंखला को सेट या रीसेट करें
SET_BF — सेट बिट फील्ड
यह क्या करता है
एक निर्दिष्ट पते से शुरू होकर बिट्स के एक निरंतर समूह को TRUE पर सेट करता है। आप शुरुआती बिट और सेट किए जाने वाले बिट्स की संख्या निर्धारित करते हैं। जब RLO TRUE होता है, तो सभी निर्दिष्ट बिट्स 1 पर सेट हो जाते हैं।
इसका उपयोग कब करें
जब आपको एक साथ कई संबंधित आउटपुट को सक्रिय करने की आवश्यकता हो — उदाहरण के लिए, स्टेटस वर्ड के सभी बिट्स सेट करना, फ्लैग्स के एक समूह को इनिशियलाइज़ करना, या एक साथ आउटपुट के बैंक को सक्रिय करना।
प्रो टिप्स
प्रत्येक बिट के लिए अलग-अलग सेट निर्देश लिखने के बजाय बैच संचालन के लिए उपयोगी।
बिट्स की संख्या वाला पैरामीटर यह निर्धारित करता है कि कितने लगातार बिट्स प्रभावित होंगे।
सेट की तरह, यह केवल तभी कार्य करता है जब RLO TRUE हो — RLO FALSE होने पर बिट्स अपरिवर्तित रहते हैं।
RESET_BF — रीसेट बिट फील्ड
यह क्या करता है
एक निर्दिष्ट पते से शुरू होकर बिट्स के एक निरंतर समूह को FALSE पर रीसेट करता है। आप शुरुआती बिट और रीसेट किए जाने वाले बिट्स की संख्या निर्धारित करते हैं। जब RLO TRUE होता है, तो सभी निर्दिष्ट बिट्स 0 पर क्लियर हो जाते हैं।
इसका उपयोग कब करें
जब आपको एक साथ कई फ्लैग्स या आउटपुट को क्लियर करने की आवश्यकता हो — उदाहरण के लिए, स्टेटस वर्ड में सभी अलार्म बिट्स को क्लियर करना, शटडाउन के दौरान आउटपुट के समूह को रीसेट करना, या डेटा क्षेत्र को इनिशियलाइज़ करना।
प्रो टिप्स
SET_BF का समकक्ष — समूह-स्तर के सेट/रीसेट संचालन के लिए इनका एक साथ उपयोग करें।
एक ही ऑपरेशन में अलार्म वर्ड्स या स्टेटस रजिस्टर्स को क्लियर करने के लिए विशेष रूप से उपयोगी।
रीसेट की तरह, यह केवल तभी कार्य करता है जब RLO TRUE हो — RLO FALSE होने पर बिट्स अपरिवर्तित रहते हैं।
फ्लिप-फ्लॉप्स — लैचिंग सर्किट
बिस्टेबल तत्व जो स्पष्ट रूप से बदले जाने तक अपनी स्थिति याद रखते हैं
SR — सेट/रीसेट फ्लिप-फ्लॉप
यह क्या करता है
सेट प्राथमिकता वाला एक बिस्टेबल फ्लिप-फ्लॉप। इसमें दो इनपुट हैं: S (सेट) और R (रीसेट), और एक आउटपुट Q। जब S=TRUE होता है, तो Q TRUE हो जाता है। जब R=TRUE होता है, तो Q FALSE हो जाता है। जब S और R दोनों एक साथ TRUE होते हैं, तो Q TRUE होता है (सेट हावी होता है)।
इसका उपयोग कब करें
उन लैचिंग सर्किट के लिए जहां सेट स्थिति को प्राथमिकता दी जानी चाहिए। एक SR फ्लिप-फ्लॉप में, यदि स्टार्ट और स्टॉप दोनों एक साथ दबाए जाते हैं, तो आउटपुट चालू रहता है। इसका उपयोग तब करें जब 'स्टार्ट प्राथमिकता' स्वीकार्य हो।
प्रो टिप्स
SR = सेट प्राथमिकता। यदि S=1 और R=1 → Q=1। तब उपयोग करें जब रोकना शुरू करने से अधिक महत्वपूर्ण हो।
सुरक्षा-महत्वपूर्ण अनुप्रयोगों में, RS (रीसेट प्राथमिकता) को प्राथमिकता दें — यदि दोनों स्थितियां एक साथ ट्रिगर होती हैं तो यह सुरक्षित है।
फ्लिप-फ्लॉप LAD और FBD दोनों में S, R इनपुट और Q आउटपुट वाला एक सिंगल बॉक्स है।
RS — रीसेट/सेट फ्लिप-फ्लॉप
यह क्या करता है
रीसेट प्राथमिकता वाला एक बिस्टेबल फ्लिप-फ्लॉप। इसमें दो इनपुट हैं: R (रीसेट) और S (सेट), और एक आउटपुट Q। जब S=TRUE होता है, तो Q TRUE हो जाता है। जब R=TRUE होता है, तो Q FALSE हो जाता है। जब R और S दोनों एक साथ TRUE होते हैं, तो Q FALSE होता है (रीसेट हावी होता है)।
इसका उपयोग कब करें
उन लैचिंग सर्किट के लिए जहां सुरक्षा सर्वोपरि है। रीसेट (स्टॉप) स्थिति को प्राथमिकता दी जाती है — यदि स्टार्ट और स्टॉप दोनों सक्रिय हैं, तो आउटपुट बंद रहता है। मोटर नियंत्रण और सुरक्षा इंटरलॉक के लिए यह मानक विकल्प है।
प्रो टिप्स
RS = रीसेट प्राथमिकता। यदि S=1 और R=1 → Q=0। अधिकांश औद्योगिक अनुप्रयोगों के लिए सुरक्षित विकल्प।
क्लासिक मोटर नियंत्रण पैटर्न: S = स्टार्ट_बटन AND NOT फॉल्ट, R = स्टॉप_बटन OR इमरजेंसी_स्टॉप OR फॉल्ट।
आउटपुट Q स्कैन चक्र के भीतर रिटेंटिव है — फ्लिप-फ्लॉप के फिर से मूल्यांकन होने तक यह अपना मान बनाए रखता है।
एज डिटेक्शन — सिग्नल परिवर्तन का पता लगाना
पता लगाएं कि सिग्नल कब FALSE→TRUE या TRUE→FALSE में परिवर्तित होता है
पॉजिटिव एज के लिए ऑपरेंड स्कैन करें
—|P|—यह क्या करता है
एक विशिष्ट ऑपरेंड पर बढ़ती हुई एज (FALSE→TRUE परिवर्तन) का पता लगाता है। निर्देश वर्तमान मान की तुलना पिछले स्कैन के मान से करता है। यदि मान 0 से 1 में बदल गया है, तो RLO ठीक एक स्कैन चक्र के लिए TRUE होता है। पिछले स्थिति को संग्रहीत करने के लिए एक एज मेमोरी बिट (M-बिट) की आवश्यकता होती है।
इसका उपयोग कब करें
जब आपको एक निरंतर सिग्नल से वन-शॉट पल्स की आवश्यकता हो: बटन प्रेस गिनें, लेवल परिवर्तन पर एकल क्रिया ट्रिगर करें, प्रत्येक सक्रियण पर काउंटर बढ़ाएं। एज डिटेक्शन के बिना, दबाया हुआ बटन हर स्कैन चक्र में क्रिया को ट्रिगर करेगा।
प्रो टिप्स
आपको एक अद्वितीय एज मेमोरी बिट (M-बिट) असाइन करना होगा — एकाधिक एज डिटेक्शन के लिए एक ही M-बिट का पुन: उपयोग न करें, अन्यथा वे हस्तक्षेप करेंगे।
आउटपुट ठीक एक PLC स्कैन चक्र (आमतौर पर 1-50ms) के लिए TRUE होता है। यदि आपको लंबी पल्स की आवश्यकता है, तो टाइमर का उपयोग करें।
LAD में, यह 'P' मार्किंग वाले कॉन्टैक्ट के रूप में दिखाई देता है। M-बिट टैग कॉन्टैक्ट के ऊपर/नीचे दिखाया गया है।
नेगेटिव एज के लिए ऑपरेंड स्कैन करें
—|N|—यह क्या करता है
एक विशिष्ट ऑपरेंड पर गिरती हुई एज (TRUE→FALSE परिवर्तन) का पता लगाता है। निर्देश वर्तमान मान की तुलना पिछले स्कैन के मान से करता है। यदि मान 1 से 0 में बदल गया है, तो RLO ठीक एक स्कैन चक्र के लिए TRUE होता है। एक एज मेमोरी बिट की आवश्यकता होती है।
इसका उपयोग कब करें
जब आपको सिग्नल बंद होने पर प्रतिक्रिया करने की आवश्यकता हो: पता लगाएं कि बटन कब छोड़ा गया है, सेंसर निष्क्रिय होने पर ट्रिगर करें, या उस क्षण को कैप्चर करें जब प्रक्रिया चरण पूरा हो जाता है।
प्रो टिप्स
पॉजिटिव एज जैसे ही नियम — प्रत्येक नेगेटिव एज डिटेक्शन के लिए अपने स्वयं के अद्वितीय M-बिट की आवश्यकता होती है।
बटन रिलीज' क्रियाओं के लिए उपयोगी: बटन दबाने पर नहीं, बल्कि छोड़े जाने पर टाइमर शुरू करें।
शटडाउन अनुक्रम में, यह पता लगाने के लिए नेगेटिव एज का उपयोग करें कि प्रत्येक चरण कब पूरा होता है (आउटपुट ON से OFF हो जाता है)।
पॉजिटिव एज पर ऑपरेंड सेट करें
—(P)—यह क्या करता है
जब RLO पर पॉजिटिव एज (FALSE→TRUE) का पता चलता है, तो एक स्कैन चक्र के लिए एक निर्दिष्ट ऑपरेंड सेट (TRUE लिखता है) करता है। एक ही निर्देश में एज डिटेक्शन और आउटपुट असाइनमेंट को जोड़ता है।
इसका उपयोग कब करें
जब आप बढ़ती हुई एज पर ठीक एक स्कैन के लिए फ्लैग या आउटपुट सेट करना चाहते हैं, बिना किसी अलग एज डिटेक्शन कॉन्टैक्ट के बाद कॉइल की आवश्यकता के।
प्रो टिप्स
यह एक कॉइल-टाइप निर्देश है — यह रोंग के अंत में जाता है, बीच में नहीं।
कॉन्टैक्ट वर्जन की तरह ही एज मेमोरी बिट की आवश्यकता होती है।
ऑपरेंड केवल एक स्कैन के लिए TRUE होता है, फिर स्वचालित रूप से FALSE पर वापस आ जाता है।
नेगेटिव एज पर ऑपरेंड सेट करें
—(N)—यह क्या करता है
जब RLO पर नेगेटिव एज (TRUE→FALSE) का पता चलता है, तो एक स्कैन चक्र के लिए एक निर्दिष्ट ऑपरेंड सेट (TRUE लिखता है) करता है। एक ही निर्देश में गिरती हुई एज डिटेक्शन और आउटपुट असाइनमेंट को जोड़ता है।
इसका उपयोग कब करें
जब आप गिरती हुई एज पर ठीक एक स्कैन के लिए फ्लैग या आउटपुट सेट करना चाहते हैं। निष्क्रिय होने के बाद की क्रियाओं को ट्रिगर करने के लिए उपयोगी।
प्रो टिप्स
कॉइल-टाइप निर्देश — रोंग के अंत में रखें।
इसके स्वयं के अद्वितीय एज मेमोरी बिट की आवश्यकता होती है।
अक्सर 'क्लीनअप' क्रियाओं के लिए उपयोग किया जाता है जो प्रक्रिया रुकने पर एक बार होनी चाहिए।
P_TRIG — पॉजिटिव एज के लिए RLO स्कैन करें
यह क्या करता है
किसी विशिष्ट ऑपरेंड के बजाय RLO (Result of Logic Operation) पर बढ़ती हुई एज का पता लगाता है। जब संयुक्त लॉजिक परिणाम FALSE से TRUE में बदलता है, तो आउटपुट एक स्कैन चक्र के लिए TRUE होता है। एज मेमोरी निर्देश इंस्टेंस के भीतर संग्रहीत की जाती है।
इसका उपयोग कब करें
जब आप केवल एक टैग के बजाय एक जटिल लॉजिक संयोजन पर बढ़ती हुई एज का पता लगाना चाहते हैं। उदाहरण के लिए: पता लगाएं कि (Sensor1 AND Sensor2 AND NOT Fault) पहली बार कब TRUE होता है।
प्रो टिप्स
P_TRIG संचित RLO पर काम करता है — यह उससे पहले की पूरी लॉजिक श्रृंखला की एज का पता लगाता है।
एज मेमोरी निर्देश में निर्मित है — किसी अलग M-बिट की आवश्यकता नहीं है।
FBD में, P_TRIG एक बॉक्स है जिसमें CLK इनपुट और Q आउटपुट होता है।
N_TRIG — नेगेटिव एज के लिए RLO स्कैन करें
यह क्या करता है
RLO पर गिरती हुई एज का पता लगाता है। जब संयुक्त लॉजिक परिणाम TRUE से FALSE में बदलता है, तो आउटपुट एक स्कैन चक्र के लिए TRUE होता है। एज मेमोरी निर्देश इंस्टेंस के भीतर संग्रहीत की जाती है।
इसका उपयोग कब करें
जब आप यह पता लगाना चाहते हैं कि कोई जटिल स्थिति कब सत्य होना बंद हो जाती है। उदाहरण के लिए: उस क्षण का पता लगाएं जब (Auto_Mode AND All_Clear) TRUE से FALSE हो जाता है।
प्रो टिप्स
N_TRIG, P_TRIG का गिरता हुआ एज समकक्ष है।
किसी अलग M-बिट की आवश्यकता नहीं है — एज मेमोरी आंतरिक है।
एक ही सिग्नल के बजाय संयुक्त स्थिति के अंत का पता लगाने के लिए उपयोगी।
R_TRIG — पॉजिटिव सिग्नल एज का पता लगाएं
यह क्या करता है
एक IEC 61131-3 अनुरूप बढ़ती हुई एज डिटेक्टर फंक्शन ब्लॉक। इसमें एक CLK इनपुट और एक Q आउटपुट है। जब CLK FALSE से TRUE में बदलता है, तो Q एक स्कैन चक्र के लिए TRUE होता है। एज मेमोरी FB के इंस्टेंस डेटा में संग्रहीत की जाती है।
इसका उपयोग कब करें
जब आप अपने स्वयं के इंस्टेंस डेटा के साथ IEC-मानक एज डिटेक्शन चाहते हैं। R_TRIG एक फंक्शन ब्लॉक है — प्रत्येक इंस्टेंस अपनी एज मेमोरी को स्वचालित रूप से बनाए रखता है। संरचित, पुन: प्रयोज्य कोड में पसंद किया जाता है।
प्रो टिप्स
R_TRIG एक FB है — इसे इंस्टेंस डेटा की आवश्यकता होती है (या तो इसका अपना DB या पैरेंट FB में मल्टी-इंस्टेंस के रूप में)। यह इसे स्व-निहित और पुन: प्रयोज्य बनाता है।
S7-1200/1500 पर V1.0 से उपलब्ध है। यह एज डिटेक्शन का IEC 61131-3 मानक तरीका है।
SCL में: myRTRIG(CLK := mySignal); IF myRTRIG.Q THEN ... END_IF;
F_TRIG — नेगेटिव सिग्नल एज का पता लगाएं
यह क्या करता है
एक IEC 61131-3 अनुरूप गिरती हुई एज डिटेक्टर फंक्शन ब्लॉक। इसमें एक CLK इनपुट और एक Q आउटपुट है। जब CLK TRUE से FALSE में बदलता है, तो Q एक स्कैन चक्र के लिए TRUE होता है। एज मेमोरी FB के इंस्टेंस डेटा में संग्रहीत की जाती है।
इसका उपयोग कब करें
जब आप अपने स्वयं के इंस्टेंस डेटा के साथ IEC-मानक गिरती हुई एज डिटेक्शन चाहते हैं। F_TRIG, R_TRIG का गिरती हुई एज वाला समकक्ष है।
प्रो टिप्स
F_TRIG अपने स्वयं के इंस्टेंस वाला एक FB है — R_TRIG की तरह, यह स्व-निहित और IEC 61131-3 अनुरूप है।
SCL में: myFTRIG(CLK := mySignal); IF myFTRIG.Q THEN ... END_IF;
पुन: प्रयोज्य लाइब्रेरी कोड लिखते समय |P|/|N| कॉन्टैक्ट्स के बजाय R_TRIG/F_TRIG को प्राथमिकता दें, क्योंकि उन्हें बाहरी M-बिट्स की आवश्यकता नहीं होती है।
त्वरित संदर्भ — सभी 20 बिट लॉजिक निर्देश
| # | निर्देश | LAD सिंबल | शॉर्टकट | विवरण |
|---|---|---|---|---|
| 1 | नॉर्मली ओपन कॉन्टैक्ट (Normally Open Contact) | —| |— | F9 | टैग TRUE होने पर पावर पास करता है |
| 2 | नॉर्मली क्लोज्ड कॉन्टैक्ट (Normally Closed Contact) | —|/|— | F10 | टैग FALSE होने पर पावर पास करता है |
| 3 | RLO को उल्टा करें (NOT) | —|NOT|— | — | लॉजिक ऑपरेशन के परिणाम को उल्टा करता है |
| 4 | असाइनमेंट (Assignment) | —( )— | Shift + F7 | RLO को आउटपुट टैग में लिखता है |
| 5 | नेगेट असाइनमेंट (Negate Assignment) | —(/)— | — | उल्टे RLO को आउटपुट टैग में लिखता है |
| 6 | आउटपुट रीसेट करें (Reset Output) | —(R)— | — | RLO TRUE होने पर टैग को FALSE पर सेट करता है |
| 7 | आउटपुट सेट करें (Set Output) | —(S)— | — | RLO TRUE होने पर टैग को TRUE पर सेट करता है |
| 8 | SET_BF — सेट बिट फील्ड | — | — | बिट्स की एक श्रृंखला को TRUE पर सेट करता है |
| 9 | RESET_BF — रीसेट बिट फील्ड | — | — | बिट्स की एक श्रृंखला को FALSE पर रीसेट करता है |
| 10 | SR — सेट/रीसेट फ्लिप-फ्लॉप | — | — | सेट प्राथमिकता वाला फ्लिप-फ्लॉप (S=1,R=1 → Q=1) |
| 11 | RS — रीसेट/सेट फ्लिप-फ्लॉप | — | — | रीसेट प्राथमिकता वाला फ्लिप-फ्लॉप (S=1,R=1 → Q=0) |
| 12 | पॉजिटिव एज के लिए ऑपरेंड स्कैन करें | —|P|— | — | एक ऑपरेंड पर बढ़ती हुई एज का पता लगाता है |
| 13 | नेगेटिव एज के लिए ऑपरेंड स्कैन करें | —|N|— | — | एक ऑपरेंड पर गिरती हुई एज का पता लगाता है |
| 14 | पॉजिटिव एज पर ऑपरेंड सेट करें | —(P)— | — | बढ़ती हुई एज पर 1 स्कैन के लिए ऑपरेंड सेट करता है |
| 15 | नेगेटिव एज पर ऑपरेंड सेट करें | —(N)— | — | गिरती हुई एज पर 1 स्कैन के लिए ऑपरेंड सेट करता है |
| 16 | P_TRIG — पॉजिटिव एज के लिए RLO स्कैन करें | — | — | RLO पर बढ़ती हुई एज का पता लगाता है |
| 17 | N_TRIG — नेगेटिव एज के लिए RLO स्कैन करें | — | — | RLO पर गिरती हुई एज का पता लगाता है |
| 18 | R_TRIG — पॉजिटिव सिग्नल एज का पता लगाएं | — | — | IEC बढ़ती हुई एज डिटेक्टर (FB) |
| 19 | F_TRIG — नेगेटिव सिग्नल एज का पता लगाएं | — | — | IEC गिरती हुई एज डिटेक्टर (FB) |
अक्सर पूछे जाने वाले प्रश्न
सेट/रीसेट कॉइल्स और SR/RS फ्लिप-फ्लॉप्स में क्या अंतर है?
सेट (S) और रीसेट (R) कॉइल्स अलग-अलग नेटवर्क में रखे गए व्यक्तिगत निर्देश हैं — आप इस बात से प्राथमिकता नियंत्रित करते हैं कि कौन सा नेटवर्क अंत में आता है। SR/RS फ्लिप-फ्लॉप्स दोनों इनपुट वाले सिंगल बॉक्स हैं — प्राथमिकता इसमें निर्मित है (SR = सेट प्राथमिकता, RS = रीसेट प्राथमिकता)। फ्लिप-फ्लॉप्स अधिक संक्षिप्त हैं और प्राथमिकता को स्पष्ट करते हैं।
मुझे कौन सा एज डिटेक्शन उपयोग करना चाहिए: |P|/|N|, (P)/(N), P_TRIG/N_TRIG, या R_TRIG/F_TRIG?
|P|/|N| कॉन्टैक्ट्स किसी विशिष्ट टैग पर एज का पता लगाते हैं और उन्हें बाहरी M-बिट की आवश्यकता होती है। (P)/(N) कॉइल्स एज डिटेक्शन को आउटपुट असाइनमेंट के साथ जोड़ते हैं। P_TRIG/N_TRIG RLO (संयुक्त लॉजिक) पर एज का पता लगाते हैं। R_TRIG/F_TRIG अंतर्निहित मेमोरी के साथ IEC-मानक FBs हैं। पुन: प्रयोज्य लाइब्रेरी कोड के लिए, R_TRIG/F_TRIG को प्राथमिकता दें। सरल इनलाइन लॉजिक के लिए, |P|/|N| कॉन्टैक्ट्स ठीक हैं।
मेरा सेट/रीसेट सर्किट अप्रत्याशित व्यवहार क्यों कर रहा है?
सबसे आम कारण सेट और रीसेट दोनों स्थितियों का एक साथ TRUE होना है। उस स्थिति में, प्रोग्राम का अंतिम निर्देश जीतता है। यदि आपका रीसेट नेटवर्क आपके सेट नेटवर्क से पहले है, तो आउटपुट सेट हो जाएगा। समाधान: सुरक्षा-महत्वपूर्ण सर्किट के लिए RS फ्लिप-फ्लॉप (रीसेट प्राथमिकता) का उपयोग करें, या सुनिश्चित करें कि आपकी स्थितियां पारस्परिक रूप से अनन्य हैं।
क्या एज डिटेक्शन एनालॉग वैल्यू पर काम कर सकता है या केवल BOOL पर?
एज डिटेक्शन निर्देश (|P|, |N|, R_TRIG, F_TRIG) केवल बूलियन सिग्नल पर काम करते हैं। एनालॉग वैल्यू के लिए, आपको एक तुलना (जैसे, वैल्यू > थ्रेसहोल्ड) बनाने की आवश्यकता है जो एक BOOL परिणाम देती है, फिर उस BOOL पर एज डिटेक्शन लागू करें।