पीएलसी पर ट्रैफिक लाइट - 30 ब्लॉक

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

मैं ट्रैफिक लाइट के स्वचालन में कभी व्यस्त नहीं था, इसलिए मैं खुद एल्गोरिथ्म के साथ आया था। यहाँ यह है:
1. समायोज्य पैदल यात्री क्रॉसिंग के लिए ट्रैफिक लाइट। यानी कारों के लिए एक ट्रैफिक लाइट, पैदल चलने वालों के लिए ट्रैफ़िक लाइट और पैदल चलने वालों के लिए एक बटन, जिस पर क्लिक करके एक पैदल यात्री सड़क पार करने की इच्छा के बारे में सूचित करता है।
2. कार्यक्रम की शुरुआत के बाद, कारों के लिए हरे और पैदल चलने वालों के लिए लाल बत्ती।
3. पैदल यात्री बटन दबाने के बाद, कारों के लिए हरा चमकने लगता है, फिर पीला, फिर लाल, रोशनी करता है। उसके बाद, पैदल चलने वालों के लिए हरी बत्ती जल जाती है, एक निश्चित समय के बाद यह पलक झपकने लगती है, पैदल चलने वालों के लिए लाल बत्ती जल जाती है, उसके बाद कारों के लिए पीली और लाल बत्ती, फिर हरी।
4. पैदल यात्री ट्रैफिक लाइट में हरे रंग के बाद एक निश्चित अवधि के लिए, पैदल यात्री द्वारा बटन दबाने से संक्रमण एल्गोरिथ्म शुरू नहीं होता है। इस मामले में, निर्दिष्ट समय बीतने के बाद ही संक्रमण एल्गोरिथ्म लॉन्च किया गया है।
पीएलसी प्रोग्रामिंग आईईसी 61131-3 मानक की भाषाओं में एकता प्रोग्रामिंग वातावरण में आयोजित की जाती है। इस मानक में 5 भाषाएं शामिल हैं। उदाहरण के लिए, मैंने फ़ंक्शन ब्लॉकों की भाषा चुनी - FBD।
यहाँ एकता में परियोजना ब्राउज़र है:

पीएलसी कॉन्फ़िगर करें:

पीएलसी में एक बढ़ते प्लेट, एक बिजली की आपूर्ति (1), एक नियंत्रक (2), 32 24V डीसी संकेतों के लिए एक असतत इनपुट मॉड्यूल (4), 32 24 वी डीसी संकेतों (5) के लिए एक असतत इनपुट मॉड्यूल शामिल हैं। एक वास्तविक परियोजना में, विभिन्न नेटवर्क पर एक ही नियंत्रक से जुड़े बढ़ते पैनल में दर्जनों हो सकते हैं, और I / O मॉड्यूल - सैकड़ों।
हम चर संपादक में आवश्यक प्रकार के चर बनाते हैं:

I / O मॉड्यूल्स के चैनलों से जुड़े वेरिएबल्स में एक पता होता है जो दर्शाता है कि कौन सी टोकरी, मॉड्यूल और चैनल सिग्नल के लिए बाध्य है।
कार्यक्रम में अनुभाग होते हैं जो नियंत्रक के प्रत्येक स्कैन चक्र को क्रम में निष्पादित करते हैं।
सरलीकृत नियंत्रक स्कैन चक्र इस तरह दिखता है:
1. पतों के साथ चर में इनपुट मॉड्यूल से इनपुट संकेतों को पढ़ना।
2. प्रदर्शन अनुभाग।
3. आउटपुट मॉड्यूल के आउटपुट सिग्नल के पते के साथ चर से मान लिखना।
4. पैरा 1 के लिए संक्रमण।
0.5 सेकंड की अवधि के लिए पल्स जनरेटर के साथ एक घड़ी अनुभाग बनाएं। जब इनपुट सिग्नल 0 से 1 में बदलता है, तो टीपी ब्लॉक एक निश्चित अवधि की पल्स उत्पन्न करता है।

यहां और नीचे अनुभागों के स्क्रीनशॉट्स को एनीमेशन मोड में दिखाया गया है, और संपादन मोड में नहीं। वे मौजूदा समय में चर के मूल्यों को प्रदर्शित करते हैं जब एक लोड कार्यक्रम (संख्यात्मक चर, रंग हरा (1)-बूलियन के लिए) के साथ एक पीएलसी से जुड़ा होता है)।
मुख्य खंड मुख्य तर्क को संभालता है।
ब्लॉक SR आउटपुट को S1 = 1 पर 1 पर सेट करता है और आउटपुट को R = 1 पर 0 पर सेट करता है।
R_TRIG ब्लॉक इनपुट को 0 से 1 के लिए आउटपुट सेट करता है जब इनपुट 0 से 1 (लीड एज डिटेक्टर) से जाता है।
F_TRIG ब्लॉक इनपुट को 1 से 0 तक इनपुट के लिए आउटपुट सेट करता है जब इनपुट 1 से 0 (ट्रेलिंग एज डिटेक्टर) से जाता है।
बटन चैनल के लिए बाध्य इनबटन वैरिएबल को इनट्यूट के साथ खंड में बदल दिया गया है ताकि वास्तविक उपकरणों के बिना नियंत्रक सिम्युलेटर पर इसका मान बदला जा सके।

आउटपुट सेक्शन ट्रैफिक लाइट को नियंत्रित करने के लिए आउटपुट सिग्नल उत्पन्न करता है।

हम प्रोजेक्ट को नियंत्रक सिम्युलेटर में लोड करते हैं:

किसी भी चर का मान एनीमेशन तालिका में देखा जा सकता है:

लेकिन डिबगिंग की सुविधा के लिए, आप साधारण ग्राफिक्स के साथ एक ऑपरेटर स्क्रीन बना सकते हैं, जिसका एनीमेशन चर से बंधा हुआ है:

हम सड़क पार करने की कोशिश करते हैं:

मुझे उम्मीद नहीं थी कि ट्रैफिक लाइट जैसी सरल वस्तु को नियंत्रित करने के लिए 30 ब्लॉक की आवश्यकता होगी।
अगले लेख में मैं यह दिखाऊंगा कि एक ही समय में आईईसी 61131-3 मानक की सभी भाषाओं का उपयोग करके इस कार्यक्रम को कैसे लिखा जाए।

युपीडी। मानक के नाम पर गलती सुधार ली।


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


All Articles