آکومولاتورها
انبارک یا آکومولاتور یک ثبات منطقی است که برای بارگذاری یا به عبارت دیگر ، لود نمودن اطلاعات استفاده میشود. از این ثبات برای بارگذاری اعداد ثابت در تایمرها ، شمارنده ها ، مقایسه گرها و ... استفاده میکنیم. برخی از CPU های زیمنس S7 شبیه S5 دارای 2 آکومولاتور هستند که با ACCU1 و ACCU2 شناخته میشوند. برخی CPU های S7 دارای 4 آکومولاتور میباشند ( مانند CPU318-2 و یا اکثر CPU های S7-400 ) یعنی ، علاوه بر دو مورد فوق ACCU3 و ACCU4 را نیز دارند.
مقادیری که به حافظه بار میشوند ، در ACCU1 قرار میگیرند. در این شرایط ، وقتی قرار باشد که مقدار جدیدی نیز بلافاصله به حافظه بار شود ( به عنوان مثال ، برای جمع یا مقایسه با مقدار قبلی ) در این صورت ابتدا محتویات ACCU1 به ACCU2 منتقل شده و مقدار جدید وارد ACCU1 میشود.
هر یک از آکومولاتور های فوق در PLC های S7 ، 32 بیتی هستند. به عنوان مثال ، آکومولاتور 1 ساختاری مانند شکل زیر دارد:
بدیهی است :
-
وقتی یک بایت بار میشود ، وارد ACCU1-L-L میگردد . (8 بیت)
-
وقتی یک Word بار میشود ، وارد ACCU1-L میگردد . (16 بیت)
-
وقتی یک Dword بار میشود ، وارد ACCU1 میگردد . (32 بیت)
معرفی رجیستر ها و Stack های حافظه ی CPU زیمنس توسط نمایندگی زیمنس
CPU های S7 دارای رجیستر ها و Stack های مختلفی هستند که شکل کلی آنها نشان داده شده و عبارتند از :
-
Status Word یک رجیستر 16 بیتی است و 9 بیت آن در هنگام پردازش برنامه با توجه به نتایج پردازش ، تغییر میکند.
-
Address Registers دو رجیستر 32 بیتی برای ذخیره آدرس است و از دستوراتی مانند LAR و TAR تاثیر میپذیرد.
-
Nesting Stack پشته ای است که دارای 7 سطح بوده و برای وقتی که حالت Nesting در برنامه اتفاق میافتد ، مانند پرانتز های تو در تو استفاده میشود. با باز شدن هر پرانتز مقدار RLO در این پشته ذخیره شده و با بسته شدن پرانتز با RLO جدید ترکیب میشود.
-
MCR Stack پشته ای است که مربوط به دستورات Master Control Relay است.
نماینده زیمنس ایران
رجیستر Status Word اتوماسیون صنعتی زیمنس
از آنجایی که این رجیستر نقش مهمی در دستورات برنامه نویسی داشته و بسیاری از دستورات مانند دستورات پرش به آن وابسته هستند . این رجیستر دارای 9 بیت به شکل زیر است:
در هر سیکل اسکن مقادیر بیت های فوق تحت تاثیر نتایج برنامه 0 یا 1 میشوند ، یا تغییر نمیکنند .
بیت های CC1 , CC0
این دو بیت ، نتیجه ی عملیات محاسباتی مانند جمع ، تفریق ، ضرب و تقسیم را طبق جدول زیر نشان میدهند:
نمایندگی زیمنس
بیت OV
این بیت اگر در نتیجه عملیات محاسباتی سرریزی (Overflow) اتفاق بیفتد ، 1 میشود. وقتی برنامه در همان سیکل اسکن به دستور محاسباتی جدیدی برسد ، این بیت ریست شده و بر اساس نتایج جدید Update میگردد.
بیت OS
این بیت معرف Overflow Stored است ، یعنی سرریزی قبلی که در همان سیکل اسکن اتفاق افتاده است را ذخیره میکند . بر خلاف بیت OV که با رسیدن به دستور محاسباتی جدید ریست میشود ، این بیت مقدار سرریزی را تا پایان آن سیکل اسکن حفظ میکند.
بیت OR
این بیت در صورتی 1 میشود که در خلال دستورات منطقی (bit Logic) عمل AND قبل از OR وجود داشته باشد.
بیت STA
این بیت دقیقاً وضعیت سیگنال منطقی را نشان میدهد که در آن لحظه 1 است یا 0 .
بیت RLO
این بیت معرف نتیجه ی عملیات منطقی در هر نقطه از برنامه (Result of Logic Operation) است. مثلاً وقتی دو سیگنال یکی 0 و دیگری 1 با هم AND شوند ، این بیت نتیجه یعنی 0 را نشان میدهد. تصویر زیر ، وضعیت بیت STA و RLO را در یک Logic ساده نمایش میدهد:
بیت FC
این بیت معرف First Check است . در واقع ، RLO را راهنمایی میکند که وارد Network جدید از برنامه شده یا از بلاکی که صدا زده شده ، برگشت به بلاک ماقبل اتفاق افتاده است . در این شرایط ، باید RLO نتایج قبلی را دور بریزد و متناسب با عملیات جدید ، Update شود.
بیت BR
اگر بخواهیم تحت شرایطی که در First Check ذکر شد ، نتیجه ی RLO قبلی را هم داشته باشیم ، این نتیجه با دستور برنامه نویسی SAVE در BR ذخیره میشود.