TIA पोर्टल निर्देश

स्थानांतरण ऑपरेशंस
डेटा ट्रांसफर और प्रबंधन

डेटा ट्रांसफर आपके PLC प्रोग्राम का परिसंचरण तंत्र है। वेरिएबल प्रतियों, स्ट्रक्चर सीरियलाइजेशन और मेमोरी ब्लॉक हेरफेर को कुशलतापूर्वक प्रबंधित करें।

TIA पोर्टल में स्थानांतरण ऑपरेशंस क्या हैं?

स्थानांतरण ऑपरेशंस एक मेमोरी स्थान से दूसरे स्थान पर डेटा कॉपी करने की अनुमति देते हैं। वे एक वेरिएबल की सरल प्रतिलिपि (MOVE) से लेकर संचार के लिए संपूर्ण स्ट्रक्चर के जटिल हेरफेर (Serialize/Deserialize) या सन्निहित डेटा क्षेत्रों (MOVE_BLK) के प्रबंधन तक होते हैं।

TIA पोर्टल प्रतीकात्मक पहुंच, Variant प्रकारों के माध्यम से गतिशील प्रबंधन और Array DB के लिए अनुकूलित कार्यों के लिए आधुनिक निर्देश प्रदान करता है, जबकि पुराने S7-300 सिस्टम के साथ संगतता के लिए लेगेसी निर्देशों को बनाए रखता है।

बुनियादी ट्रांसफर

मौलिक प्रतिलिपि और स्वरूपण निर्देश

MOVE — मान कॉपी करें

MOVE

यह क्या करता है

इनपुट IN की सामग्री को आउटपुट OUT में कॉपी करता है। यदि डेटा प्रकार भिन्न है, तो सुरक्षित होने पर एक अंतर्निहित रूपांतरण हो सकता है।

इसका उपयोग कब करें

वेरिएबल को इनिशियलाइज़ करना, HMI सेटपॉइंट कॉपी करना, या गणना परिणामों को स्थानांतरित करना।

प्रो टिप्स

आप एक साथ कई गंतव्यों में मान कॉपी करने के लिए कई आउटपुट (OUT1, OUT2...) जोड़ सकते हैं।

SCL में, बस असाइनमेंट का उपयोग करें: destination := source;

लगभग सभी डेटा प्रकारों (Bool, Int, Real, Struct, String) के साथ काम करता है।

Serialize / Deserialize

SER

ये क्या करते हैं

Serialize एक जटिल स्ट्रक्चर को अनुक्रमिक बाइट स्ट्रीम (Array of Byte) में बदल देता है। Deserialize इसके विपरीत करता है।

इसका उपयोग कब करें

संचार प्रोटोकॉल (TCP/IP, UDP) या कॉम्पैक्ट स्टोरेज के माध्यम से भेजने के लिए डेटा तैयार करना।

प्रो टिप्स

गंतव्य बफर में फिल इंडेक्स को ट्रैक करने के लिए POS पैरामीटर का उपयोग करें।

उन तृतीय-पक्ष प्रणालियों के साथ विनिमय के लिए आवश्यक है जो सीमेंस UDT को नहीं समझते हैं।

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

SWAP — अदला-बदली

SWAP

यह क्या करता है

ऑपरेंड IN में बाइट क्रम (Endianness) को उलट देता है।

इसका उपयोग कब करें

'Little-Endian' प्रारूप का उपयोग करने वाले उपकरणों के साथ संचार जबकि PLC 'Big-Endian' का उपयोग करता है।

प्रो टिप्स

आमतौर पर Word या DWord प्रकारों पर उपयोग किया जाता है।

कुछ Modbus सेंसर से डेटा संसाधित करने के लिए उपयोगी।

उल्टा प्राप्त ASCII कोड को पुनर्गठित करने के लिए उपयोग किया जा सकता है।

ब्लॉक ट्रांसफर

बड़े और सन्निहित मेमोरी क्षेत्रों का हेरफेर

MOVE_BLK / UMOVE_BLK

MOVE_BLK

यह क्या करता है

एक स्रोत Array से गंतव्य Array में तत्वों की एक निश्चित संख्या कॉपी करता है। UMOVE_BLK गैर-व्यवधान योग्य (परमाणु) संस्करण है।

इसका उपयोग कब करें

बफर प्रबंधन, ऐतिहासिक डेटा संग्रह, या विनिर्माण व्यंजनों की नकल करना।

