PDA

View Full Version : سوال: سوالاتی برای طراحی یک سیستم کنترل کننده سریع صنعتی



ali2914
جمعه 22 شهریور 1387, 16:23 عصر
با سلام به همه دوستان.
سوالاتی داشتم که خیلی کلیه و برای جواب گرفتن نیاز به مطرح کردن کامل مساله داره پس از همه دوستان درخواست می کنم که با حوصله مطلب را بخونن و در صورت امکان جواب بدن.
من سالها برنامه نویس PC بودم و مدتها عضو این سایت بودم اما متاسفانه از 3 سال قبل کار برنامه نویسی PC را رها کردم و در حال حاضر در زمینه برنامه نویسی سیستمهای کنترل صنعتی و عمدتا PLC فعالیت میکنم. و حالا برای شروع یه پروژه تحقیقاتی مربوط به کنترل سیستمهای صنعتی به راهنمایی شما نیاز دارم.
و اما اصل مطلب.
همونطور که می دونید برای کنترل سیستمهای صنعتی از PLC استفاده می شه. که مزایایی مثل قیمت مناسب ، سادگی نصب و برنامه نویسی و قابلیت اطمینان بالا داره. اما از معایب PLC می شه به ضعیف بودن در محاسبات سنگین ریاضی اشاره کرد. همونطور که از اسمشون پیداست PLC ها بیشتر واسه عملیات منطقی به صورت شرایط If ... Then و یا حلقه ها مناسب هستند و زمانی که نیاز باشه همزمان عملیات سنگین محاسباتی انجام بدن کارایی زیادی ندارن. PLC ها برنامه ها را به صورت خطی اجرا می کنند .درست مثل برنامه های قدیمی DOS . در صورتی که برای بعضی عملیات کنترلی پیچیده نیاز به multitasking و رویداد گرایی هست که در PLC قابل پیاده سازی نیست . البته برای این موارد از DCS استفاده می شه.
یکی از سیستمهایی که نیاز به محاسبات ریاضی سنگین و پیچیده داره سیستمهای نورد ورقهای فولادی هستند. سیستمی که با سرعت تولید حدود 20متر در ثانیه کار می کنه و برای رسیدن به کیفیت مطلوب تولید، باید عملیات نورد بر اساس محاسبات پیچیده به صورت online و با سرعت زیاد انجام بشه.
و اما درخواستهای من.
من فکر می کنم که از سیستمهای PC برای انجام محاسبات مورد نیاز با سرعت بسیار زیاد می شه استفاده کرد. چون اصولا PC ها برای همین منظور به وجود اومدن.اما برای اجرای این پروژه نیاز به شرایط ویژه است که به اون اشاره می کنم.
شرایط:
سیستمی که به عنوان کنترل کننده استفاده می شه نیازی نیست که هیچ ورودی و خروجی برای کاربر داشته باشه پس نیازی به مانیتور و کیبورد ماوس و غیره نداره. تمامی توان سیستم باید صرف محاسبات موردنظر بشه. اطلاعات مربوط به ست کردن پارامترها و دستوراتی که نیازه توسط اپراتورداده بشه از طریق یه PC دیگه و توسط شبکه یا پورت USB به سیستم کنترل کننده داده می شه. کلیه ورودی ها و خروی های دیجیتال و آنالوگ از طریق کارتهایی مثل کارتهای PLC و توسط شبکه و از طریق یک پورت usb به کنترل کننده داده می شه یا از اون گرفته می شه.

اما سوالات من
سیستم عامل:با توجه به موارد زیر شما چه سیستم عاملی را پیشنهاد می کنید؟
1- کم حجم باشه و بسیار پر سرعت
2- بتونه امکان multi tasking را فراهم کنه
3- بشه امکاناتی مثل صوت و تصویر و ورودی های اپراتور را ازش حذف کرد که با تمام توان محاسبات مورد نیاز را انجام بده
4- پایدار باشه و دچار اشکال نشه.
5- بشه چند پردازنده را با هم شبکه کرد تا در صورت نیاز محاسبات بین چند پردازنده تقسیم بشه و بتونیم به سرعت بالاتری برسیم.


زبان و کامپایلر: :با توجه به موارد زیر شما چه زبانی را پیشنهاد می کنید؟
1- برنامه محاسبه باید قادر باشه با بالاترین سرعت محاسبات را انجام بده
2- دارای امکان شی گرایی و رویداد گرایی باشه.
3- امکان multi tasking و چند ریسمانی را فراهم کنه.
4- قادر به کار با سخت افزارهای سیستم مثل پورتهای usb و سریال و موازی باشه.

منتظر جواباتون هستم.ممنون

