منطق نردبانی XOR با سه کلید: طراحی صحیح با توازن فرد
راهنمای اصلاحشدهٔ منطق نردبانی XOR سهکلیده برای پلتفرمهای SLC 500 و Logix، شامل پاریتی فرد، مرحلهبندی بیتهای داخلی، محدودیتهای XOR در سطح کلمه، رفتار د...
سه کلید ثابت که یک خروجی را کنترل میکنند، اغلب بهعنوان تمرینی در منطق نردبانی ارائه میشوند؛ اما پرسش واقعی مهندسی دقیقتر است: آیا وقتی تعداد فردی از ورودیها درست هستند، خروجی باید روشن باشد، یا عملکرد هر کلید باید صرفاً وضعیت قبلی خروجی را معکوس کند؟ اینها دو نیازمندی متفاوتاند. اولی XOR ترکیبی یا پاریتی فرد است. دومی به حافظه وضعیت و تشخیص لبه نیاز دارد.
برای سه کلید انتخابگر ثابت، مشخصات معمول همان پاریتی فرد است: چراغ با یک یا سه کلید بسته روشن و با صفر یا دو کلید بسته خاموش باشد. نوشتن این نیازمندی پیش از رسم کنتاکتها، از پیادهسازی تابع بولی اشتباه در یک ردیف ظاهراً منطقی جلوگیری میکند.
XOR سهورودی زمانی درست است که تعداد ورودیهای درست فرد باشد؛ این تابع با فرمان تغییر وضعیتِ ذخیرهشده یکسان نیست.
با هشت حالت ورودی شروع کنید
دنباله خروجی مورد انتظار برای ورودیهای S1، S2 و S3، با پیشروی حالتهای دودویی ورودی از 000 تا 111، برابر است با 0، 1، 1، 0، 1، 0، 0، 1. به زبان ساده، یک کلید بسته خروجی را روشن میکند، دو کلید بسته آن را خاموش میکنند و هر سه کلید بسته دوباره آن را روشن میکنند.
همین حالت آخر جایی است که بسیاری از توضیحات دچار خطا میشوند. XOR سهورودی تابعی با پاریتی فرد است؛ بنابراین 111 باید نتیجه درست ایجاد کند. پیادهسازیای که فقط «دقیقاً یک ورودی درست» را تشخیص دهد، XOR نیست؛ بلکه عمداً حالت سه ورودی درست را حذف میکند. برعکس، OR کردن سه عبارت XOR دوتایی، تابع متفاوتی میسازد: این تابع هر زمان که ورودیها همگی برابر نباشند درست است؛ بنابراین حالتهای دارای دو ورودی درست را نیز شامل میشود و در نتیجه با جدول درستی موردنیاز سازگار نیست.
ایمنترین روش راهاندازی این است که جدول درستی را بهعنوان آزمون پذیرش در نظر بگیرید. برنامه را فقط بر اساس دو یا سه وضعیت convenient کلید قضاوت نکنید.
دو مرحله XOR دوتایی را آبشاری کنید
XOR شرکتپذیر است؛ بنابراین میتوان از عبارت (S1 XOR S2) XOR S3 استفاده کرد. در یک برنامه SLC 500، یک بیت داخلی میتواند نتیجه مرحله اول را ذخیره کند. سپس ردیف دوم آن بیت را با S3 ترکیب میکند. این کار به هر ردیف هدفی کوچک و قابل بررسی میدهد و عیبیابی وضعیت آنلاین را آسانتر میکند.
در پیادهسازی با کنتاکت، هر مرحله XOR دوتایی از دو مسیر موازی استفاده میکند: مسیر اول ورودی A را درست و ورودی B را نادرست بررسی میکند؛ مسیر دوم A را نادرست و B را درست بررسی میکند. دو مسیر به یک کویل متصل میشوند. همین الگو را برای بیت میانی و ورودی سوم تکرار کنید.
بیت میانی نتیجه S1 XOR S2 را پیش از ترکیب آن با S3 در مرحله دوم آشکار میکند.
نمونه طرح آدرسدهی
در یک پروژه آموزشی معمول RSLogix 500، ممکن است S1، S2 و S3 بهترتیب I:1/0، I:1/1 و I:1/2 باشند. ردیف اول B3:0/0 را بهعنوان نتیجه میانی مینویسد و ردیف دوم O:2/0 را بهعنوان فرمان چراغ مینویسد. این آدرسها صرفاً نمونهاند؛ پیکربندی نصبشده ورودی/خروجی باید نگاشت واقعی را تعیین کند.
آدرس میانی باید فقط یک نویسنده داشته باشد. استفاده دوباره از B3:0/0 در بخش دیگری از برنامه یا قرار دادن دستور خروجی دیگری برای O:2/0 در ادامه برنامه میتواند در همان اسکن نتیجه صحیح را بازنویسی کند. پیش از مقصر دانستن الگوی XOR، مراجع متقابل هر دو آدرس را بررسی کنید.
XOR در سطح کلمه، خودکار یک میانبر بولی نیست
مجموعه دستورهای SLC 500 شامل دستور XOR برای OR انحصاریِ بیتی میان عملوندهای کلمهای است. راهنمای مرجع مجموعه دستورهای SLC 500 شرکت Rockwell Automation عملوندها و مقصدهای پشتیبانیشده را مستند میکند. این دستور برای ماسکها و کلمات وضعیت فشرده مفید است، اما نیاز به تعیین اینکه کدام بیتهای ورودی در یک تصمیم پاریتی واحد شرکت میکنند را از بین نمیبرد.
برای سه ورودی مجزا، منطق کنتاکتی آبشاری معمولاً برای کارکنان تعمیر و نگهداری واضحتر است. پیادهسازی در سطح کلمه زمانی توجیه دارد که برنامه از قبل بیتهای وضعیت زیادی را فشرده کرده و آنها را صراحتاً به نتیجه پاریتی کاهش دهد؛ بااینحال، مرحله کاهش باید همچنان قابل مشاهده و آزمونپذیر باشد.
پاریتی را با تابع تغییر وضعیت اشتباه نگیرید
در یک آرایش روشنایی سهطرفه با کلیدهای ثابت، هر زمان که هر کلید فیزیکی تغییر وضعیت دهد، خروجی تغییر میکند. از دیدگاه کاملاً بولی، خروجی در هر لحظه را میتوان با پاریتیِ وضعیتهای سه کلید نمایش داد. نیازی به وضعیت ذخیرهشده نیست، زیرا خود وضعیت کلیدها حالت سیستم را نگه میدارد.
شستیهای لحظهای متفاوتاند. اگر فشردن هر یک از سه شستی باید چراغ را تغییر وضعیت دهد، PLC باید لبه بالارونده را تشخیص دهد و یک بیت فرمان نگهداریشده را برای هر فشار معتبر، یکبار معکوس کند. اعمال مستقیم XOR روی سه ورودی لحظهای فقط مشخص میکند که در آن اسکن کدام شستیها فشردهاند؛ وضعیت قبلی چراغ را به خاطر نمیسپارد.
شستیهای واقعی ممکن است پرش کنتاکت نیز داشته باشند. بنابراین طراحی تغییر وضعیت به آمادهسازی ورودی، وانشات، مالکیت مشخص بیت نگهداریشده و وضعیت راهاندازی تعریفشده نیاز دارد. برای الگوهای مرتبط با اسکن و مدیریت داده، راهنمای استفاده از مقدار یک تایمر SLC برای تنظیم تایمر دیگر نشان میدهد که چرا جابهجایی داده و ترتیب ردیفها باید صریح باشد.
منطق را بهعنوان یک تابع راهاندازی کنید، نه یک تصویر
ابتدا بیت میانی دو ورودی را بهتنهایی آزمایش کنید. این بیت باید برای 01 و 10 درست و برای 00 و 11 نادرست باشد. سپس خروجی نهایی را در هر هشت حالت سهورودی آزمایش کنید. وضعیت مشاهدهشده را ثبت کنید و فقط به سبز شدن ردیف اکتفا نکنید؛ زیرا فورس کردن، کویلهای تکراری و تازهسازی نمایش آنلاین میتوانند مالک واقعی خروجی را پنهان کنند.
سپس رفتار هنگام روشنشدن، گذارهای حالت برنامه، جایگزینی ورودی و واکنش به خرابی یا قطع مدار فیلد را بررسی کنید. منطق XOR میتواند اختلاف را تشخیص دهد، اما بهتنهایی ابزار تشخیص ایمنی نیست. اگر کلیدها در یک عملکرد حفاظتی نقش دارند، طراحی به ورودیهای دارای رتبه ایمنی، پایش ناهماهنگی، تشخیص خطا و ارزیابی ریسک متناسب با ماشین نیاز دارد.
گزینههای سختافزاری و مهاجرت برای کنترلرهای قدیمی و جدید را میتوان در مجموعه سیستمهای PLC و PAC بررسی کرد؛ اما پیش از تطبیق این مثال، خانواده پردازنده، ولتاژ ورودی/خروجی، آدرسدهی و مالکیت برنامه باید تأیید شوند.
چرا نسخه دارای بیت داخلی نگهداری آسانتری دارد
یک ردیف گسترده میتواند پاریتی فرد سهورودی را مستقیماً بیان کند، اما به چهار ترکیب موازی نیاز دارد و با افزودن شرایط بیشتر، بررسی آن دشوارتر میشود. آبشاری کردن مراحل XOR دوتایی، مفهوم بولی را آشکار میکند، یک نقطه بررسی تشخیصی فراهم میآورد و نگاشت میان آدرسهای RSLogix 500 و تگهای BOOL نامگذاریشده در Logix Designer را ساده میکند.
دیدگاه تحریریه: بهترین راهحل نردبانی راهحلی است که جدول درستی، رفتار حافظه و واکنش به خرابی آن را بتوان هنگام تحویل کار تعمیر و نگهداری توضیح داد. وقتی یک بیت داخلی مانع اشتباه گرفتن پاریتی فرد، منطق دقیقاً یک ورودی و تغییر وضعیت ذخیرهشده بهعنوان یک تابع واحد میشود، حافظه هدر نرفته است.
سؤالات متداول
آیا وقتی هر سه کلید بستهاند، خروجی باید روشن باشد؟
بله، اگر نیازمندی XOR سهورودی یا پاریتی فرد باشد. سه ورودی درست، تعدادی فرد هستند؛ بنابراین خروجی درست است. اگر 111 باید نادرست باشد، تابع موردنیاز «دقیقاً یک ورودی» است، نه XOR.
آیا دستور XOR در SLC 500 میتواند جایگزین دو مرحله نردبانی شود؟
این دستور XOR بیتی را روی عملوندهای کلمهای انجام میدهد. میتواند بخشی از راهحل بیتهای فشرده باشد، اما سه بیت ورودی مجزا همچنان باید بهگونهای مرتب و کاهش داده شوند که بیت مقصد، پاریتی موردنیاز را نشان دهد. برای یک مدار کوچک و مجزا، دو مرحله کنتاکتی معمولاً واضحتر هستند.
آیا بیت میانی یک تأخیر یکاسکنی ایجاد میکند؟
خیر، مشروط بر اینکه ردیف نویسنده بیت میانی پیش از ردیف خواننده آن در همان روال و وظیفه اجرا شود. ردیف دوم مقداری را که در ابتدای همان اسکن نوشته شده است میبیند. ترتیب برنامه باید مستند و کنترلشده باقی بماند.
اگر تجهیزات فیلد شستیهای لحظهای باشند، چه چیزی تغییر میکند؟
تغییر وضعیت با شستی لحظهای به تشخیص لبه و وضعیت ذخیرهشده خروجی نیاز دارد. XOR ترکیبی بهتنهایی نمیتواند به خاطر بسپارد که چراغ پیشتر روشن بوده یا خاموش.
آیا XOR برای مدار رأیگیری ایمنی مناسب است؟
بهتنهایی خیر. XOR معمولی فقط وضعیتهای بولی را ارزیابی میکند. کاربردهای ایمنی به معماری ایمنی اعتبارسنجیشده، پوشش تشخیصی، زمانبندی پایش ناهماهنگی، سختافزار مناسب و تأیید در برابر ارزیابی ریسک مربوطه نیاز دارند.
نوشته گروه تحریریه PLC ProTech