प्रो टिप्स

प्रारंभिक इंडेक्स (COUNT) कॉपी किए जाने वाले तत्वों की संख्या को परिभाषित करता है।

UMOVE_BLK यह सुनिश्चित करता है कि कॉपी करने के दौरान अलार्म OB द्वारा डेटा संशोधित न किया जाए।

स्रोत और गंतव्य डेटा प्रकार समान होने चाहिए।

MOVE_BLK_VARIANT

यह क्या करता है

MOVE_BLK का उन्नत संस्करण जो लचीले एड्रेसिंग के लिए Variant डेटा प्रकारों का समर्थन करता है।

इसका उपयोग कब करें

विभिन्न आकारों या प्रकारों के सरणियों पर काम करने वाले पुन: प्रयोज्य लाइब्रेरी ब्लॉक विकसित करना।

प्रो टिप्स

उन सरणियों के बीच कॉपी करने की अनुमति देता है जिनके प्रकार रनटाइम पर निर्धारित होते हैं।

COUNT पैरामीटर को स्वचालित करने के लिए CountOfElements का उपयोग करें।

जेनेरिक प्रोग्रामिंग के लिए S7-1500 में बहुत शक्तिशाली।

क्षेत्र भरें

मेमोरी रेंज का तेज़ इनिशियलाइज़ेशन

FILL_BLK / UFILL_BLK

FILL

यह क्या करता है

इनपुट IN पर निर्दिष्ट एकल मान के साथ मेमोरी क्षेत्र (Array) भरता है।

इसका उपयोग कब करें

माप सरणी को शून्य पर रीसेट करना, या डिफ़ॉल्ट मान के साथ बफर शुरू करना।

प्रो टिप्स

इंटरप्ट के साथ साझा किए गए महत्वपूर्ण क्षेत्रों के लिए UFILL_BLK बेहतर है।

एक बड़ी सरणी को इनिशियलाइज़ करने के लिए FOR लूप की तुलना में बहुत अधिक प्रदर्शनकारी।

COUNT निर्दिष्ट पॉइंटर से भरे जाने वाले तत्वों की संख्या निर्दिष्ट करता है।

Scatter / Gather

बाइट का विखंडन और संयोजन

SCATTER / GATHER

ये क्या करते हैं

SCATTER एक शब्द (Word, DWord...) को एक स्ट्रक्चर या सरणी में व्यक्तिगत बिट्स में तोड़ देता है। GATHER इसके विपरीत करता है।

इसका उपयोग कब करें

नैदानिक शब्द से स्थिति बिट्स निकालना या नियंत्रण बिट्स से कमांड शब्द बनाना।

प्रो टिप्स

बड़ी संख्या में बिट एक्सेस (जैसे: %X0) को लाभप्रद रूप से बदलता है।

S7-1200 और S7-1500 पर उपलब्ध।

स्वच्छ और बनाए रखने में आसान कोड सुनिश्चित करता है।

Array DB पहुंच

सरणी-प्रकार डेटा ब्लॉक में पढ़ना और लिखना

ReadFromArrayDB / WriteToArrayDB

ये क्या करते हैं

'Array DB' के रूप में कॉन्फ़िगर किए गए डेटा ब्लॉक में किसी विशिष्ट तत्व को पढ़ने या लिखने की अनुमति देते हैं।

इसका उपयोग कब करें

बड़ी डेटा सूचियों का प्रबंधन जहां अनुक्रमण गतिशील और तेज़ होना चाहिए।

प्रो टिप्स

'L' संस्करण (जैसे: ReadFromArrayDBL) कम लगातार डेटा के लिए लोड मेमोरी तक पहुँचते हैं।

Array DB का उपयोग अक्सर क्लासिक इंडेक्स्ड एक्सेस की तुलना में अधिक प्रदर्शनकारी होता है।

जांचें कि पहुंच त्रुटि से बचने के लिए इंडेक्स सीमा के भीतर है।

Variant हेरफेर

डायनामिक प्रोग्रामिंग के लिए उपकरण

VariantGet / VariantPut

ये क्या करते हैं

VariantGet एक Variant वेरिएबल के मान को एक टाइप्ड वेरिएबल में निकालता है। VariantPut एक टाइप्ड मान को एक Variant वेरिएबल में लिखता है।

इसका उपयोग कब करें

उस डेटा को संसाधित करना जिसका सटीक प्रकार केवल ब्लॉक कॉल के समय ज्ञात होता है।

