سیستم رفع خطای خط تولید
سیستم رفع خطای خط تولید
این پست از وب سایت قبلیم کپی شده که با دامنه تابلوکار منتشر میشد . از آرشیو اینترنت پیدا کردم و چون یکی از بهترین کارهایی بود که انجام دادم حیفم اومد اینجا دوباره منتشر نکنم .آدرس صفحه از وب آرشیو : منبع
سیستم رفع خطای خط تولید
مدتها بود پروژه ای به شدت فکرم رو مشغول کرده بود و پیاده سازیش حقیقتا کار لذت بخش و البته پیچیده ای بود .
خط تولیدی داشتیم که با استفاده از پروتکل شبکه و بر روی بستر TCP/IP طراحی شده بود .
دستگاههای عظیم الجثه ای که با استفاده از پروتکل شبکه اطلاعاتی رو از سرور دریافت می کردند . (دستگاههای تولید نخ و ریسندگی ) موصوم به BCF .
علی ایحال گاها یکی از این دستگاهها بدلایل نا معلومی شروع به ارسال پکت هایی گاها نا مفهوم به سمت سرور می کرد و سرور که مال عهد بوق بود نمی تونست به این همه درخواست یکجا پاسخ بده . این وسط ریپیتر ها هم اوضاع رو بهرانی تر میکردند .
در نتیجه خط تولید از کار می ایستاد یا اینکه اطلاعات بدرستی منتقل نمیشدند و بدلیل اسینکرونایز نبودن خروجی دستگاهها افتضاح میشد .
مدتی در سایتها و انجمن های شبکه بدنبال راه حل این مشکل بودم، با سخت افزاری که ما داشتیم هیچ کدوم از راه های پیشنهادی نمی تونست ما رو به سر منزل مقصود برسونه .
این گشت و گذار ها و سوالهای مختلف و گرفتن مشورت از اساتید ، دید خوبی به من داد و مشکل رو بهتر تونستم هضم کنم .
و اما در مورد پروژه :
ما به یه دستگاهی نیاز داشتیم که سرور (هدف) رو هر چند ثانیه یکبار ping کنه و در صورت بالا رفتن زمان دریافت پاسخ از سمت سرور ، اون رو از مدار خارج کرده و ریستش کنه .
این طرح باعث شد به فکر طراحی یه سیستم کامل برای ارتباط دادن میکرو کنترلر با پروتکل شبکه بیفتم . البته این رو نا دیده نگیریم که این پروتکل ها و پورت ها بر روی میکرو کنترلر های ARM Cortex 7 بصورت آماده وجود داره .اما من با kail مشکل دارم و اینبار هم با avr رفتم جلو .
نمونه framware های خارجی ارتباط با میکرو روی اینترنت زیاده . منم چندتاش رو دانلود کردم و به دقت بررسی کردم اما به قدری پیچیده بودند که فهمیدن کدهاشون برام دشوار میومد و به این فکر میکردم که اگر خدای نکرده بعدها بخوام تغییری توش ایجاد کنم ، کارم خیلی مشکل میشه . البته برخی از این کد ها بسیار پرحجم بودن و حافظه میکرو اشکال میشد . علاقه زیاد برای درگیر شدن و به چلنج کشیدن دانش و توانیاییم در حوزه شبکه و اصول agile programming منو به سمتی سوق داد که لایه های شبکه رو باز دیگر خودم کد نویسی کنم و شروع شد داستان یک ماه کد نویسی ما .
ناگفته نماند می خواستم که اسکرام رو به صورت عملی تو پروژه الکترونیک پیاده سازی کنم . و شروع شد یکماه تلاش های شبانه روزی .
بعد از مدتی پروژه کامل شد و سیستم شامل میکرو کنترلر avr و برد رابط شبکه با استفاده از ای سی rtl8019as که قادر به برقراری ارتباط با شبکه های lan هست طراحی شد .
پیاده سازی ÷روتکل های شبکه با استفاده از Bascom انجام شد پروتکلها از ابتدایی ترین روتینهای مربوط به راه اندازی درایور شبکه تا پردازش پکتهای ورودی پاسخ به درخواست ARP و تا پروتکلهای پیچیده تری مثل TCP رو توی برنامه پیاده سازی کردم . برنامه خیلی کوچکتر از نمونه های مشابه ساده تر شخصی تر و سریعتر بود (پاسخ Ping با یک کریستال ۱۴ مگاهرتزی زیر یک میلی ثانیه بود .
مشخصات فریمور نوشته شده البته تا این لحظه :
- http – tcp – icmp (read only)-arp (send and request)
- بروز رسانی arp cach با ارسال هر arp و بروزرسانی در هنگام دریافت
- ریدایرکت کردن packet های خارج از شبکه به router
- پشتیبانی از متد های GET و Post در http
- تشخیص خطاهای سمت سرور مانند http 404 , http 400 و http 501
برای دسترسی به اطلاعات سخت افزاری از یه رابط html استفاده کردم که تعدادی تکست رو به دخل کش میکرو ست میکرد . که به شکل زیر اما ده شد .
در تصویر زیر می بینید که با سیستم عامل کالی دستگاه رو پینگ می کنیم و دستگاه به دقت packte ها رو بدون هرگونه وقفه ای packet ها رو رد و بدل میکنه .
نتیجه پینگ بر روی ویندوز .
پروژه رو در موقعیت های مختلف تست کردم و نتایج نشون میداد که بدون هیچ عیب و نقصی حتی در مقابل حملات دیداس هم سرور رو محافظت میکنه .
هرچند ریست کردن سرور در این موارد اصلا کار عقلانی ای نیست .
برای کسب اطلاعات بیشتر می توانید با شماره تلفن ۰۹۱۹۱۴۳۷۵۳۹ در تماس باشید .