در این قسمت از آموزش های پی ال سی S7-300 که توسط نماینده رسمی شرکت زیمنس ارائه شده است نحوه عملکرد دستورهای مقایسه یا Comparator را برای شما توضیح خواهیم داد و با یک مثال به صورت کامل مفهوم و نحوه استفاده از این دستورات یاد خواهید گرفت.
دستورات مقایسه ای از آنجایی که از نامشان مشخص است، برای مقایسه استفاده می شوند. برای مثال در قسمت قبلی از آموزش که درباره رجیسترها و کانورترها در پی ال سی S7-300 زیمنس بود می توانیم از این دستورهای مقایسه گر استفاده کنیم، به این صورت که مقدار رجیستر (mw1) متصل به BCD تایمر خود را را به Integer تبدیل کرده و سپس آن را با استفاده از این دستورات با مقدار موردنظر مقایسه کرده و طبق آن دستورات خاصی انجام خواهد شد.
در این مثال می خواهیم مداری طراحی کنیم که با فعال شدن ورودی تایمر شروع به شمردن کند و هنگامی که مقدار زمان شمرده شده توسط تایمر به عدد صفر رسید خروجی روشن شود.
حال نیاز به یک کنتاکت و یک تایمر داریم که با آن کنتاکت تایمر شروع به شمردن کند:
همانطور که در بالا می بینید یک کنتاکت باز در اول نتورک داریم که آن را به ورودی i0.0 متصل کرده و برای فعال سازی تایمر از آن استفاده می کنیم.
حال باید مقدار پایه BCD را به Integer تبدیل کنیم برای انجام اینکار از یک بلوک BCD_I که در پنجره Program Elements > منوی Converter قرار دارد و مقدار تبدیل شده آن را در رجیستر mw2 ذخیره خواهیم کرد که به صورت زیر انجام می شود:
همانطور که در عکس بالا مشاهده می کنید و در قسمت قبلی آموزش از این دستور استفاده کردیم مقدار زمان تایمر را به صورت لحظه ای از نوع BCD توسط پایه موجود در خود تایمر به نام BCD که رجیستر mw1 به آن متصل است ذخیره می کند و در بلوک پایین آن را به Integer تبدیل کرده و در رجیستر mw2 ذخیره خواهد شد. حال با مقایسه کردن رجیستر mw2 می توانیم دستوراتی را با درست بودن آن مقایسه انجام دهیم برای مقایسه تساوی از دستور EQ_I استفاده می شود که مختص به اعداد Integer می باشد:
همانطور که در عکس بالا می بینید یک بلوک EQ_I که برای مقایسه اعداد اضافه کردیم که نام آن به صورت خودکار به CMP ==! تغییر پیدا کرده است.
در عکس بالا ما مقدار پایه BCD را گرفتیم و آن را به Integer تبدیل کردیم و در mw2 ذخیره را به عنوان ورودی بلوک مقایسه گر که پایه IN1 و عدد 0 که عدد موردنظر ما می باشد را به صورت دستی وارد پایه IN2 بلوک مقایسه گر کردیم.
خروجی نهایی مثال
در عکس بالا شبیه سازی مثالی که در این آموزش طراحی شد، توسط نرم افزار PLCSIM انجام شده است و این مدار به این صورت عمل می کند که با فعال شده ورودی i0.0 ، تایمر را فعال کرده و تایمر شروع به شماردن از عددی که شما برای پایهTV آن در نظر گرفته اید می کند تا وقتی که به 0 برسد. وقتی که مقدار تایمر به صفر رسید که آن را از نوع BCD به Integer تبدیل می کنی و در بلوک EQ_I قرار داده و صفر را در پایه پایینی قرار می دهیم و تا مقایسه انجام شود که اگر شرط درست باشد یعنی w2 برابر با 0 باشد که درست است خروجی q0.0 ما روشن خواهد شد.
در این مثال می خواهیم مداری طراحی کنیم که مقدار زمان تایمر را به Integer یا عدد صحیح تبدیل کرده و آن را در مقدارهای مختلف چک کرده و خروجی مخصوص به آن عدد را روشن می کند.
کلیات این مثال نیز مانند مثال قبلی می باشد با این تفاوت که ساختار مقداری فرق می کند.
طراحی مثال موردنظر به صورت زیر انجام خواهد شد: