معرفی عملگرهای منطقی در لوگو (Basic Functions)
عملگرهای منطقی در لوگو از اجزای اصلی در طراحی برنامهها در این رله قابل برنامهریزی هستند و در این آموزش،عملکرد آنها را مورد بررسی قرار میدهیم و با آنها آشنا میشویم.
منظور از عملگرهای منطقی در لوگو به زبان ساده
برای طراحی برنامهها توسط زبانهای برنامهنویسی مختلف و یا روشهای ترسیمی گوناگون، نیاز است که بتوانیم شرطها و دستورات را پیاده کنیم. بدون استفاده از شرطها، برنامهنویسی و طراحی الگوریتمها معنایی ندارد. فرض کنید میخواهیم یک لامپ در صورتی روشن شود که “حتما 2 کلید وصل باشند” و گرنه روشن نشود. این یک شرط منطقی برای روشن شدن یک لامپ است.
در لوگو زیمنس برای شروط منطقی، بلوکهایی از قبل تعریف شده است و به آنها عملگرهای منطقی در لوگو میگویند که در این مقاله به بررسی آنها میپردازیم. نکته قابل ذکر، این است که شروط منطقی در برنامهنویسی به روش FBD دارای بلوکهای از قبل تعریف شده است، اما در روش LAD این شروط باید با چیدمان کنتاکتهای باز و بسته در کنار هم بصورت سری و موازی پیادهسازی شوند.
انواع عملگرهای منطقی در لوگو زیمنس
عملگرهای منطقی یا همان گیتهای منطقی شامل عملگرهای NOT, OR, NOR و همچنین AND, NAND, XOR و درنهایت AND Edge, NAND Edge میباشند و به صورت بلوکهایی در لوگو وجود دارند و در روش FBD یا همان بلوک دیاگرامی میتوان از آنها استفاده نمود.
بلوک NOT
فکر کنید بخواهیم با یک کلید یک لامپ را روشن کنیم اما این بار میخواهیم هربار کلید در حالت وصل قرار گرفت، یعنی دو سر کنتاکت آن به هم وصل شد، برخلاف همیشه که لامپ روشن میشود، این بار خاموش شود و با قطع کلید لامپ روشن شود. یعنی عملکرد کلید را برعکس کنیم.
این موضوع تشریح عملکرد بلوک NOT است. همانطور که در جدول زیر مشخص است اگر به این بلوک مقدار 1 داده شود، در خروجی بلوک مقدار 0 برگردانده میشود و بالعکس.
به این بلوک تنها میتوان 1 ورودی متصل کرد تا عملکرد آن را برعکس کند.
بلوک OR
اگر قرار باشد یک لامپ از دونقطه بدین صورت کنترل شود که در نقطه اول و دوم بتوانیم لامپ را روشن کنیم اما برای خاموش شدن آن نیاز باشد که هر دو کلید قطع باشند، بیان شرط منطقی OR است. یعنی اگر برای یک عملکرد دو شرط یا همان فرماندهنده تعریف شده باشد و برای اتفاق افتادن عملکرد، باید “یا شرط اول یا شرط دوم یا هردو برقرار باشند” اما برای از کار انداختن آن عملکرد لازم باشد که “هر دو شرط برقرار نشوند” آنگاه باید از بلوک OR استفاده کنیم.
همانطور که در جدول بالا مشاهده میکنید، بلوک OR خروجی آن تنها در صورتی 0 است (غیرفعال است) که ورودیهای آن غیرفعال (0) باشند و فعال بودن (1 بودن) یک تنها یک ورودی کافی است تا خروجی آن فعال شود. این بلوک در لوگو زیمنس میتواند 4 ورودی دریافت کند و عمل OR را برای ورودیها بررسی کند. این بلوک درواقع همان عملکرد موازی کردن در مدارهای الکتریکی است.
بلوک NOR
اگر دو بلوک قبل یعنی NOT و OR را با هم ترکیب کنیم، بلوک NOR را خواهیم داشت. به عبارتی نتایج حاصل از بلوک OR را NOT کنیم. در این حالت جدول زیر را خواهیم داشت و خروجی بلوک NOR تها در صورتی 1 خواهد شد (فعال خواهد شد) که هر دو ورودی آن صفر باشند (غیرفعال) باشند.
این بلوک نیز مانند بلوک OR در لوگو زیمنس نهایتا میتواند 4 ورودی را دریافت کند.
بلوک AND
اگر دو کلید را با هم سری کنیم و به یک لامپ متصل کنیم، لامپ تنها در صورتی روشن خواهد شد که هر دو کلید در حالت وصل قرار بگیرند. به عبارتی در سه حالت لامپ خاموش و در یک حالت روشن خواهد شد.
این توضیح همان بلوک AND است که عملکرد آن در جدول زیر بیان شده است. در این بلوک که نهایتا 4 ورودی میتواند بگیرد، خروجی تنها در صورتی 1 خواهد شد (فعال خواهد شد) که همه ورودیهای آن 1 باشند(فعال باشند).
بلوک NAND
این بلوک همان NOT شدهی بلوک AND است و خروجی آن همواره 1 خواهد بود مگر تمامی ورودیهای آن 1 باشند. این بلوک نیز نهایتا 4 ورودی را قبول میکند و مقایسه را انجام میدهد.
بلوک XOR
اگر یک لامپ را به صورت کلید تبدیل کنترل کنیم، از عملکرد XOR استفاده کردهایم. یعنی اگر هر دو کلید در حالت یکسان باشند (هر دو قطع یا هر دو وصل باشند)، لامپ روشن نخواهد شد.
عملکرد این بلوک را به طور کامل در آموزش طراحی کلید تبدیل و طراحی کلید صلیبی به طور کامل شرح دادیم و گفتیم خروجی این بلوک تنها در صورتی 1 خواهد شد که یکی از ورودیها 1 و دیگری 0 باشد (یکی وصل و یکی قطع). این بلوک برخلاف بلوکهای قبل، تنها 2 ورودی میگیرد.
بلوک AND Edge یا AND با لبه بالارونده
تا اینجا عملگرهای که به عنوان عملگرهای منطقی در لوگو شرح داده شد، جز عملگرهای منطقی هستند که عمومی تر و شناخته شده تر هستند. یکی از عملگرهای منطقی در لوگو که خاصتر و شاید کمتر شناخته شده تر است و حتی برخی آن را جزو عملگرهای منطقی در لوگو دسته بندی نمیکنند بلوک AND لبه یا همان AND با لبه بالا رونده است. جدول ارزش این بلوک را مشاهده کنید:
به این بلوک حداکثر 4 ورودی متصل میشود و هرگاه تمامی ورودیهای متصل به آن، مفدار 1 داشته باشند، یا به عبارتی در لحظهای که تمامی ورودی مقدارشان 1 میشود، خروجی این بلوک در یک لحظه از 0 به 1 تبدیل خواهد شد و مجددا 0 میشود. درواقع یک سیگنال لحظهای به مقدار 1 را برای کسری از ثانیه ارسال میکند.
بلوک NAND Edge یا NAND با لبه پایین رونده
از دیگر عملگرهای منطقی در لوگو که کمتر شناخته شدهتر است، بلوک NAND لبه است. این بلوک نیز عملکرد کلی آن مشابه AND لبه است؛ یعنی خروجی را برای لحظهای تغییر میدهد.
در این بلوک برای 1 شدن خروجی به صورت لحظهای لازم است تا ابتدا تمام ورودیهای آن مقدار 1 داشته باشند. حال به محض تغییر وضعیت هر یک از ورودیها به مقدار 0، خروجی بلوک برای لحظهای به 1 تبدیل میشود و بلافاصله میشود. پس برای هربار عملکرد این بلوک لازم است که همهی ورودیهای متصل به آن ابتدا 1 شوند و سپس حداقل یکی از آنها تغییر وضعیت دهد. به این بلوک نیز حداکثر 4 ورودی متصل میشود.