بلوک شیفت رجیستر در لوگو
ثبات انتقالی یا Shift register در لوگوسافت
شیفت رجیستر به معنی ثبات انتقال دهنده و زنجیره ای از فلیپ فلاپ هاست. این فلیپ فلاپ ها دارای یک پالس ساعت مشترک هستند. خروجی هر فلیپ فلاپ به شکل زنجیره ای به ورودی فلیپ فلاپ بعدی متصل شده و می توان با استفاده از آن ها اطلاعات را یک واحد به راست یا چپ شیفت داد. هنگام شیفت دادن یک عدد معمولا بیت قرار گرفته در ورودی وارد آرایه شده و آخرین بیت از آرایه خارج می شود. ثبات انتقالی یا shift register در لوگو ورژن 4 تا 6 با ورژن 7، 8 و LOGO! 8.FS4 تفاوت دارد
انواع بلوک های شیفت رجیستر
در جدول زیر تصویر انواع بلوکهای شیفت رجیستر به همراه ورژن لوگوی متناظر با آن آورده شده است.
ورژن لوگو | بلوک شیفت رجیستر |
0BA4 تا 0BA6 | |
0BA7 و 0BA8 | |
LOGO! 8.FS4 |
بلوک شیفت رجیستر مقدار ورودی را خوانده و بیت ها را شیفت میدهد. اگر ورودی صفر باشد، بیت صفر و اگر ورودی یک باشد، بیت یک شیفت داده می شود. در لوگو 8 امکان استفاده از حداکثر 4 بلوک شیفت رجیستر وجود دارد. به عبارت دیگر حرف x در عبارت Sx.y از بین اعداد 1 تا 4 قابل انتخاب است. هر یک از این بلوک ها دارای 8 بیت یا 8 عدد Shift register bit هستند. به عنوان مثال برای بلوک Shift register x می توان از بلوک های Shift register bit شماره 1 تا 9 یعنی Sx.1 تا Sx.8 استفاده کرد. در تصویر زیر پنجره مشخصات این بلوک را مشاهده می کنید.
نقش پایه ها در بلوک شیفت رجیستر
بلوک Shift register دارای 4 پایه ورودی دیجیتال و یک خروجی دیجیتال است. عملکرد این پایه ها به این شرح است:
- In: عبارت In مخفف کلمه Input است. این ورودی مشخص کنندهی عدد ورودی برای شیفت می باشد. با اعمال لبه ی بالارونده به پایه Trg یا تغییر سیگنال از 0 به 1 مقدار بیت In توسط بلوک شیفت رجیستر خوانده میشود.
- Trg: پایه تریگر نقش مهمی در این بلوک دارد. با تغییر سیگنال از 0 به 1 در ورودی Trigger بلوک شیفت رجیستر شروع به کار میکند. در پایه Trg تغییر سیگنال از 1 به 0 بی تاثیر است.
- Dir: با استفاده از این پایه میتوان جهت شیفت در بلوک را معکوس کرد. به صورت کلی عملکرد این بلوک در دو جهت شیفت بالا یا Shift up و شیفت پایین یا Shift down است. منظور از شیفت بالا، حرکت بیت از شماره Sx.1 به سمت Sx.8 در یک بلوک شیفت رجیستر است. به عبارت دیگر با فعال شدن پایه Trg مقدار بیت S1.1 وارد بیت S1.2، محتوی بیت S1.2 وارد بیت S1.3 و تا بیت S1.8 ادامه مییابد. منظور از شیفت پایین حرکت یک بیت از سمت Sx.8 به طرف Sx.1 است. به صورت کلی عملکرد ورودی Dir مخفف Direction است. اگر Dir = 0 باشد آنگاه شیفت به بالا یا Shift up به صورت Sx.1 >> Sx.8 انجام می شود. در Dir = 1 شیفت پایین یا Shift down به شکل Sx.8 >> Sx.1 انجام می شود.
- R: در لوگو 8.FS4 می توان شیفت رجیستر را با اعمال سیگنال 1 به ورودی R ریست کرد. در این حالت تمام بیت های شیفت رجیستر یا همان Sx.1 تا Sx.8 و همچنین خروجی Q صفر خواهند شد.
- Q: این پایه خروجی دیجیتال بلوک شیفت رجیستر است.
پارامتر ها در شیفت رجیستر
در Shift register سه پارامتر زیر وجود دارد:
- Shift register index
- Shift register bit
- Retentivity
1) Shift register index
Shift register index معرف شماره ی بلوک است. در لوگو 8 حداکثر از 4 بلوک شیفت رجیستر می توان استفاده کرد.
2) Shift register bit
این پارامتر مشخص کنندهی مقدار خروجی Q است. با استفاده از این آیتم می توان تعیین کرد که وضعیت خروجی Q با کدام یک از بلوکهای shift register bit یکسان باشد. هر بلوک شیفت رجیستر دارای هشت Shift register bit با شماره S1 تا S8 است. شیفت رجیستر بیت ها را می توان در قسمت های ثابت دیجیتال انتخاب کرد. در نظر داشته باشید که این بلوک ها در برنامه نویسی لوگو فقط خواندنی هستند. محتوی این شیفت رجیستر بیتها تنها با استفاده از بلوک Shift register تغییر میکند. در تصویر زیر شماتیک یکی از این بیت ها را مشاهده میکنید.
فرض کنید بیت ورودی In در یک شیفت رجیستر برابر با 1 بوده و پایه Trg آن فعال شود. به این ترتیب در صورت صفر بودن پایه Dir مقدار بلوک شیفت رجیستر بیت S1.1 برابر با 1 میشود. با فعال شدن مجدد پایه Trg مقدار موجود در بلوک S1.1 وارد بلوک S1.2 شده و مقدار بیت ورودی In وارد بلوک S1.1 خواهد شد. در این روش مقادیر بلوک های Shift register bitها با استفاده از بلوک Shift register مربوط به آنها تعیین میشود.
هنگام تنظیم پارامتر Shift register bit در بلوک Shift register اعداد 1 تا 8 قابل انتخاب هستند. به عنوان مثال تنظیم این پارامتر روی 5 به معنی یکسان بودن وضعیت خروجی Q با وضعیت بیت پنجم شیفت رجیستر است. به منظور فعال کردن خروجی Q در این مثال باید باید ورودی 1 به اندازه ی 4 واحد شیفت داده شود. با این کار خروجی Q در بلوک Shift register و خروجی بلوک Shift register bit با شماره S1.5 فعال خواهند شد. با فعال شدن ورودی Trg این شیفت ادامه پیدا کرده و اطلاعات به روز خواهد شد.
3) Retentivity
فعال شدن این پارامتر در برگه مشخصات بلوک باعث ذخیره شدن وضعیت در حافظه میشود. عملکرد کلی بلوک شیفت رجیستر به دو پایه Dir و Trg بستگی دارد. در لحظه فعال شدن ورودی Trg مقدار ورودی In خوانده میشود. با توجه به مقدار پایه Dir یکی از دو حالت ممکن است:
- در صورت صفر بودن ورودی Dir مقدار ورودی In وارد بیت اول از شیفت رجیستر یعنی Sx.1 خواهد شد. به عبارت شده تر با فعال شدن پایه ی Trg در یک لحظه تمام بیت های 1 تا 8 به سمت راست شیفت پیدا کرده و مقدار ورودی In وارد بیت اول می شود.
- در صورت یک بودن ورودی Dir شیفت به پائین انجام می شود. شیفت پائین به معنی وارد شدن مقدار In به آخرین بیت یعنی Sx.8 از شیفت رجیستر خواهد بود. در این حالت با فعال شدن پایه ی تریگر ابتدا بیت های 8 تا 1 جابجا شده و مقدار ورودی In وارد بلوک خواهد شد.
با لبه مثبت در ورودی R مقدار تمامی شیفت رجیستر بیت ها و همچنین مقدار خروجی Q صفر میشود. در تصویر زیر دیاگرام عملکرد بلوک Shift register را مشاهده می کنید. در این مثال مقدار Q برابر با S1.4 است.
پارامترهای Shift register index و Shift register bit با رنگ سبز در کنار بلوک نمایش داده میشوند. در واقع مقدار تنظیم شده برای پارامتر Shift register bit و Shift register index به ترتیب همان x و y در عبارت Sy.x هستند. در تصویر زیر موقعیت این پارامتر ها نمایش داده شده است.
مثال 1
در تصویر زیر روش استفاده از بلوک شیفت رجیستر به همراه چهار ورودی را مشاهده می کنید. این شیفت رجیستر دارای 8 بلوک بیت بوده که در قسمت های دیگر برنامه قابل استفاده هستند. این بلوک ها با عبارت های S1.1 تا S1.8 مشخص شده اند. در نظر داشته باشید که یک بایت اطلاعات از 8 بیت تشکیل شده است.
در این مثال پارامتر شماره بلوک یا Shift register index در پنجره ی مشخصات روی 1 تنظیم شده است. گزینه ی دوم در پنجره مشخصات با عنوان Shift register bit at the output connector مشخص کننده ی ارتباط خروجی Q با یکی از بیت ها می باشد. همانطور که مشاهده می کنید این پارامتر قابل تنظیم برابر با 4 است. در این حالت خروجی Q با وضعیت S1.4 تعیین می شود. تصور کنید ورودی In برابر با یک بوده و پایه Trg فعال شود. در این لحظه بلوک بیت اول یا Shift register bit با شماره ی S1.1 فعال خواهد شد. در صورت فعال شدن پایه ی Trg این روند ادامه پیدا کرده و در مرحله ی سوم مقدار S1.4 و Q برابر با یک خواهد شد.
عملکرد برنامه ی را در تصویر زیر مشاهده می کنید. روند تغییرات برنامه به این شرح است:
- با فعال شدن پایه Trg ورودی In خوانده شده وارد S1.1 میشود. تصور کنید در این مثال ورودی In در لحظه ی فعال شدن Trg برابر با یک بوده و در مراحل بعدی صفر خواهد بود.
- با وارد شدن مقدار 1 به شیفت رجیستر مقدار بیت اول یا S1.1 برابر با یک خواهد شد. قرمز شدن بلوک S1.1 در تصویر زیر به معنی فعال شدن آن است.
- در این مرحله ورودی In صفر بوده و پایه ی Trg فعال می شود. این عمل به معنی انتقال تمام داده ها به سمت راست و وارد شدن مقدار 0 به بیت S1.1 است. به این ترتیب بلوک S1.1 خاموش و بلوک S1.2 روشن میشود.
-
- با صفر بودن ورودی In و فعال شدن مجدد Trg یک شیفت دیگر انجام می شود. همانطور که مشاهده می کنید بیت S1.3 فعال بوده و دیگر خروجی ها صفر هستند.
-
- صفر بودن ورودی In و فعال شدن پایه ی Trg برای چهارمین بار دو تغییر را ایجاد می کند. ابتدا یک شیفت انجام شده و خروجی S1.4 فعال می شود. با توجه به تنظیم مقدار Shift register bit at the output connector روی 4 خروجی شیفت رجیستر یعنی Q نیز فعال می شود.
-
- در صورت صفر بودن ورودی In و فعال شدن Trg بیت ها به ترتیب روشن و خاموش می شوند. این روند تا خارج شدن مقدار 1 از شیفت رجیستر ادامه پیدا می کند.
مطالب شرح دادهشده در این مقاله را میتوانید بهصورت ویدئو در دوره تصویری لوگو زیمنس مشاهده کنید. در این دورهی آموزشی با انواع پی ال سی، زبانهای برنامهنویسی و مینی پی ال سی لوگو زیمنس آشنا میشویم. آموزش لوگو از ابتدا صورت گرفته و شامل بررسی ماژول اصلی، کارتهای توسعه، نصب، سیم بندی، برنامهنویسی و کنترل توسط اپلیکیشن و وب سرور میشود. در بخش برنامهنویسی تمام بلوکهای دیجیتال، شبکه، آنالوگ و غیره بررسیشده و نحوهی کار آنها روی لوگو نمایش دادهشده است. مانیتورینگ و کنترل لوگو از طریق اپلیکیشن، وب سرور و صفحههای طراحیشده توسط LWE صورت میگیرد. این موارد نیز در دورهی تصویری شرح دادهشدهاند. لطفاً جهت مشاهدهی سرفصلها و لیست ویدئوهای این دوره روی عبارت لوگو زیمنس کلیک کنید.
مثال 2
در این مثال طراحی مدار با این شرایط مد نظر است:
-
- با فشردن دکمه استارت موتور 1 روشن شود.
- پس از 10 ثانیه موتور 1 خاموش و موتور 2 روشن شود.
- پس از 10 ثانیه ی دیگر موتور 2 خاموش و موتور 3 روشن شود.
- در نهایت پس از گذشت 10 ثانیه دیگر موتور 3 خاموش و موتور 4 روشن شود.
طراحی مدار فوق با روش های متعددی قابل انجام است. برای درک بهتر از عملکرد شیفت رجیستر می توان مدار را با یک بلوک Shift register به همراه 4 بیت آن ترسیم کرد. در این حالت می توان از یک بلوک مولد پالس غیر سنکرون نیز استفاده کرد. تصویر مدار نهایی در ادامه آورده شده است.
در توضیحات ذکر شده که هر موتور باید 10 ثانیه روشن بماند. با اعمال لبه مثبت به پایه En بلوک مولد پالس، خروجی آن به مدت زمان TH فعال و به مدت زمان TL خاموش خواهد شد. به این ترتیب زمان 10 ثانیه برابر با TH+TL یه 3+7 می باشد. پایه En بلوک شیفت رجیستر به لبه ی مثبت حساس است. به عبارت دیگر تغییر خروجی مولد پالس از حالت روشن به خاموش باعث اختلال در عملکرد شیفت رجیستر نخواهد شد. این مزیت باعث می شود تا بتوان از هر دو عدد غیر صفر با حاصل جمع 10 در مولد پالس استفاده کرد. رله ی RS به منظور فعال نگه داشتن پایه ی En مولد پالس است. ورودی In بلوک شیفت رجیستر حتما باید به صورت لحظه ای باشد. انتخاب I1 به شکل سوئیچ باعث ایجاد اختلال در عملکرد سیستم خواهد شد. به عبارت دیگر با یک باقی ماندن ورودی In شیفت رجیستر هرگز موتورها خاموش نمی شوند.
خروجی بیت های 1 تا 4 شیفت رجیستر به Q1 تا Q4 متصل شده اند. در صورت نیاز به فعال شدن مجدد موتورها پس از 40 ثانیه باید پایه ی R شیفت یک لحظه تحریک شود. به این منظور می توان از یک تایمر تاخیر در قطع با زمان تاخیر 40 ثانیه و بلوک AND استفاده کرد.
فشردن شستی I1 قبل از اتمام 40 ثانیه باعث اختلال در مدار فوق می شود. به منظور جلوگیری از این اختلال می توان دو بوک AND دیگر به مدار اضافه کرد. این بلوک ها با شماره های B006 و B007 مشخص شده اند.
به منظور آشنایی با نحوه ی اسکیل کردن مقادیر آنالوگ در لوگو لطفا مقاله ی پردازش مقادیر آنالوگ در لوگو را مطالعه کنید.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.