SUNMOON
شنبه 23 شهریور 1387, 15:14 عصر
من اطلاع چنداني در مورد كار با plc ندارم ولي با ميكرو چندقتي دارم كار مي كنم.
در مورد سيستم عامل لينوكس گزينه مناسبيه ولي اينكه بخوايد امكانات گرافيكي رو از روش حذف كنيد؟؟؟
در مورد زبان هم c سرعت محاسباتي خوبي داره ولي مي دونيد كه رويداد گرانيست
يه توصيه : سيستمتون رو تو كامپيوتر شبيه سازي كنيد به اين صورت كه بخش محاسباتي رو برنامه نويسي كنيد و ببيند چقدر نياز به سرعت و قدرت بيشتر داره و طبق اون سيستم رو طراحي كنيد.
در ضمن تو سيستم هاي اينجوري الگوريتم بهينه خيلي مهمه

ali2914
شنبه 23 شهریور 1387, 19:57 عصر
سلام
ممنون از جوابتون
اصولا چون نیازی به امکانات گرافیکی در این مورد نیست فکر می کنم حذف بشه بهتره
در مورد سیستم عامل آیا کسی سیستم عامل صنعتی با مشخصاتی که گفتم می شناسه؟ تا جایی که می دونم وجود داره اما نمی شناسم.فکر می کنم ویرایشهایی از لینوکس وجود داره که می تونه مناسب باشه.
در مورد زبان هم ++C رویدادگراست و فکر می کنم که مناسب باشه.اما دنبال بهترین انتخاب هستم.
بازم منتظر جواباتون هستم.ممنون

shaniaki
سه شنبه 26 شهریور 1387, 14:33 عصر
با عرض ادب:
اگر چنانچه احتیاجی به رابط های گرافیکی استاندارد ندارید به شما توصیه می کنم به جای PC از گزینه های دیگر مانند میکروکنترلرها و یا DSPها استفاده کنید.
در مورد سیستم عامل هم، باز چنانچه مهم برای شما فراهم کردن امکان multitasking و مدیریت حافظه ساده باشد و احتیاجی به محیط های گرافیکی، درایورهای پیشرفته و فایل سیستم و ... ندارید، حتی می توانید از سیستم عامل های جمع و جورتری مانند MicroC/OS-II استفاده کنید.
http://en.wikipedia.org/wiki/MicroC/OS-II
http://www.micrium.com
این سیستم عامل بسیار کوچک - که در واقع یک سیستم عامل Realtime هست - روی سخت افزارهای مختلفی قابل اجراست، شبیه ساز روی PC دارد و برای کاربردهای کنترلی بسیار مفید است. با تجربه ای که شخصا با آن روی پردازنده Nios II داشتم، می توانم بگویم مجموع زمان فراهم کردن ابزارها، تسلط و کار با یک مثال اولیه آن کمتر از یک ماه طول می کشد.
لینوکس های سفارشی شده برای سیستم های Embedded مانند uClinux و سیستم عامل های مخصوص این کاربردها نظیر QNX راه حل های دیگر هستند که البته تسلط به آن ها زمان بیشتری می طلبد.
چنین سیستم هایی امروزه با ترکیبی از سی و اسمبلی نوشته می شوند. بدین ترتیب که برنامه خود را به زبان سی می نویسید و بخش هایی که احتیاج دارید با سرعت بیشتری اجرا شوند، با اسمبلی بازنویسی می کنید.

یه ... ...

ali2914
سه شنبه 26 شهریور 1387, 20:59 عصر
سلام.ممنون از جوابتون.در مورد میکرو من حتی مطمئن نیستم که PC بتونه سرعت لازم را تامین کنه چه برسه به میکرو.اما سیستم عامل هایی را که معرفی کردین بررسی می کنم.از راهنماییتون خیلی ممنونم و امیدوارم بتونم از اطلاعات خیلی خوبتون استفاده کنم.بازم منتظر راهنمایی هاتون هستم

bichare1361
جمعه 29 شهریور 1387, 22:22 عصر
همونطور که دوستان گفتند بهترین گزینه استفاده از Real time OS هاست.
http://www.lynuxworks.com/
http://www.windriver.com/products/vxworks/

ali2914
یک شنبه 31 شهریور 1387, 22:34 عصر
مرسی ممنون ، در حال بررسی هستم

ali2914
یک شنبه 31 شهریور 1387, 22:37 عصر
خوب.اشکال اول. این سیستم عاملها همگی پولی هستند.هیچکدوم Free نبودند.اشکال دوم اینه که همه آمریکایی هستند و مشمول تحریم هستند و حتی امکان خرید اونها وجود نداره.
راه حل چی پیشنهاد می کنین؟ امکان تهیه وجود داره؟

shaniaki
سه شنبه 02 مهر 1387, 23:04 عصر
با عرض ادب:
سورس MicroC/OS-II را می توانید برای مقاصد آموزشی از شرکت سازنده درخواست کنید و از آن استفاده کنید. در مورد دیگر گزینه ها نیز همانطور که باقی نرم افزارهایتان را تهیه می کنید عمل کنید.

یه ... ...

MTrezaei
چهارشنبه 08 آبان 1387, 12:25 عصر
سلام
DSP های سری 6000 از شرکت TI به صورت realtime میتوانند پردازش تصویر بکنند. می تونی از اونها استفاده کنی.

ali2914
جمعه 10 آبان 1387, 17:40 عصر
ممنون در حال بررسی تمامی موارد هستم