تعليمات TIA Portal

عمليات النقل
نقل وإدارة البيانات

نقل البيانات هو الجهاز الدوري لبرنامج PLC الخاص بك. قم بإدارة نسخ المتغيرات، تسلسل الهياكل، ومعالجة كتل الذاكرة بكفاءة.

ما هي عمليات النقل في TIA Portal؟

تسمح عمليات النقل بنسخ البيانات من موقع ذاكرة إلى آخر. تتراوح من النسخ البسيط لمتغير (MOVE) إلى المعالجة المعقدة لهياكل كاملة للاتصال (Serialize/Deserialize) أو إدارة مناطق البيانات المتجاورة (MOVE_BLK).

يوفر TIA Portal تعليمات حديثة للوصول الرمزي، والإدارة الديناميكية عبر أنواع Variant، ووظائف محسنة لـ Array DB، مع الاحتفاظ بتعليمات Legacy للتوافق مع أنظمة S7-300 القديمة.

النقل الأساسي

تعليمات النسخ والتنسيق الأساسية

MOVE — نسخ قيمة

MOVE

ماذا يفعل

ينسخ محتوى المدخل IN إلى المخرج OUT. إذا اختلف نوع البيانات، فقد يحدث تحويل ضمني إذا كان آمناً.

متى تستخدمه

تهيئة المتغيرات، نسخ القيم المحددة من واجهة المستخدم، أو نقل نتائج الحسابات.

نصائح الخبراء

يمكنك إضافة عدة مخارج (OUT1, OUT2...) لنسخ قيمة إلى عدة وجهات في وقت واحد.

في SCL، استخدم ببساطة الإسناد: destination := source;

يعمل مع جميع أنواع البيانات تقريباً (Bool, Int, Real, Struct, String).

Serialize / Deserialize

SER

ماذا تفعل

يقوم Serialize بتحويل هيكل معقد إلى تدفق بايتات متسلسل. يقوم Deserialize بالعكس.

متى تستخدمها

تحضير البيانات للإرسال عبر بروتوكولات الاتصال (TCP/IP, UDP) أو التخزين المدمج.

نصائح الخبراء

استخدم معامل POS لتتبع فهرس الملء في المخزن المؤقت للوجهة.

ضروري للتبادل مع أنظمة خارجية لا تفهم UDT الخاصة بسيمنز.

تأكد من أن حجم المخزن المؤقت كافٍ لتجنب أخطاء التشغيل.

SWAP — تبديل

SWAP

ماذا يفعل

يعكس ترتيب البايتات (Endianness) في المعامل IN.

متى تستخدمه

الاتصال مع أجهزة تستخدم تنسيق 'Little-Endian' بينما يستخدم PLC تنسيق 'Big-Endian'.

نصائح الخبراء

يستخدم عادة على أنواع Word أو DWord.

مفيد لمعالجة البيانات القادمة من بعض حساسات Modbus.

يمكن استخدامه لإعادة ترتيب أكواد ASCII المستلمة بشكل مقلوب.

نقل الكتل

معالجة مناطق ذاكرة ضخمة ومتجاورة

MOVE_BLK / UMOVE_BLK

MOVE_BLK

ماذا يفعل

ينسخ عدداً محدداً من العناصر من مصفوفة المصدر إلى مصفوفة الوجهة. UMOVE_BLK هو النسخة غير القابلة للمقاطعة.

متى تستخدمه

إدارة المخازن المؤقتة، أرشفة البيانات التاريخية، أو تكرار وصفات التصنيع.

نصائح الخبراء

يحدد فهرس البداية (COUNT) عدد العناصر المراد نسخها.

يضمن UMOVE_BLK عدم تعديل البيانات بواسطة OB إنذار أثناء النسخ.

يجب أن تكون أنواع بيانات المصدر والوجهة متطابقة.

MOVE_BLK_VARIANT

ماذا يفعل

نسخة متقدمة من MOVE_BLK تدعم أنواع البيانات Variant للعنونة المرنة.

متى تستخدمه

تطوير قوالب مكتبة قابلة لإعادة الاستخدام تعمل على مصفوفات بأحجام أو أنواع مختلفة.

نصائح الخبراء

يسمح بالنسخ بين مصفوفات يتم تحديد أنواعها عند التشغيل.

استخدم CountOfElements لأتمتة معامل COUNT.

قوي جداً في S7-1500 للبرمجة العامة.

ملء المنطقة

تهيئة سريعة لنطاقات الذاكرة

FILL_BLK / UFILL_BLK

FILL

ماذا يفعل

يملأ منطقة ذاكرة (مصفوفة) بقيمة واحدة محددة عند المدخل IN.

متى تستخدمه

إعادة مصفوفة قياسات إلى الصفر، أو تهيئة مخزن مؤقت بقيمة افتراضية.

نصائح الخبراء

يفضل UFILL_BLK للمناطق الحرجة المشتركة مع المقاطعات.

أكثر كفاءة بكثير من حلقة FOR لتهيئة مصفوفة كبيرة.

