چرا پالسهای ONS در Studio 5000 در یک OTE ناپدید میشوند
دستورهای ONS و OTE در Studio 5000 میتوانند پالسی معتبر بهمدت یک اسکن ایجاد کنند که در حالت آنلاین قابل مشاهده نیست و بهعنوان فرمان پایدار دستگاه قابل اعتم...
یک دستور ONS میتواند دقیقاً مطابق طراحی کار کند، در حالی که خروجیِ کنار آن ظاهراً هرگز فعال نمیشود. این تناقض ظاهری از زمانبندی اسکن ناشی میشود: ONS برای یک اسکن برنامه، گذار از صفر به یک را عبور میدهد، اما OTE در هر بار ارزیابی رَنگ، مقصد خود را بر اساس وضعیت رَنگ مینویسد. اگر این دو را سری کنید، مقصد برای یک اسکن یک میشود و سپس دوباره صفر میشود.
این پالس ممکن است برای افزایش شمارنده، ثبت یک رویداد یا درخواست تغییر وضعیت کاملاً معتبر باشد. اما معمولاً برای راهانداز فیزیکی، سلونوئید شیر یا نشانگر اپراتور که باید تا پایان یافتن شرط دیگری فعال بماند، فرمان مناسبی نیست.

وقتی وضعیت یک فقط برای یک اجرای وظیفه دوام دارد، ممکن است هایلایت سبز آنلاین دیده نشود.
ONS و OTE واقعاً چه چیزی را تضمین میکنند؟
Rockwell Automation، ONS را دستوری تعریف میکند که وقتی وضعیت ورودی رَنگ از صفر به یک تغییر میکند، بخش باقیمانده رَنگ نردبانی را برای یک اسکن یک میکند. بیت ذخیرهسازی آن به خاطر میسپارد که آیا منطق قبلی از قبل یک بوده است یا نه. این بیت ذخیرهسازی به آشکارساز لبه تعلق دارد و نباید بیدلیل با وانشات دیگری به اشتراک گذاشته شود.
OTE قرارداد متفاوتی دارد. وقتی شرط رَنگ یک باشد، بیت مقصد خود را یک میکند و وقتی شرط رَنگ صفر باشد، آن را صفر میکند. مرجع دستورهای بیتی Studio 5000، فعالسازی یکاسکنی با ONS را از رفتارهای نگهدارنده و ماندگار OTE، OTL و OTU متمایز میکند.
در اسکن شناسایی لبه بالارونده، ONS پیوستگی رَنگ را برقرار میکند و مقصد OTE یک میشود. در اسکن بعدی، ورودی ممکن است همچنان یک باشد، اما ONS چون لبه قبلاً مصرف شده است، پیوستگی را مسدود میکند. سپس OTE مقصد خود را صفر میکند. نتیجه یک پالس معتبر یکاسکنی است، نه یک کویل خراب.
چرا پالس از دید ناپدید میشود؟
اجرای وظیفه در Logix و بهروزرسانی آنلاین ایستگاه مهندسی، دو فرایند جداگانهاند. یک وظیفه دورهای ممکن است بین دو بهروزرسانی صفحه، چندین بار اجرا شود. بنابراین خروجی میتواند بین دو نوسازی قابل مشاهده روشن و خاموش شود، در حالی که پردازنده هر دو وضعیت را درست اجرا کرده است.
یک خروجی فیزیکی مرز دیگری ایجاد میکند. کنترلر دادههای خروجی خود را بهروزرسانی میکند، ماژول ارتباطی دادهها را طبق زمانبندی خودش منتقل میکند و تجهیز متصل نیز زمان پاسخ الکتریکی و مکانیکی خاص خود را دارد. پالسی که در تصویر خروجی کنترلر برای یک اسکن وجود دارد، ممکن است برای رسیدن به تجهیز میدانی یا فعالکردن مطمئن آن بیش از حد کوتاه باشد. رفتار دقیق به دوره وظیفه، بهروزرسانی ماژول، ساختار شبکه، سختافزار خروجی و بار بستگی دارد، نه به یک آستانه عمومی برحسب میلیثانیه.
برای عیبیابی، لبهها را در یک تگ داخلی بشمارید، یک بیت تشخیصی موقت را که به ریست عمدی نیاز دارد لچ کنید، یا رویداد را با نرخ مناسب وظیفه ترند کنید. صرفاً برای قابل مشاهده کردن فرمان تولیدی، مدت آن را افزایش ندهید؛ ابتدا بررسی کنید این فرمان طولانیشده چه چیزی را ممکن است به کار بیندازد.
الگو را بر اساس رفتار وضعیت موردنیاز انتخاب کنید
برای یک رویداد از پالس یکاسکنی استفاده کنید
ONS زمانی مناسب است که دستور بعدی باید یکبار اجرا شود: افزایش شمارش، کپیکردن دستور ساخت، ثبت زمان، آغاز یک پیام یا درخواست از ماشین حالت برای رفتن به وضعیت بعدی. در این طراحی، تگ یکاسکنی یک رویداد است، نه فرمان تجهیز.
نامگذاری را نیز متناسب انجام دهید؛ Start_Request_Pulse از Pump_Start گویاتر است. روال وضعیت یا تجهیز باید این درخواست را بپذیرد، مجوزها را بررسی کند، مالکیت را تعیین کند و فرمان اجرای نگهداشتهشده را ایجاد کند.
برای فرمان نگهداشتهشده و غیرماندگار از معادله خودنگهدار استفاده کنید
اگر یک رویداد شروع باید بیت اجرا را تا فعالشدن منطق توقف، خطا یا اینترلاک نگه دارد، یک معادله خودنگهدار میتواند یک OTE را راهاندازی کند. فرمان به این دلیل یک باقی میماند که بیت وضعیت در شرط نگهدارنده خودش مشارکت دارد، نه به این دلیل که ONS همچنان یک است.
شرایط توقف، خطا، مد و مجوز را طوری قرار دهید که اولویت آنها بدون ابهام باشد. از ترسیم شاخهای که اینترلاک موردنظر برای توقف تجهیز را دور میزند خودداری کنید. بازبینی یک مالک برای خروجی، از چند رَنگ که یک BOOL یکسان را مینویسند آسانتر است.

