PDA

View Full Version : سوال: ارتباط #C با PLC



ali190
سه شنبه 16 اسفند 1390, 21:32 عصر
باسلام و عرض خسته نباشید
در اینترنت داشتم در مورد نرم افزار "نگهداری تعمیرات" سرچ میکردم ، به نرم افزار نگهداری تعمیراتی برخوردم که یکی از ویژگی هاش این بود که میتونست با PLC ها ارتباط برقرار کنه و یک سری اطلاعات رو از تجهیزات مستقیماً دریافت کنه با دریافت اون اطلاعات و پردازششون خروجی رو صادر کنه
میخواستم از عزیزان خواهش کنم یه مقدار راجع به PLC توضیح بدن ف که اصلاً فلسفه وجودیش چیه؟(اطلاعاتم راجع بهش خیلی کمه)
بعد اینکه آیا امکان داره که بشه با #C با PLC ارتباط برقرار نمود؟
ممنونم
یاعلی

Esmail Solhkhah
سه شنبه 16 اسفند 1390, 23:24 عصر
PLC ها در صنعت و برای اتوماسیون بکار میرن ، مثلا یه خط تولید رو تو یه کارخانه در نظر بگیرید

محصول مورد نظر (مثلا شکلات) تو مراحلی باید وزن بشه ، بسته بندی بشه ، تعدادش مشخص بشه و نهایتا یه تعداد مشخص داخل یه بسته قرار بگیره خب راهکار شما چیه ؟ آیا برای اتوماتیک کردن این کارها از PC استفاده میشه ؟ قطعا نه (هرچند امکانش هست)

PLC شامل پردازنده ، پورت های ورودی خروجی ، حافظه ، تایمر ، کانتر و تجهیزات جانبی مورد نیاز هست برای این تیپ کارها

مثلا برای وزن کردن از یه ترازوی دیجیتال استفاده میشه خروجی این ترازو میاد به PLC و همچنین تو برنامه PLC مشخص میشه هر شکلات باید چه وزنی داشته باشه و این عدد به عنوان پارامتر مربوطه میره به سنسور قطع کننده که هر شکلات رو به وزن خاصی تنظیم کنه ، برای تعداد، PLC دستوری میده به دیوایس مربوطه تا تعداد خاصی بره تو یه بسته و برای حرکت دادن جعبه روی ریل دستور مربوطه باز از PLC در زمان معین میره به موتور ریل و ...

معمولا یه سری سنسور خاص داریم که اطلاعات ورودی رو برای PLC فراهم میکنن یه سری خروجی ازPLC میره به ابزارهای خاص مثل جک ها و موتورها و استپ موتورها و کنتاکتورها و ... و این دیوایسها کارهای سخت افزاری رو انجام میدن.

PLC رو میتونید با زبانهای مخصوص خودش پروگرم کنید(مثلا s5 برای زیمنس) تا ورودیها رو گرفته ، تصمیمات رو اتخاذ کرده و خروجی مناسب رو تولید کنه

میتونید با کابل رابط PLC به PC وصل کنید و برنامشو که قبلا نوشتید آپ کنید داخل PLC و تمام (از اکتیوکس ها یا dll های ارائه شده توسط سازنده PLC میتونید استفاده کنید)

هر چند برای این کارها میتونید از میکروکنترلر ها هم استفاده کنید تا هزینه پایین بیاد ولی استفاده از میکروها تو محیط های پر از نویر مثل کارخانه ها و اماکنی که با ولتاژهای بالا و موتورهای کت و کلفت و ... کار میکنن درست نیست(بحث نویز) حالا بماند این که PLC ها امکانات بیشتری دارن و قابلیت افزودن ماژولهای خاص رو براحتی فراهم میکنن و ...

خب یه راهکار دیگه استفاده از PAL ها هست ولی PAL ها ظرفیت و سرعتشون کمه اگه بریم سمت FPGA که گزینه بهتری هست اونوقت بیچاره میشید چون همه چیز رو باید از اول طراحی کنید از یه گیت AND بگیر برو تا خود CPU و ... محدودیت دوم اینه که شما محدود میشید به دیجیتال و از آنالوگ تو FPGA خبری نیست یعنی نمیتونید سلف و خازن و مقاومت داخل FPGA پیاده کنید.

