PLC Test Harness
इंडस्ट्रियल ऑटोमेशन के लिए TDD
टेस्ट परिदृश्य परिभाषित करें, उन्हें PLCSim Advanced के विरुद्ध निष्पादित करें, और तुरंत PASS/FAIL निर्णय प्राप्त करें। PLC लॉजिक के लिए यूनिट टेस्टिंग — उसी तरह जैसे सॉफ्टवेयर इंजीनियर्स अपने कोड का परीक्षण करते हैं.
PLC टेस्टिंग अभी भी मैन्युअल है
स्वचालित परीक्षणों के बिना हर कोड परिवर्तन एक जोखिम है
कोई रिग्रेशन टेस्टिंग नहीं
आप एक फंक्शन ब्लॉक को संशोधित करते हैं और आशा करते हैं कि कुछ और न टूटे। स्वचालित परीक्षणों के बिना, प्रत्येक परिवर्तन में साइलेंट बग्स आने का जोखिम होता है जो केवल फैक्ट्री फ्लोर पर सामने आते हैं.
मैन्युअल वेरिफिकेशन
टेस्टिंग का मतलब है PLC या PLCSim पर मैन्युअल रूप से इनपुट देना, आउटपुट बदलते देखना और हाथ से मानों की जांच करना। यह थकाऊ, त्रुटि-प्रवण, और लगातार दोहराना असंभव है.
कोई टेस्ट डॉक्यूमेंटेशन नहीं
आप कैसे साबित करते हैं कि आपका प्रोग्राम सही ढंग से काम करता है? टेस्ट प्रक्रियाएं Word दस्तावेजों या इंजीनियर के दिमाग में मौजूद होती हैं। कोई मानकीकृत, निष्पादन योग्य टेस्ट स्पेसिफिकेशन नहीं जो प्रोजेक्ट के साथ चलते हों.
AI अपने स्वयं के कोड को सत्यापित नहीं कर सकता
AI PLC कोड जेनरेट करता है, लेकिन आपको कैसे पता चलेगा कि यह काम करता है? स्वचालित टेस्टिंग के बिना, AI-जेनरेटेड कोड बिना टेस्टिंग के प्रोडक्शन में चला जाता है। Test Harness इस लूप को बंद करता है.
PLC Test Harness कैसे काम करता है
PLC लॉजिक के लिए एक संरचित टेस्ट फ्रेमवर्क, जो MCP, Copilot और REST API के माध्यम से सुलभ है
टेस्ट परिदृश्य परिभाषित करें
प्रत्येक टेस्ट चरणों का एक क्रम है: इनपुट सेट करें, PLC की प्रतिक्रिया का प्रतीक्षा करें, फिर सत्यापित करें कि आउटपुट अपेक्षाओं से मेल खाते हैं। टेस्ट आपके TIA Portal प्रोजेक्ट के साथ .test.json फ़ाइलों के रूप में स्टोर किए जाते हैं.
4 Assertion प्रकार
बूलियन और इंटीजर्स के लिए सटीक मिलान। फ्लोटिंग-पॉइंट मानों के लिए टॉलरेंस (±0.1)। रेंज चेक के लिए न्यूनतम/अधिकतम। यह सत्यापित करने के लिए कि मान बदल गया है, Not-equal। प्रत्येक PLC डेटा टाइप को कवर करता है.
Setup & Teardown
प्रत्येक टेस्ट एक सेटअप चरण (टैग्स को ज्ञात स्थिति में इनिशियलाइज़ करना) के साथ शुरू होता है और टीयरडाउन (टैग्स को शून्य पर रीसेट करना) के साथ समाप्त होता है, भले ही टेस्ट विफल हो जाए। स्वच्छ स्थिति की गारंटी.
एक चलाएं या सभी चलाएं
नाम से एक सिंगल टेस्ट चलाएं, इनलाइन टेस्ट पास करें, या पूरे टेस्ट सूट को चलाने के लिए वाइल्डकार्ड (*) का उपयोग करें। परिणाम समीक्षा के लिए last-results.json में स्टोर किए जाते हैं.
पूर्ण ऑडिट ट्रेल
प्रत्येक टेस्ट रन एक विस्तृत रिपोर्ट तैयार करता है: कौन से चरण पास हुए, कौन से विफल हुए, अपेक्षित बनाम वास्तविक मान, और निष्पादन टाइमस्टैम्प। किसी भी समय परिणाम एक्सपोर्ट या क्वेरी करें.
AI-संचालित TDD चक्र
एक कनेक्टेड LLM कोड लिख सकता है, टेस्ट बना सकता है, कंपाइल कर सकता है, PLCSim पर डाउनलोड कर सकता है, टेस्ट चला सकता है और विफलताओं को ठीक कर सकता है — सब स्वायत्त रूप से। PLC के लिए Red → Green → Refactor.
PLC के लिए TDD चक्र
टेस्ट परिभाषा से मान्य PLC लॉजिक तक
1. टेस्ट लिखें
अपेक्षित व्यवहार परिभाषित करें: जब Start_Button दबाया जाता है, तो Motor_Running 500ms के भीतर true होना चाहिए। `plc_test_create` के साथ टेस्ट बनाएं.
2. PLCSim के विरुद्ध चलाएं
Test Harness `plc_test_run` के साथ टेस्ट निष्पादित करें। T-IA Connect PLCSim को इनपुट लिखता है, निर्दिष्ट देरी की प्रतीक्षा करता है, फिर आउटपुट पढ़ता है और जांचता है। निर्णय: PASS या FAIL.
3. ठीक करें और दोहराएं
यदि कोई चरण विफल हो जाता है, तो आप देखते हैं कि वास्तव में क्या गलत हुआ: अपेक्षित Motor_Running = true, प्राप्त false। PLC प्रोग्राम को ठीक करें, रीकंपाइल करें, डाउनलोड करें और टेस्ट फिर से चलाएं.
4. अपना टेस्ट सूट बनाएं
जैसे-जैसे आप विकास करते हैं, टेस्ट जमा करें। रिग्रेशन पकड़ने के लिए हर बदलाव के बाद पूरा सूट चलाएं। टेस्ट .tia-connect/tests/ में प्रोजेक्ट के साथ चलते हैं.
असर्शन प्रकार विस्तार से
सही तुलना के साथ प्रत्येक PLC डेटा टाइप को कवर करना
सटीक मिलान (Exact Match)
बूलियन और इंटीजर्स के लिए। Motor_Running बिल्कुल true होना चाहिए। काउंटर बिल्कुल 5 होना चाहिए। त्रुटि के लिए कोई गुंजाइश नहीं.
टॉलरेंस (±)
REAL और LREAL मानों के लिए। स्पीड 50.0 ± 0.1 होनी चाहिए। फ्लोटिंग-पॉइंट परिशुद्धता और एनालॉग माप शोर को ध्यान में रखता है.
रेंज (न्यूनतम/अधिकतम)
मान एक परिभाषित सीमा के भीतर गिरना चाहिए। तापमान 10.0 और 100.0 के बीच। एनालॉग इनपुट और प्रोसेस वैल्यू के लिए बिल्कुल सही.
बराबर नहीं (Not Equal)
सत्यापित करें कि एक मान अपनी प्रारंभिक स्थिति से बदल गया है। काउंटर 0 के बराबर नहीं होना चाहिए — यह पुष्टि करते हुए कि काउंटिंग लॉजिक वास्तव में चला.
3 चैनलों पर 5 टूल्स
MCP, Copilot (बिल्ट-इन असिस्टेंट), और REST API के माध्यम से उपलब्ध
plc_test_create
सेटअप, चरणों (इनपुट → देरी → असर्शन), और टीयरडाउन के साथ एक टेस्ट केस परिभाषा सहेजें। .tia-connect/tests/ में .test.json फ़ाइल के रूप में स्टोर.
plc_test_run
नाम से एक टेस्ट चलाएं, एक इनलाइन पास करें, या सभी टेस्ट चलाने के लिए * का उपयोग करें। REST के माध्यम से एसिंक्रोनस (jobId लौटाता है)। परिणाम last-results.json में सहेजे गए.
plc_test_list
उनके नाम और विवरण के साथ सभी सहेजे गए टेस्ट केस सूचीबद्ध करें। आपके प्रोजेक्ट के टेस्ट कवरेज का त्वरित अवलोकन.
plc_test_delete
नाम से एक टेस्ट केस निकालें। जैसे-जैसे आपका प्रोजेक्ट विकसित होता है, अप्रचलित टेस्ट साफ़ करें.
plc_test_get_results
नवीनतम टेस्ट रन परिणाम प्राप्त करें: प्रति-चरण PASS/FAIL स्थिति, अपेक्षित बनाम वास्तविक मान, निष्पादन समय और समग्र निर्णय.
अक्सर पूछे जाने वाले प्रश्न
क्या इसके लिए PLCSim Advanced की आवश्यकता है?
हाँ। Test Harness PLCSim Advanced के सिमुलेशन इंटरफ़ेस के माध्यम से इनपुट लिखता है और आउटपुट पढ़ता है। यह वास्तविक PLC के साथ काम नहीं करता है (स्वचालित टेस्टिंग के लिए वह खतरनाक होगा)। PLCSim Advanced एक सुरक्षित, दोहराने योग्य वातावरण प्रदान करता है.
क्या कोई AI स्वायत्त रूप से टेस्ट बना और चला सकता है?
बिल्कुल। एक कनेक्टेड LLM (MCP या Copilot के माध्यम से) PLC कोड लिख सकता है, `plc_test_create` के साथ एक टेस्ट बना सकता है, कंपाइल कर सकता है और PLCSim पर डाउनलोड कर सकता है, टेस्ट चला सकता है, परिणाम देख सकता है और विफल होने पर कोड को ठीक कर सकता है। मानवीय हस्तक्षेप के बिना पूर्ण TDD चक्र.
टेस्ट कहाँ स्टोर किए जाते हैं?
आपके TIA Portal प्रोजेक्ट के बगल में .tia-connect/tests/ फोल्डर में। प्रत्येक टेस्ट एक .test.json फ़ाइल है। परिणाम last-results.json में हैं। टेस्ट प्रोजेक्ट के साथ चलते हैं — प्रोजेक्ट को आर्काइव करें, टेस्ट को आर्काइव करें.
एक टेस्ट रन में कितना समय लगता है?
यह आपके टेस्ट चरणों में परिभाषित देरी (वह समय जो आप PLC को प्रतिक्रिया देने के लिए देते हैं) पर निर्भर करता है। 3-5 चरणों और 200-500ms की देरी वाला एक विशिष्ट टेस्ट 1-3 सेकंड में चलता है। 20 टेस्ट का पूरा सूट चलाने में आमतौर पर एक मिनट से भी कम समय लगता है.