وانشات باید درخواست تغییر وضعیت را صادر کند؛ منطق نگهداشتهشده باید مالک فرمان تجهیز باشد.
OTL و OTU را فقط با مالکیت مشخص ریست به کار ببرید
OTL یک بیت را یک میکند و OTU آن را صفر میکند. این میتواند الگویی تمیز برای تبدیل رویداد به وضعیت باشد، اما هر مسیر ست باید یک مسیر ریست بررسیشده داشته باشد. مشخص کنید در اسکن نخست، تغییر مد، دانلود، راهاندازی مجدد پردازنده، از دست رفتن بازخورد و ورود به وضعیت خطادار چه اتفاقی میافتد. هرگز فرض نکنید دکمه توقف اپراتور تنها شرطی است که باید فرمان را از حالت لچ خارج کند.
برای تجهیزات پیچیده، ماشین حالت معمولاً از دستورهای لچ و آنلچ پراکنده گویاتر است. ماشین حالت یک محل مشخص برای تعریف رفتارهای Idle، Starting، Running، Stopping و Faulted و همچنین گذارهای مجاز میان آنها فراهم میکند.
روند عیبیابی با اولویت خطا
ابتدا تأیید کنید منطق پیش از ONS واقعاً از صفر به یک تغییر میکند. اگر هنگام شروع اجرای روال از قبل یک باشد، ممکن است لبه جدیدی برای عبور وجود نداشته باشد. بررسی کنید روال بهطور پیوسته اسکن میشود، بهصورت شرطی فراخوانی میشود یا در وظیفهای قرار دارد که غیرفعال شده است.
دوم، مطمئن شوید بیت ذخیرهسازی ONS یکتا است. استفاده مجدد از یک تگ ذخیرهسازی در دو محل، تاریخچه لبه رَنگهای نامرتبط را به هم وابسته میکند و میتواند پالسهای مورد انتظار را سرکوب کند.
سوم، مقصد OTE را بررسی متقابل کنید. یک OTE، OTL، OTU، تگ تولیدشده، نام مستعار یا نوشتن خارجی دیگر ممکن است همان بیت را بعدتر در اسکن یا در وظیفهای دیگر تغییر دهد. مستندات OTE شرکت Rockwell بهطور مشخص درباره بازنویسی عملوندها هشدار میدهد. برای فرمان نهایی یک مالک تعیین کنید و اجازه دهید روالهای دیگر تغییرات را از طریق تگهای درخواست جداگانه اعلام کنند.
چهارم، وضعیت کنترلر را از وضعیت فیزیکی جدا کنید. تگ فرمان، وضعیت اتصال ماژول، داده خروجی، ولتاژ میدانی، رله واسط، ورودی راهانداز و بازخورد تجهیز را بهعنوان نقاط جداگانه در زنجیره سیگنال مشاهده کنید. درستبودن تگ، وجود توان میدانی را ثابت نمیکند و روشنبودن LED خروجی نیز ثابت نمیکند که عملگر حرکت کرده است.
در پایان، پس از آزمایش فورسها و لچهای تشخیصی موقت را حذف کنید. روش آزمایش را مستند کنید تا کارکنان تعمیرات با بیتی مخصوص سرویس مواجه نشوند که بیصدا رفتار تولید را تغییر میدهد.
نمونه کاربردی: انتخاب پمپ اصلی
یک روال اصلی/رزرو ممکن است هنگام انتخاب پمپ ۱ بهعنوان واحد اصلی، یک وانشات تولید کند. این لبه نباید مستقیماً به خروجی فیزیکی متصل شود. بلکه باید از ماژول تجهیز پمپ درخواست شروع کند. سپس ماژول، مد خودکار، مجوزها، وضعیت تریپ، زمان حداقل خاموشبودن، تقاضای فرایند و در دسترسبودن را بررسی میکند و بعد فرمان اجرای نگهداشتهشده را فعال میسازد.
بازخورد باید وضعیت را از Starting به Running منتقل کند و پایانیافتن مهلت شروع، پاسخ خطا ایجاد کند. تقاضای توقف و خطاها باید مطابق طراحی فرایند، وضعیت را به سمت توقف کنترلشده یا تریپ فوری ببرند. این جداسازی مانع میشود یک رویداد زودگذر انتخاب، تنها عامل نگهداشتن فرمان موتور باشد.
برای نمونهای دیگر از تبدیل قصد بولی به ساختار نردبانی قابل نگهداری، راهنمای اصلاحشده منطق XOR سهکلیده و توازن فرد را ببینید. گزینههای کنترلر و ورودی/خروجی را نیز میتوانید در سیستمهای PLC و PAC بررسی کنید.
آزمون طراحی، مالکیت است
دیدگاه تحریریه: اشتباه تکرارشونده، درک نکردن وانشات نیست؛ بلکه اجازه دادن به یک بیت رویداد برای جا زدن خود بهعنوان وضعیت تجهیز است. آشکارسازهای لبه پاسخ میدهند «آیا این گذار رخ داد؟» منطق وضعیت پاسخ میدهد «ماشین اکنون باید چه کاری انجام دهد؟» جدا نگهداشتن این دو پرسش، کدی ایجاد میکند که راهاندازی و تست آن آسانتر، راهاندازی مجددش ایمنتر و آسیبپذیریاش در برابر ویرایشهای کویل تکراری بسیار کمتر است.
سؤالات متداول
آیا ONS، OTE بعدی را فعال میکند؟
بله، در اسکنـی که شرط ورودی رَنگ از صفر به یک تغییر میکند. در اسکن بعدی، ONS رَنگ را مسدود میکند تا زمانی که شرط ورودی ابتدا به صفر برگردد و سپس دوباره به یک برسد.
چرا نمیتوانم روشنشدن OTE را بهصورت آنلاین ببینم؟
پالس یکاسکنی ممکن است بین دو بهروزرسانی ایستگاه مهندسی شروع و تمام شود. برای اثبات وقوع لبه، از شمارنده رویداد داخلی، لچ تشخیصی کنترلشده یا ترند با پیکربندی مناسب استفاده کنید.
آیا باید OTE را با OTL جایگزین کنم؟
فقط اگر وضعیت ماندگار واقعاً موردنیاز باشد و همه شرایط آنلچ بهطور صریح طراحی شده باشند. برای بسیاری از فرمانهای تجهیز، ماشین حالت یا معادله خودنگهدار با یک مالک OTE، ممیزی آسانتری دارد.
آیا دو دستور ONS میتوانند یک بیت ذخیرهسازی مشترک داشته باشند؟
نباید این کار را انجام دهند. بیت ذخیرهسازی تاریخچه لبه را ثبت میکند. اشتراکگذاری آن، دو دستور را به هم وابسته میکند و ممکن است باعث شود یک رَنگ پالس مورد انتظار رَنگ دیگر را سرکوب کند.
آیا یک OTE یکاسکنی میتواند خروجی فیزیکی را راهاندازی کند؟
کنترلر میتواند آن وضعیت را بنویسد، اما ممکن است پالس بهاندازه کافی منتقل نشود یا دوام نیاورد تا ماژول و تجهیز میدانی پاسخ دهند. فرمانهای فیزیکی باید بر اساس یک نیاز تعریفشده برای وضعیت نگهداشتهشده طراحی شوند.