प्रो टिप्स

मान निकालने से पहले प्रकार की जांच करने के लिए EQ_Type का उपयोग करें।

जेनेरिक संचार कार्य बनाने के लिए मौलिक।

यदि Variant किसी Array की ओर इशारा करता है तो CountOfElements तत्वों की संख्या लौटाता है।

Array सीमाएँ

गतिशील सीमा निर्धारण

LOWER_BOUND / UPPER_BOUND

यह क्या करता है

एक Variant पैरामीटर के रूप में पारित सरणी की निचली (LOWER) या ऊपरी (UPPER) सीमा लौटाता है।

इसका उपयोग कब करें

अज्ञात आकार की सरणी पर लूप करना (जैसे: Array[*] of MyUDT)।

प्रो टिप्स

मजबूत FOR लूप लिखने के लिए आवश्यक: FOR i := LOWER_BOUND(...) TO UPPER_BOUND(...) DO

एकल और बहु-आयामी सरणियों दोनों पर काम करता है।

DIM पैरामीटर वांछित आयाम निर्दिष्ट करता है (डिफ़ॉल्ट 1)।

लेगेसी निर्देश

पुराने S7-300/400 सिस्टम के साथ संगतता

BLKMOV, FILL और FieldRead/FieldWrite जैसे निर्देश संगतता के लिए बनाए रखे गए हैं। नए S7-1200/1500 प्रोजेक्ट के लिए, MOVE_BLK, FILL_BLK और प्रत्यक्ष प्रतीकात्मक पहुंच को प्राथमिकता दें।

कॉपी विधियों की तुलना

सही स्थानांतरण निर्देश चुनना

आपको चाहिए...अनुशंसित निर्देशउदाहरण
एक साधारण वेरिएबल कॉपी करेंMOVEसेटपॉइंट -> वास्तविक
मेमोरी क्षेत्र कॉपी करेंMOVE_BLKFIFO बफर
एक सरणी इनिशियलाइज़ करेंFILL_BLKत्रुटि रीसेट
TCP संदेश तैयार करेंSerializeस्ट्रक्चर -> बाइट स्ट्रीम
एक शब्द को बिट्स में तोड़ेंSCATTERशब्द निदान -> स्ट्रक्चर
गतिशील पहुंचVARIANTयूनिवर्सल लाइब्रेरी ब्लॉक

अक्सर पूछे जाने वाले प्रश्न

MOVE और MOVE_BLK में क्या अंतर है?

MOVE का उद्देश्य एक बार में एक एकल मान या एक पूर्ण स्ट्रक्चर को कॉपी करना है। MOVE_BLK को सरणी के एक हिस्से (लगातार तत्वों की एक निश्चित संख्या) को कॉपी करने के लिए अनुकूलित किया गया है।

MOVE_BLK के बजाय UMOVE_BLK का उपयोग क्यों करें?

'U' का अर्थ है Uninterruptible (अबाधित)। यह निर्देश सुनिश्चित करता है कि कॉपी ऑपरेशन अलार्म चक्र (प्राथमिकता वाले OB) द्वारा बाधित नहीं होगा, जिससे कॉपी किए गए डेटा की कुल स्थिरता सुनिश्चित होती है।

Serialize और Deserialize का उपयोग कब करें?

ये निर्देश तब महत्वपूर्ण होते हैं जब आपको TSEND/TRCV जैसे 'रॉ' प्रोटोकॉल के माध्यम से या तृतीय-पक्ष उपकरणों को संरचित डेटा भेजने की आवश्यकता होती है। वे बाइट एलाइनमेंट को मानकीकृत तरीके से संभालते हैं।

क्या MOVE_BLK पूर्ण एड्रेस (P#DB1.DBX0.0...) के साथ काम करता है?

हाँ, लेकिन TIA पोर्टल प्रतीकात्मक पहुंच के उपयोग को प्रोत्साहित करता है। जटिल पूर्ण एड्रेसिंग के लिए, BLKMOV (Legacy) अभी भी उपयोग किया जाता है, हालांकि MOVE_BLK_VARIANT अनुशंसित आधुनिक समाधान है।

अपने डेटा ट्रांसफर को स्वचालित करें

अपनी डेटा हेरफेर की आवश्यकता का वर्णन करें और T-IA Connect आपके एप्लिकेशन के लिए अनुकूलित MOVE और Serialize ब्लॉक उत्पन्न करेगा।