دو تا پیچ اصلی در طراحی مدار فرمان برای آسانسور ساختمون چار طبقه رو رد کردیم و مونده دو تا پیچ دیگه: طراحی مدار فرمان وقتی که اتاقک آسانسور توی طبقه ی دومه و وقتی که توی طبقه ی سومه.
باز دوباره جدول صحت خروجی ها رو میکشیم ولی باید یادمون باشه که بر خلاف دو تا مدار قبلی (قسمت پنجم) اینبار کنتاکتورهای upp و downn روشن هستند و باید در جدول بیان. فقط چون هر کدوم روشن باشه اون یکی خاموشه میتونیم جدول رو ساده ش کنیم و یه بار برای upp=1 بنویسیم و یه بارم برای downn=1. دست آخر هم باید یادمه باشه که کنتاکتهای باز s2 و upp (یا down) رو باید در مدار طراحی شده سری بکنیم:
همون طور که دیده میشه وقتی که کلیدهای طبقات مختلف رو می زنیم فقط در مینترهای 4ام و 0ام هست که آسانسور حرکتی نمی کنه. در بقیه ی موارد اتاقک آسانسور باید بره بالا چون upp=1( اینکه چرا باید بره بالا رو قبلا مفصل توضیح ش دادیم). پیاده کردن جدول به صورت زیر در میادش:
که یعنی:
up=b1+b3+b4
و همون طور که گفتیم باید دو تا ترم دیگه هم ضرب در حاصل جمع بکنیم یعنی:
up=s2.upp.(b1+b3+b4)
برای وقتی که downn=1 هست هم جدول زیر رو داریم:
که بازم مینترمهای 4ام و 0ام برابر با صفر هستند و در نتیجه جدول حاصل مساوی جدول بالا می شه. فقط در جدول بالا باید upp رو ضرب می کردیم و حالا باید یادمون باشه که downn رو ضرب کنیم، یعنی :
down=s2.downn.(b1+b3+b4)
و مدار طراحی شده برای وقتی که اتاقک آسانسور در طبقه ی دومه به شکل زیر در میادش:
حالا بریم سراغ وضعیتی که اتاقک آسانسور در طبقه ی سوم قرار داشته باشه. در این حالت بازهم باید در نظر داشته باشیم که upp یا downn (یکی شون البته) می تونه که روشن باشه و باید در جدول بیادش. پس بازم دو تا جدول درست می کنیم. در حالت اول فرض میکنیم که upp=1 پس داریم:
این بار مینترمهای دوم و 0ام برابر با صفر هستند و جدول حاصل برای خروجی up میشه:
که یعنی :
up=b1+b2+b4
و چون باید تاثیر s3 و upp رو هم در نظر داشته باشیم داریم:
up=s3.upp.(b1+b2+b4)
جدول وضعیت خروجی های وقتی که downn=1 باشه میشه:
که خلاصه ش میشه دقیقا برابر با جدول قبلی با این تفاوت که اینجا downn=1 هست. پس داریم:
down=s3.downn.(b1+b2+b4)
و نقشه ی مدار فرمان برای وضعیتی که اتاقک آسانسور در طبقه ی سوم هستش میشه:
خوب دیگه. کار تمومه. حالا باید بیاییم و قضیه رو جمع ش کنیم. یعنی دو تا نقشه ی این قسمت با نقشه ی قسمت قبل که این هست
ترکیبشون کنیم توی یه نقشه که دقیقا میشه همون نقشه ی انتهای قسمت چهارم یعنی این:
یعنی اگه منطق قضیه رو خوب فهمیده باشید هیچ فرقی نمیکنه که مدارتون رو به صورت معمولی طراحی کنید یا با استفاده از منطق دیجیتال. همین مدار رو البته موقع پیاده سازی می تونید با گیتهای دیجیتالی هم پیاده کنید یعنی کنتاکتهای سری رو به جاشون گیت AND بذارید و کنتاکتهای موازی رو گیت OR و خروجی رو هم بدید به یه رله که اون رله بیادش و کنتاکتورهاتون رو راه اندازی کنه. البته یه سری مسائل و مشکلات هم در زمینه ی نویز و این حرفها خواهید داشت که بهتره کلا قضیه رو بیخیال شید و از همین کنتاکتور و اینها استفاده کنیم.
حالا که منطق قضیه رو خوب فهمیدید دیگه طراحی مدار فرمان برای ساختمان های بلندتر از چار طبقه خیلی سخت نیست. فقط یه کم فشار باس بیارید به مغزتون.
قسمت ششم بحث طراحی مدار فرمان آسانسور در حالی تموم شده که الان فک میکنید دیگه اوستا شدید ولی اشتباه می کنید. ما تا حالا فقط یادتون دادیم که چطور آسانسور رو راهش بندازید. هنوز نگفتیم که وقتی راه افتاد چه طوری باید متوقف ش بکنید. پس ، با ما باشید.
در قسمت قبلی گفتیم که مدار فرمان نهایی آسانسور برای یه ساختمون سه طبقه می شه به شکل زیر:
به زبون دیجیتال اگه بخواهیم بنویسیم داریم:
up=(s1.(b2+b3))+(s2.upp.(b1+b3))
down=(s3.(b1+b2))+(s2.downn.(b1+b3))
حالا ببینم که اگه همین مدار فرمانو بخواهیم به صورت دیجیتالی و با مدار فرمان طراحی کنیم سر از کجا در میاریم.
تعداد متغیرها رو اول باس بشمریم. سه تا سوئیچ s و سه تا پوش باتون b و دو تا کنتاکتور upp و downn میشه به عبارتی 8 تا متغیر. تعداد حالتهای مختلف 8 متغیر میشه 256 حالت. حتی اگر یه جدول با 256 سطر رو بکشید و تحلیل کنیم ساده کردن اون کار حضرت فیله. برای ساده کردن مسئله میاییم و دو گوله رو به کار می ندازیم. می دونیم که سوئیچهای s همواره و همواره فقط یکی شون وصل هست و دو تای دیگه خاموش هستن. با این شرط منطقی میاییم و تنها وصل بودن یکی رو همراه با اون 5 تا متغیر باقیمونده جدول می کنیم. فقط نکته ای که هست اینه که در طبقات اول و سوم متغیرها از 5 به 3 کاهش داده میشه چون کنتاکتورهای upp یا downn در این طبقات ریست می شن و ارزش اونها صفر هست. اول کار بریم سراغ طبقه ی اول. نمودار متغیرهاش به صورت زیر هستش:
همون طور که دیده میشه ستون down صفر هست و ستون up در مینترمهایی که b2 یا b3( یا هر دو) فشار داده شده باشن برابر با یک هست. خلاصه ی جدول برای خروجی up به صورت زیر در میادش:
که معنی ش میشه:
up=s1.b2+s1.b3=s1.(b2+b3)
حالا فرض کنیم آسانسور در طبقه ی سوم هستش. بازهم تنها متغیرهایی که در نظر می گیریم s3 هست به همراه پوش باتونها. جدول خروجیها به صورت زیر هستش:
ستون خروجی up همه ی مینترماش صفره و ستون downn هر جا که b1 یا b2 (یا هر دو تاش) فشرده شده باشن برابر با یک هستش.جدول خروجی down میشه:
که معنی ش میشه:
down=s3.b1+s3.b2=s3.(b1+b2)
قضیه برای وقتی که آسانسور توی طبقه ی دوم ایستاده پیچیده تره. اگه آسانسور از پایین اومده باشه بالا پس upp فعال هست و باید ارزش منطقی اون رو برابر با 1 بگیریم. از طرف دیگه اگه آسانسور از طبقه ی سوم پایین اومده باشه پس downn فعال هستش و باید ارزش منطقی اون رو برابر با 1 بگیریم. از طرف دیگه می دونیم که upp و downn با همدیگه فعال نمیشن. پس به جای یه جدول بزرگ دو تا جدول کوچیک تشکیل می دیم. یه بار برای وقتی که upp=1 و دفعه ی بعدی برای وقتی که downn=1. بعد نتیجه ی حاصل رو با نتایجی که در بالا به دست آوردیم جمع می کنیم. جدول درستی خروجیها برای وقتی که upp=1 به صورت زیر هستش:
به مینترم های12ام و 14ام توجه کنید. درسته کهb1 فشرده شده اما همون طور که در قسمت دوم گفتیم در این وضعیت اتاقک آسانسور باید به حرکت خودش به سمت بالا ادامه بده و بعد برگرده پایین، پس در نتیجه خروجی upp برابر با 1شده. در نتیجه خروجی up میشه:
up=s2.upp.(b1+b3)
توجه کنید که چون فرض کردیم upp=1 باید upp رو در نتیجه ضرب بکنیم.
حالا میریم سراغ وضعیتی که downn=1 هستش:
بازهم در مینترمهای 9ام و 11ام با اینکه پوش باتون b3 فشرده شده آسانسور میره پایین و علتش رو هم که در قسمت قبلی توضیح دادیم. نتیجه ی خروجی down میشه:
همون طور که می بینید این جدول با جدول خروجی up مو نمیزنه جز اینکه در اون مورد باید upp رو ضرب می کردیم و حالا باید downn رو ضرب کنیم. پس خروجی میشه:
down=s2.downn.(b1+b3)
در نهایت باید خروجی های به دست اومده از این چار تا جدول رو با هم جمع بزنیم. در نتیجه داریم:
up=(s1.(b2+b3))+(s2.upp.(b1+b3))
down=(s3.(b1+b2))+(s2.downn.(b1+b3))
یعنی دقیقا به همون نتیجه ای رسیدیم که از تحلیل مدار به دست آوردیم. اگر هم بخواهیم که این مدار رو به صورت لدر طراحی کنیم حاصل اون همون شکل اول هست. پس نتیجه می گیریم که با استفاده از ساده سازی مدار منطقی میتونیم به همون نتیجه ای برسیم که از طراحی عادی مدار فرمان به دست میادش.
اگه حوصله ای بود این بحث رو با مدار فرمان آسانسور چهار طبقه ادامه میدیم و داستان رو جمع ش می کنیم.
در قسمت قبلی این داستان خوندیم که چطوری میشه مدار فرمان یه آسانسور رو برای یه ساختمون دو طبقه (یعنی ساده ترین حالتی که میشه فرض ش کرد) طراحی کرد. حالا در ادامه میریم سراغ یه ساختممون سه طبقه و طراحی مدار فرمان برای آسانسورش.
فرضهای اساسی مسئله مثل مسئله ی قبلی هست. البته یه چیزهایی به داستان اضافه شده که وسط داستان بهشون میرسیم و اونها رو توضیح می دم. منظور اینه که باید فرضهای دیگری رو هم به این مسئله ی جدید اضافه کنیم تا بتونیم یه مدار بی نقص طراحی بکنیم.
خوب همون طور که گفتیم هر طبقه یه سنسور برای تعیین موقعیت اتاقک آسانسور و یه پوش باتون برای فراخواندن اون داره. حالا خیلی ساده فرض می کنیم که اتاقک آسانسور توی طبقه ی اول قرار گرفته. اگر هر کدوم از کلیدهای b2 یا b3 فشار داده بشن اتاقک آسانسور باید بره بالا ولی فشار دادن کلید b1 نباید فرقی در وضعیت ایجاد بکنه. پس تا اینجای کار مدارمون به صورت زیر هستش:
یعنی اگر سوئیچ s1بسته بود چه b2 و چه b3که فشار داده بشن اتاقک آسانسور میره بالا.
همین وضع درباره ی اتاقک آسانسور در طبقه ی سوم هست. یعنی با فشاردادن b2 یا b1 باید بره پایین. پس مدارمون میشه:
حالا اگه اتاقک آسانسور در طبقه ی دوم باشه چه اتفاقی میفته؟ منطقا اگه پوش باتون b3فشار داده بشه آسانسور باید بره بالا و اگه پوش باتون b1فشار داده بشه آسانسور باید بره طبقه ی پایین یعنی مدارمون میشه به شکل زیر:
ظاهرا کار مون تمومه اما اینجا یه مشکل اساسی داریم که توی ساختمون دو طبقه نداشتیم و اون فرضی رو که اول داستان گفتم اینجا باس وارد کنیم. در حالت عادی برای این مدار اتفاقی نمیفته اگر هر کسی در هر طبقه ای یه پوش باتون رو فشار بده، اما اگر پوش باتون b1 و b3 همزمان فشار داده بشوند و اتاقک آسانسور در طبقه ی دوم باشه چه اتفاقی می افته. به محض اینکه این اتفاق بیفته هر دو کنتاکور بالا و پایین وصل می شن و در نتیجه موتور آسانسور دچار اتصال کوتاه بین دو فاز میشه. برای جلوگیری از این مسئله باید چه کار کرد؟
راه حل اساسی اینه که دو تا کنتاکتور به مدار اضافه بکنیم تا وضعیت بالا یا پایین رفتن آسانسور رو مثه دو عنصر حافظه در خودشون حفظ کنند. یعنی وقتی آسانسور به سمت بالا رفت یکی شون فعال بشه و غیر فعال شدن اون وقتی اتفاق بیفته که آسانسور رسیده باشه به طبقه ی سوم. از طرف دیگه وقتی آسانسور از طبقه ی سوم میادش پایین اون یکی کنتاکتور فعال میشه و همچنان فعال می مونه تا آسانسور برسه به طبقه ی اول. با وجود این دو تا کنتاکتور وقتی که اتاقک آسانسور رسیدش به طبقه ی دوم می تونیم تصمیم بگیریم که حالا باید کجا بره. اسم این دو تا کنتاکتور جدید رو میذاریم upp و downn . حالا داریم:
با کمک این دو تا کنتاتکتور می تونیم تصمیم بگیریم وقتی در طبقه ی دوم هر دو پوش باتون b1 و b3 همزمان فشرده شدن چه باید بکنیم. در این صورت راه حل خیلی ساده س:
وقتی که پوش باتونهای b1 و b3 همزمان فشرده شدن باید نگاه کنید به وضعیت کنتاکتورهای upp و downn (توجه کنید که این هر دو میتونند خاموش باشند ولی همزمان نمی تونند باهم روشن باشن). اگه کنتاکتور upp روشن بودیعنی آسانسور از طبقه ی اول حرکت کرده بوده و رسیده به طبقه ی دوم و حالا باس برسه به طبقه ی سوم. اگه کنتاکور downn روشن بود یعنی آسانسور از طبقه ی سوم داشته میاموده پایین و رسیده به طبقه ی دوم و حالا باس بره به طبقه ی اول. پس نقشه مدار فرمان به صورت زیر اصلاح میشه:
یعنی با سری کردن کنتاکت های باز upp و downn با کنتاکت باز s2 شرطی رو به مدار تحمیل می کنیم که در نتیجه ی اون فشار دادن همزمان b1 و b3 بی اثر میشه و تنها یکی از این دو پوش باتون میتونه تعیین کننده ی جهت حرکت آسانسور باشه.حالا اگر مثلا آسانسور از طبقه ی اول بیاد و در طبقه ی دوم توقف کنه و هر دو پوش باتون b1 و b3 همزمان فشار داده بشوند آسانسور به طرف بالا حرکت می کنه تا به طبقه ی سوم برسه. اونجا که رسیدش کنتاکت بسته ی سوئیچ s3 کنتاکتور upp رو خاموش می کنه. از طرف دیگه کنتاکت باز s3 در مسیر کنتاکتور downn وصل میشه و چون b1 از قبل وصل بوده آسانسور برمیگرده پایین و در طبقه ی اول می ایسته.
اگر هم آسانسور از طبقه ی سوم به دوم اومده باشه و هر دو پوش باتون b1 و b3 همزمان فشار داده بشوند آسانسور به طرف پایین حرکت می کنه تا به طبقه ی اول برسه. در اونجا کنتاکت بسته ی سوئیچ s1 کنتاکتور downn رو خاموش می کنه. از طرف دیگه کنتاکت باز s1 در مسیر کنتاکتور up وصل میشه و چون b3 از قبل وصل بوده آسانسور برمیگرده بالا و در طبقه ی سوم می ایسته.
اما با رفع این مشکل یه اشکال دیگه به مدار وارد شده. فرض کنیم که آسانسور از طبقه ی اول اومده در طبقه ی دوم و حالا کلید پوش باتون s1 فشرده بشه. وضعیت مدار به صورت زیر در میادش:
انتظار داریم که آسانسور بره طبقه ی سوم و برگرده طبقه ی اول اما این اتفاق نمی افته. چرا؟ چون در مسیر کنتاکتور up ما فرمانی از b1 رو پیش بینی نکردیم. پس برای اینکه این اتفاق بیفته باید یه کنتاکت باز b1 رو بعد از کنتاکت upp موازی کنیم با b3. همین وضعیت وجود داره اگر آسانسور از طبقه ی سوم بیادش طبقه ش دوم و پوش باتون s3 فشار داده بشه. باید یه کنتاکت b3 رو هم بعد از کنتاکت باز dowwn موازی کنیم با کنتاکت باز b1. در نتیجه مدار کامل شده میشه به صورت زیر:
بقیه ی مطلب رو فردا پس فردا ادامه می دیم.
عموما کسی که می خواد یه مدار فرمان طراحی کنه اول از پروسه ی مورد نظرش سوال می کنه، بعد که چم و خم کار رو بررسی کردشروع می کنه به طراحی مدار فرمان. بیشتر کار هم به صورت شهودی و بر اساس تجربه صورت می گیره. من در یک سلسله پست (که احتمالا 4 یا 5 قسمت بشه) می خوام طراحی شهودی رو با طراحی دیجیتال مقایسه کنم تا ببینم اگه از اول بر اساس یه مدار منطقی بریم جلو چقدر میتونیم به طراحی یه مدار فرمان خوب نزدیک بشیم.
برای مثال از طراحی آسانسور شروع می کنیم. مدار فرمان آسانسور مدار فرمان نسبتا پیچیده ای هست و به همین دلیل یه قسمتهایی از مدارات رو حذف می کنم تا از هدف اصلی این بحث خیلی دور نیفتم. پس: