پاورلند آخرین سوالات

Hafez29
  • 0
سرباز

فرق بین –(#)– و –(SAVE) در سمتیک

  • 0

دوستان من فرق بین –(#)– و –(SAVE) در سمتیک خیلی متوجه نشدم بجز اینکه سیو آخر خطه و اون یکی وسط خط قرار میگیره . به نظرتون فرق دیگه ای دارن ؟ یا یه مثال از کاربردشون بگین که تفاوت این دو کامل مشخص بشه .

یک پاسخ بگذارید

یک پاسخ بگذارید

مرور کردن

پایتخت ایران چه شهری است؟ (فارسی پاسخ دهید)

  1. سلام
    بله، تفاوت اصلی بین # و SAVE در نحوه تأثیرگذاری روی شرط‌های منطقی در برنامه STL است:

    1. # (AND MEMORY BIT)

    مقدار شرط قبلی را حفظ می‌کند و برای ادامه شرط‌های منطقی در همان خط استفاده می‌شود.

    اگر مقدار قبلی FALSE باشد، مقدار جدید TRUE هم که بیاید، خروجی باز FALSE می‌ماند.

    2. SAVE (SAVE RESULT BIT)

    مقدار آخرین شرط منطقی در خط را برای شبکه بعدی ذخیره می‌کند.

    مقدار ذخیره‌شده می‌تواند در شبکه‌های بعدی استفاده شود.

    مثال برای درک تفاوت:

    A I0.0 // بررسی وضعیت I0.0
    # I0.1 // AND با I0.1 (نتیجه روی AND MEMORY)
    = Q0.0 // ذخیره نتیجه در Q0.0

    🔹 اگر یکی از ورودی‌ها FALSE باشد، Q0.0 هم FALSE خواهد شد.

    A I0.0
    SAVE // ذخیره نتیجه برای شبکه بعدی
    A I0.1
    = Q0.1 // فقط I0.1 بررسی می‌شود، مقدار قبلی تأثیر ندارد

    🔹 در اینجا، SAVE مقدار I0.0 را حفظ می‌کند، اما در خط بعدی روی I0.1 تأثیری ندارد.

    جمع‌بندی:

    # فقط در همان خط اثر دارد.

    SAVE مقدار برای شبکه بعدی حفظ می‌شود.

  2. بجز اینکه (SAVE) همیشه در انتهای خط قرار می‌گیره و (#) می‌تونه وسط خط هم باشه، فرق اصلیشون در نحوه پردازش و ذخیره مقدار متغیرهاست.
    (SAVE):
    مقدار پردازش‌شده رو در انتهای اجرای برنامه ذخیره می‌کنه
    معمولاً برای ذخیره مقدار نهایی یک متغیر بعد از پردازش در آن چرخه اسکن استفاده میشه
    (#):
    یک متغیر محلی (TEMP) در داخل یک بلوک FC یا FB ایجاد می‌کنه
    مقدارش فقط در طول اجرای اون بلوک معتبره و بعد از خروج از بلوک پاک میشه
    مثال ساده:
    اگه بخوای یه مقدار رو در طول اجرای کل برنامه حفظ کنی، از (SAVE) استفاده می‌کنی، ولی اگه فقط داخل یه FC یا FB به یه مقدار موقت نیاز داشته باشی، (#) میاد وسط!