اگه بازم بریم جلو میرسیم به RPGA که میتونید FPGA رو داشته باشید+ قابیلت پیاده سازی سلف و خازن و مقاومت که تو سیستمهایی که از لحاظ امنیتی فوق العاده مهم هستند استفاده میشه مثل رادار ، موشک و ... اگه از PC تو این سیستمها استفاده بشه و تو لحظه حساس سیستم عامل هنگ کنه یعنی فاجعه.

در مورد RPGA اگه خواستید سرچ کنید اینو همین اول بگم که چیز زیادی گیرتون نمیاد ، قرار نیست این اطلاعات عمومی بشه.(بعدا نگید صلح خواه یه چیزی گفت که تو اینترنت پیدا نمیشه، هر چیزی قرار نیست تو اینترنت پیدا بشه).

موفق باشید.

salman_looloo
شنبه 20 خرداد 1391, 09:44 صبح
با سلام و خسته نباشد می خواستم اگر ممکنه در مورد نحوه ارتباط C# به وسیله پورت RS232 با PLC ها رو و دریافت و ارسال اطلاعات از اونها رو بگید . من خودم در این مورد خیلی جستجو کردم البته هنوز دست از جستجو بر نداشتم و خواستم اگر که کسی اینجا با همچین پروژه هایی سرو کار داشته ، بنده رو راهنمایی کنه. ممنون و تشکر .

Esmail Solhkhah
شنبه 20 خرداد 1391, 10:59 صبح
با سلام و خسته نباشد می خواستم اگر ممکنه در مورد نحوه ارتباط C#‎‎ به وسیله پورت RS232 با PLC ها رو و دریافت و ارسال اطلاعات از اونها رو بگید . من خودم در این مورد خیلی جستجو کردم البته هنوز دست از جستجو بر نداشتم و خواستم اگر که کسی اینجا با همچین پروژه هایی سرو کار داشته ، بنده رو راهنمایی کنه. ممنون و تشکر . نسبت به کارخانه سازنده فرق داره (بحث RS232 ثابته ولی نحوه ارسال و دریافت پارامترها مثلا اینکه چه ریجستری رو باید چطور و از چه آدرسی بخونید فرق میکنه )

باید منوال PLC مربوطه رو مطالعه کنید ، مثلا برای PLC های Omron اون قدیما یادمه یه اکتیوکس نصب میکرد که تو منوالش هم کامل توضیحش داده بود.

موفق باشید.

salman_looloo
یک شنبه 21 خرداد 1391, 10:43 صبح
سلام می خواستم بدونم آموزشی در مورد پیاده سازی MODBUS سراغ ندارید ؟؟؟ ممنونم.

Esmail Solhkhah
یک شنبه 21 خرداد 1391, 11:48 صبح
سلام می خواستم بدونم آموزشی در مورد پیاده سازی MODBUS سراغ ندارید ؟؟؟ ممنونم.

پیاده سازی ؟؟؟ !!! :متفکر:

http://www.modbus.org/tech.php

