زیمنس کنترل

کد : 39206

استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها

استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها
با استفاده از دستورات مقایسه میتوان دو عدد صحیح 16 بیتی ، دو عدد صحیح 32 بیتی یا دو عدد حقیقی را با هم مقایسه کرد. این دستورات عدد موجود در 2-L  ACCU(IN2) را نسبت به عدد موجود در ACCU1-L(IN1) طبق جدول زیر مقایسه می­کنند. نتیجه دستورات مقایسه ای به صورت 1 در صورت برقرار بودن معیار مقایسه و به صورت  در صورت برقرار نبودن معیار مقایسه ، در بیت RLO ذخیره می­شود.
این دستورات در پوشه ی Comparator از Program Element مطابق تصویر مقابل وجود دارند.
استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها 1

به دلیل تشابه بین دستورات در زبان LAD و FBD در اینجا فقط حالت LAD ارائه شده است.
مقایسه میتواند بین یک عدد ثابت و یک عدد متغیر باشد ، یا بین دو عدد متغیر انجام شود. بدیهی است که امکان مقایسه بین دو عدد ثابت وجود دارد ، ولی نتیجه ی آن همیشه مشخص است.

عدد موجود در ACCU2 معیار مقایسه نماد دستور
عدد صحیح 16 بیتی
(Integer)
مساوی است با == I
== D
R ==
عدد صحیح 32 بیتی
(Double Integer)
مساوی نیست با <> I
<> D
<> R
عدد حقیقی (ممیز شناور ، 32 بیتی)
(Real Number)
بزرگتر است از I<
D<
R<
عدد صحیح 16 بیتی
(Integer)
کوچکتر است از <I
<D
R>
عدد صحیح 32 بیتی
(Double Integer)
بزرگتر یا مساوی است از >=I
>=D
R=<
عدد حقیقی (ممیز شناور ، 32 بیتی)
(Real Number)
کوچکتر یا مساوی است از <=I
<=D
R=>

 
دستورات مقایسه در زبان STL با نماد دستور مطابق جدول فوق ارائه میشود.
دستورات مقایسه ای 16 بیتی فوق محتویات آکومولاتور ACCU2-L را با محتویات آکومولاتور ACCU1-L مقایسه میکند. اگر نتیجه ی مقایسه درست باشد ، RLO=1 و در غیر اینصورت ، RLO=0 میشود. همانطور که قبلاً نیز ارائه شد ، رنج اعداد صحیح 16 بیتی بین -327768 to 32767 میباشد.
Network 1 :

استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها 2
Network 2 :
استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها 3
دستورات مقایسه ای دو عدد صحیح 32 بیتی فوق محتویات آکومولاتور  ACCU2 را با محتویات آکومولاتور ACCU1 مقایسه میکند. اگر نتیجه ی مقایسه درست بود ، RLO=1 و در غیر اینصورت ، RLO=0 میشود. اعدادی که خارج از رنج -32768 to 32767 باشند ، به عنوان عدد صحیح 32 بیتی به کار میروند.
Network 1 :

استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها 4
Network 2 :
استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها 5

 
به اعداد صحیح 32 بیتی Long Integer نیز گفته میشود. به همین دلیل ، اگر به صورت مستقیم یک عدد را در دستورات مقایسه ی 32 بیتی وارد کنید ، با علامت L# آن را نشان میدهد. مثلاً L#33000
استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها 6
اگر در این دستورات ، به صورت مستقیم یک عدد صحیح 16 بیتی را وارد کنید ، دریافت نخواهد شد و با رنگ قرمز نشان میدهد. مانند شکل مقابل:
استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها 7
اگر بخواهیم یک عدد صحیح 16 بیتی را با یک عدد صحیح 32 بیتی مقایسه کنیم ، ابتدا باید عدد 16 بیتی را با دستور Move به یک حافظه ی 32 بیتی وارد کرده و سپس ، آن حافظه را با عدد 32 بیتی مقایسه کنیم. به تصویر مقابل توجه کنید.
استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها 8

بازه ی اعداد صحیح 32 بیتی بین -2,147,483,648 to 2,147,483,647 است.
دستورات مقایسه ای اعداد اعشاری 32 بیتی محتویات آکومولاتور ACCU2 را با محتویات آکومولاتور ACCU1 مقایسه میکند. اگر نتیجه ی مقایسه درست بود ، RLO=1 و در غیر اینصورت ، RLO=0 میشود.
Network 1 :
استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها 9
Network 2 :
استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها 10

اگر عدد اعشاری را به صورت مستقیم در دستور مقایسه وارد نموده و Enter را فشار دهید ، خواهید دید که آن عدد را به نماد علمی نشان میدهد. در تصویر مقابل عدد 10.4 را به نماد علمی نشان میدهد.
استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها 11

در صورتی که بخواهیم یک عدد اعشاری را با یک عدد صحیح مقایسه کنیم ، لازم است حتماً عدد صحیح را با اعشار وارد نمائیم ، در غیر اینصورت قرمز رنگ خواهد شد که نشان دهنده ی خطاست. (مثلاً 24.0)
استفاده از دستورات مقایسه ای در برنامه نویسی PLC ها 12

از آنجایی که اعداد حقیقی تماماً 32 بیتی هستند ، حافظه های به کارگیری برای آنها باید Dword باشد.