فهرست مطالب:
- مرحله 1: مقدمه
- مرحله 2: شرح تابلو واقعی:
- مرحله 3: برنامه دنبال کردن چه دنباله ای است؟ SFC و نمودار دولتی
- مرحله 4: برنامه نویسی با Arduino IDE 1.6.X
- مرحله 5: برنامه نویسی با YAKINDU
- مرحله 6: با AdvancedHMI بر آن نظارت کنید
- مرحله 7: با Unigo Evolution بر آن نظارت کنید
- مرحله 8: نتیجه گیری
تصویری: Arduino PLC 32 I/O+State Machine+SCADA یا HMI: 8 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
روشهای زیادی برای برنامه ریزی ، کنترل و نظارت بر سیستم صنعتی با آردوینو.
مرحله 1: مقدمه
در این قسمت آموزشی به موارد زیر می پردازم:
2 روش برای برنامه نویسی آردوینو متصل به نوعی دستگاه شامل دکمه های پسی ، کلیدها و LED ها
1- اولین روش با arduino 1.6.x IDE با استفاده از کتابخانه SM (State State)
2-روش دوم با استفاده از Yakindu ، یک پروژه ویرایشگر digram دولتی که با محیط گرفتگی ایجاد شده است: شما ماشین حالت خود را ترسیم می کنید و کد را برای انتقال به برد Arduino تولید می کند.
در ارتباط با
2 روش برای نظارت بر دستگاه با استفاده از SCADA یا HMI مجازی:
1- تحت اندروید 4.4: Unigo Evolution ، یک برنامه رایگان بدون کد تنها مواردی برای قرار دادن روی صفحه و modbus TCP
2-زیر Windows 8: یک پروژه رایگان AdvancedHMI که به Visual Studio 2013 نیاز دارد ، بدون کد و مواردی برای قرار دادن روی صفحه و modbus TCP
بنابراین توالی های عملکردی خود را با SFC (در اتوماسیون: نمودار عملکردهای متوالی) ترسیم می کنید ، آن را در نمودار حالت (بسیار نزدیکتر) ترجمه می کنید ، آن را برنامه ریزی می کنید (Yakindu یا Arduino SM lib) و سپس با SCADA (Unigo) بر آن نظارت می کنید. android یا AdvancedHMI Windows).
مرحله 2: شرح تابلو واقعی:
شماتیک:
من از یک برد Arduino UNO استفاده کردم ، نه یک کلون ، زیرا Yakindu نمی تواند هیچ برنامه ای را به هیچ کلونی فقط UNO و برد مگا ارسال کند.
من می توانم 32 ورودی/خروجی دیجیتال با 2 گسترش دهنده SPI مانند MCP23S17 (2x16 ورودی/خروجی) و 2 خروجی آنالوگ دیگر 12 بیتی (آنالوگ واقعی بدون فیلتر PWM) با 2 SPI DAC مانند MCP4921 داشته باشم.
من سپر اترنت را ترسیم نکردم اما شما برای نظارت بر سیستم خود به آن نیاز دارید: بنابراین پین های 4 ، 10 ، 11 ، 12 و 13 نباید برای موارد دیگر استفاده شوند و بدیهی است که پین 0 و 1 فقط برای RX TX است.
عکسهای واقعی تخته:
8 دکمه لازم است:
- 4 برای حالت دستی: یکی برای نور در هر led
- 1 برای توقف اضطراری: اگر تحت فشار قرار گرفتید ، در حالت عادی هستید ، رها کنید: اضطراری
- 1 برای حالت خودکار که چراغ متوالی را روشن و خاموش می کند ، در صورت انتشار: حالت دستی ، برای کنترل هر رهبری بدون دنباله
- 1 برای RUN در حالت خودکار
- 1 برای STOP در حالت خودکار
4 منجر به شبیه سازی هر چیزی که می خواهید (رله ، سوپاپ …)
من نام هر یک از دکمه ها و led هایی را که در برنامه ها استفاده کردم می دهم.
مرحله 3: برنامه دنبال کردن چه دنباله ای است؟ SFC و نمودار دولتی
من یک SFC بسیار ساده برای توصیف آنچه سیستم باید انجام دهد ، تهیه کردم.
3 SFC مورد نیاز است:
- SFCsecu برای ادامه یا خروج از حالت اضطراری ، SFC اصلی است که بقیه را راه اندازی می کند
- دستی SFC توسط SFCsecu راه اندازی شد ، می توانید به حالت خودکار یا حالت دستی برسید
- توقف اجرا SFC ، اسکن و حفظ اگر کسی فشار DCY (RUN) یا FCY (STOP) را انجام داد
این SFC در شبه چند منظوره اجرا می شود.
سپس آنها را در نمودار حالت ترجمه می کنم:
- یک دستگاه اصلی (اضطراری) 2 برده دیگر را راه اندازی می کند
- برده ای برای اسکن و حفظ DCY و FCY
- یک برده برای رسیدن به حالت خودکار یا دستی
نکته دیگر: هنگامی که DCY را فشار می دهید ، می توانید خروجی آنالوگ را با یک تریمر مجازی روی scada هدایت کنید ، هنگامی که FCY را فشار می دهید ، خروجی های آنالوگ به 0V کاهش می یابد.
نمودار حالت به شما در برنامه نویسی آردوینو کمک می کند.
مرحله 4: برنامه نویسی با Arduino IDE 1.6. X
من کد را برای ترجمه نمودارهای قبلی به شما می دهم. من به 3 عضو اضافی نیاز داشتم که به شما نیز می دهم.
شما همچنین به جدول آدرس نیاز دارید تا متوجه شوید از چه پین هایی برای چه چیزی استفاده می کنید و modbus آدرس های مربوطه را ثبت می کند.
مرحله 5: برنامه نویسی با YAKINDU
ابتدا نسخه رایگان پروژه 2.9 (نه حرفه ای) را در این قسمت بارگیری کنید:
www.itemis.com/fa/yakindu/state-machine/
سپس آموزش ارائه شده را دنبال کنید: برخی تغییرات نسبت به آخرین باری که برنامه را بارگیری کردم وجود دارد ، فقط برای تکمیل نام قسمت های مختلف فایل "xxxconnector.cpp".
عکسها: ترسیم ماشین حالت ، نمای پوشه در پروژه و کتابخانه های وارد شده آن از arduino ، نمای "xxxconnector.cpp" برای ایجاد پیوند بین انتقال/حالتها و ورودیها/خروجیهای واقعی هیئت مدیره یا SCADA ها
من پروژه ای را به شما می دهم که فقط باید در فضای کاری ایجاد شده توسط خود وارد کنید.
همچنین ارائه شده است: lib های مورد نیاز برای وارد کردن به Yakindu و برخی تغییرات برای انجام در آموزش توضیح داده شده است.
مرحله 6: با AdvancedHMI بر آن نظارت کنید
ابتدا Visual studio Express 2013 یا بیشتر را در این قسمت بارگیری کنید:
www.microsoft.com/fr-fr/download/details.a…
سپس پروژه AdvancedHMI را در زیر بارگیری کنید:
sourceforge.net/projects/advancedhmi/؟SetF…
من تصاویری از SCADA که من کشیده ام (با آدرسهای مربوط به ثبت modbus مربوطه) و بدون کد ، برنامه اصلاح شده و یک آموزش مختصر به شما ارائه می دهم.
مرحله 7: با Unigo Evolution بر آن نظارت کنید
به اندروید 4.2 (کیت کات) و صفحه نمایش 7 اینچی نیاز دارید.
من عکسهای SCADA که من کشیده ام (و آدرسهای مربوط به modbus در آن ثبت می کند) و یک آموزش مختصر برای استفاده از Unigo ، بدون نیاز به کد ، یک پوشه حاوی تصاویر چراغ های صنعتی و دکمه هایی است که در پوشه UniGOPictures ایجاد شده در داخلی شما قرار داده شده است. SD توسط برنامه ، و پروژه.
مرحله 8: نتیجه گیری
جمع آوری 2 روش مختلف برنامه نویسی و 2 روش مختلف نظارت وظیفه بزرگی بود. در ابتدا دشوار است که از مهارتهای هر یک استفاده کنید. اما در حال حاضر کار می کند و هنگامی که فهمیده شد ، اکنون می توانید سیستم های پیچیده تری را کنترل کنید.
با تشکر فراوان از آموزشهای فراوان در سراسر جهان ، از آرچی (AdvancedHMI) ، از RenéB2 (یاکیندو) و از مایکل آندرسون (Unigo Evolution) و از توسعه دهندگان کتابخانه های آردوینو که به من اجازه می دهند چنین پروژه ای "طوفان فناوری" را انجام دهم.
Sans eux j'aurais peut être souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.
آموزش های شاد