بحث رو ببرید به تالار مخصوص خودش (http://barnamenevis.org/forumdisplay.php?119-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-Embedded) بهتر جواب میگیرید.

موفق باشید.

vaheeed
شنبه 25 شهریور 1391, 13:50 عصر
به نظر من جاش اینجا هست خوب مربوط به c# هم هست و برنامه نویسی پایه نیست!!
منم مشکلم همینه میخوام با c# برنامه واسه plc بنویسم در واقع میخوام یه سری اطلاعات از کامپیوتر به plc بفرستم حالا چه پورتی رو باز کنم و ... نمیدونم اگه کسی کار کرده لطفا ما رو هم بی نصیب نذاره ممنون

vaheeed
شنبه 25 شهریور 1391, 14:00 عصر
من این مطلب رو پیدا کردم ولی برای شروعش چون تا حالا کار نکردم با سخت افزار نمیدونم باید چیکار کنم؟!!! این گفته با چه فرمتی ارسال میکنیم و...

vaheeed
شنبه 25 شهریور 1391, 15:21 عصر
چیزی که تا حالا فهمیدم اول باید کتابخانه
using System.IO.Ports;
رو صدا بزنیم .(چون plc با پورت com به کامپیوتر وصل میشه ) بعد هم کد زیر پورت porttest رو میسازه و مقادیره خاصی که رو باید بهش داد رو ست میکنه که برای مطلبی که من گرفتم به صورت زیر نوشته میشه. وبعد هم دستور write پیغام رو به plc میفرسته.
SerialPort porttest = new SerialPort();
if (porttest.IsOpen == true)
porttest.Close();
porttest.BaudRate = 9600;
porttest.DataBits = 7;
porttest.Parity = Parity.Even;
porttest.StopBits = StopBits.One;
porttest.PortName = "COM1";
porttest.Open();
msg = ":01 03 06 14 00 08 DA CR LF";
porttest.Write(msg);

vaheeed
شنبه 25 شهریور 1391, 15:46 عصر
این رشته که فرستادم به plc چندتا از خونه های حافظه plc رو میخونه و plc اطلاعات اون رو روی پورت com1 دوباره واسه کامپیوتر میفرسته حالا کسی میدونه با چه دستوری میشه این اطلاعات رو گرفت؟؟ مثلا put , recive؟؟

vaheeed
شنبه 25 شهریور 1391, 16:28 عصر
با دستور portname.readمیشه خوند و البته چندتا هست گویا read , readln , readexist , readchar و ... کسی تفاوتش رومیدونه ؟؟

vaheeed
دوشنبه 27 شهریور 1391, 13:53 عصر
کسی هست که با c# برای plc برنامه نوشته باشه و از plcجواب گرفته باشه هر چند فقط یه برنامه ساده باشه ؟؟؟

salman_looloo
شنبه 29 شهریور 1393, 14:58 عصر
کسی هست که با C#‎‎ برای plc برنامه نوشته باشه و از plcجواب گرفته باشه هر چند فقط یه برنامه ساده باشه ؟؟؟

سلام دوست عزیز من خودم یه برنامه با C# نوشتم که می تونی رجیستر بخونی و بنویسی و همین طوری مموری بخونی و بنویسی. Frameworke 2 به بالا جواب می ده.

khalilifar
چهارشنبه 16 مهر 1393, 14:32 عصر
سلام
من در مورد PLC یک سری اطلاعات می خوام بابت این آموزش اگر کسی حرفه ای بلد باشه پول هم میدم
می خواستم بدونم آیا امکانش هست که یه برنامه به PLC بدیم که PLC به صورت خودکار اطلاعات قطعاتی که کنترل می کنه در صورتی که به اینترنت وصل باشه به صورت متد پست بفرسته به یک وب پیج ؟

توضیحات بیشتر که دقیقا من چی می خوام
هدف نهایی : فرض کنید یک تعداد لامپ و یک سنسور حرارت به یک قطعه وصله و این قطعه با پورت شبکه و به شبکه و اینترنت وصله
چیزهایی که من میخوام اینه
1- قطعه یک ایپی داشته باشه مثل 192.168.1.50
2- وقتی این ایپی داخل شبکه رو وارد می کنیم یک پیج باز بشه و رمز ورود بخواد
3- بعد از وارد شدن به صفحه وضعیت قظعات ( روشن یا خاموش بودن و . . . ) رو بشه دید و تغییر داد ( دقیقا مثل وقتی که با رفتن به آدرس 192.168.1.1 و دادن یوزر و پس وصل میشیم به صفحه تنظیمات مودم ADSL و می تونیم تنطیمات انجام بدیم)
تا اینجا خودش یک پروژه هست و تا اینجا رو با استفاده از قطعه ای به نام Fatek PLC از سایت http://www.fatek.com/en و نرم افزار easy web designer این شرکت انجام می دم تنها مشکل اینه که می خوام ظاهر صفحه رو خودم طراحی کنم پون خیلی زشته در اصل می خوام بتونم کار نرم افزار easy web desinger رو خودم انجام بدم یعنی صفحه رو طراحی کنم و دانلودش کنم تو فطعه.

---------------------------------------------------

چیز دیگه ای که می خوام یک نرم افزار دسکتاپ هست که به صورت مستقیم با قطعه ارتباط برقرار کنه ترجیحاً با C# نوشته شده باشه و بتونه وضعیت قطعه رو چک کنه و بهش دستور بده. این برای موقعی هست که می خوای به طور مثال 10 تا قطعه ی PLC رو همزمان کنترل کنی

در هر صورت اگر کسی در این زمینه اطلاعات کامل داره مخصوصا با قطعات Fatek یا اگر قطعه ی ارزون تر و بهتری می شناسه هزینه مشاوره و راهنمایی شما رو هم پرداخت می کنم.