يحدد COUNT عدد العناصر المراد ملؤها من المؤشر المحدد.

Scatter / Gather

تفكيك وتجميع البتات

SCATTER / GATHER

ماذا تفعل

يقوم SCATTER بتفكيك كلمة (Word, DWord...) إلى بتات فردية. يقوم GATHER بالعكس.

متى تستخدمها

استخراج بتات الحالة من كلمة تشخيص أو تجميع كلمة تحكم من بتات تحكم.

نصائح الخبراء

يحل محل العديد من عمليات الوصول للبتات بشكل أفضل.

متوفر في S7-1200 و S7-1500.

يضمن كوداً أنظف وأسهل في الصيانة.

الوصول لـ Array DB

القراءة والكتابة في كتل بيانات من نوع مصفوفة

ReadFromArrayDB / WriteToArrayDB

ماذا تفعل

تسمح بقراءة أو كتابة عنصر محدد في كتلة بيانات مهيأة كـ 'Array DB'.

متى تستخدمها

إدارة قوائم بيانات كبيرة حيث يجب أن يكون الفهرس ديناميكياً وسريعاً.

نصائح الخبراء

تصل نسخ 'L' إلى ذاكرة التحميل للبيانات غير المتكررة.

استخدام Array DB غالباً ما يكون أكثر كفاءة من الوصول المفهرس الكلاسيكي.

تحقق من أن الفهرس ضمن الحدود لتجنب خطأ الوصول.

معالجة Variant

أدوات للبرمجة الديناميكية

VariantGet / VariantPut

ماذا تفعل

يستخرج VariantGet القيمة من متغير Variant. يقوم VariantPut بكتابة قيمة في متغير Variant.

متى تستخدمها

معالجة البيانات التي لا يُعرف نوعها الدقيق إلا عند استدعاء القالب.

نصائح الخبراء

استخدم EQ_Type للتحقق من النوع قبل استخراج القيمة.

أساسي لإنشاء وظائف اتصال عامة.

يرجع CountOfElements عدد العناصر إذا كان Variant يشير لمصفوفة.

حدود المصفوفة

تحديد الحدود ديناميكياً

LOWER_BOUND / UPPER_BOUND

ماذا يفعل

يرجع الحد الأدنى (LOWER) أو الأعلى (UPPER) لمصفوفة ممرة كمعامل Variant.

متى تستخدمه

التكرار عبر مصفوفة غير معروفة الحجم.

نصائح الخبراء

ضروري لكتابة حلقات FOR قوية.

يعمل على المصفوفات أحادية ومتعددة الأبعاد.

يحدد معامل DIM البعد المطلوب (1 افتراضياً).

تعليمات Legacy

التوافق مع أنظمة S7-300/400 القديمة

يتم الاحتفاظ بتعليمات مثل BLKMOV و FILL للتوافق. للمشاريع الجديدة، يفضل استخدام MOVE_BLK و FILL_BLK والوصول الرمزي المباشر.

مقارنة طرق النسخ

اختيار تعليمة النقل المناسبة

يجب عليك...التعليمة الموصى بهامثال
نسخ متغير بسيطMOVEالقيمة المحددة -> الحالية
نسخ منطقة ذاكرةMOVE_BLKمخزن FIFO
تهيئة مصفوفةFILL_BLKإعادة ضبط الأخطاء
تحضير رسالة TCPSerializeهيكل -> تدفق بايتات
تفكيك كلمة لبتاتSCATTERتشخيص كلمة -> هيكل
وصول ديناميكيVARIANTقالب مكتبة عام

الأسئلة الشائعة

ما الفرق بين MOVE و MOVE_BLK؟

MOVE مخصص لنسخ قيمة واحدة أو هيكل كامل دفعة واحدة. MOVE_BLK محسن لنسخ جزء من مصفوفة (عدد معين من العناصر المتتالية).

لماذا نستخدم UMOVE_BLK بدلاً من MOVE_BLK؟

حرف 'U' يعني Uninterruptible. تضمن هذه التعليمة عدم مقاطعة عملية النسخ بواسطة دورة إنذار، مما يضمن اتساق البيانات المنسوخة.

متى تستخدم Serialize و Deserialize؟

هذه التعليمات حيوية عندما تحتاج لإرسال بيانات مهيكلة عبر بروتوكولات 'خام' مثل TSEND أو إلى معدات خارجية. تدير محاذاة البايتات بشكل قياسي.

هل يعمل MOVE_BLK مع العناوين المطلقة؟

نعم، ولكن TIA Portal يشجع على استخدام الوصول الرمزي. للعنونة المطلقة المعقدة، لا يزال BLKMOV مستخدماً، رغم أن MOVE_BLK_VARIANT هو الحل الحديث الموصى به.

أتمتة عمليات نقل البيانات الخاصة بك

صف حاجتك لمعالجة البيانات وسيقوم T-IA Connect بتوليد قوالب MOVE و Serialize المحسنة لتطبيقك.