Съдържание:
- Стъпка 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 07:53
Много начини за програмиране, управление и надзор на индустриална система с arduino.
Стъпка 1: Въведение
В тази инструкция ще се справя с:
2 метода за програмиране на arduino, свързан с някаква машина, включително бутони, ключове и светодиоди
1- Първият метод с IDE на arduino 1.6.x, използващ SM библиотека (State Machine)
2-Вторият метод, използващ Yakindu, проект за редактор на държавни диаграми, създаден с околната среда за затъмнение: вие рисувате вашата машина на състоянието и тя генерира кода за прехвърляне към дъската на Arduino.
Във връзка с
2 начина за наблюдение на машината с SCADA или виртуален HMI:
1- под Android 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 и Mega борда.
Можех да имам 32 цифрови входа/изхода с 2 SPI разширител като MCP23S17 (2x16 I/O) и още 2 аналогови 12 -битови изхода (реален аналог, не PWM филтриран) с 2 SPI DAC като MCP4921.
Не нарисувах Ethernet щита, но имате нужда от него, за да контролирате вашата система: така че щифтове 4, 10, 11, 12 и 13 не трябва да се използват за нищо друго и очевидно пин 0 и 1 само за RX TX.
Истинските снимки на дъската:
Необходими са 8 бутона:
- 4 за ръчен режим: по един за светлина на всеки светодиод
- 1 за аварийно спиране: ако бъде натиснат, вие сте в нормален режим, освободете: авариен
- 1 за автоматичен режим, който стартира последователното включване и изключване на всеки светодиод, ако се освободи: ръчен режим, за управление на всеки светодиод без последователност
- 1 за RUN в автоматичен режим
- 1 за СТОП в автоматичен режим
4 доведе до симулиране на каквото искате (реле, вентил …)
Давам името на всеки бутон и светодиод, който използвах в програмите.
Стъпка 3: Каква последователност да програмирате? SFC и диаграма на състоянието
Направих много прост SFC, за да опиша какво трябва да прави системата.
Необходими са 3 SFC:
- SFCsecu за включване или изключване на аварийния режим, главният SFC стартира другите
- Автоматичното ръководство на SFC, стартирано от SFCsecu, можете да достигнете до автоматичния режим или ръчния режим
- SFC run stop, сканиране и запаметяване, ако някой е натиснал DCY (RUN) или FCY (STOP)
Тези SFC работят в псевдо многозадачност.
След това ги превеждам в диаграма на състоянието:
- главна машина (Аварийна), пускаща 2 други подчинени
- подчинен за сканиране и запаметяване на DCY и FCY
- роб да достигне автоматичния или ръчния режим
Друго нещо: когато натиснете DCY, можете да управлявате аналоговия изход с виртуален тример на скада, когато натиснете FCY, аналоговите изходи падат до 0V.
Диаграмата на състоянието ви помага да програмирате arduino.
Стъпка 4: Програмиране с Arduino IDE 1.6. X
Давам ви кода за превод на предишните диаграми. Имах нужда от 3 допълнителни корема, които давам и на теб.
Ще ви е необходима и таблицата с адреси, за да разберете какви пинове използвате за какво и modbus регистрира съответните адреси.
Стъпка 5: Програмиране с YAKINDU
Първо изтеглете безплатната версия на проекта 2.9 (не професионална) на:
www.itemis.com/en/yakindu/state-machine/
След това следвайте предоставения урок: има някои промени в сравнение с последния път, когато изтеглях програмата, само за да завърши имената на различни части от файла "xxxconnector.cpp".
Снимките: чертежът на машината на състоянието, изгледът на папката в проекта и неговите импортирани библиотеки от arduino, изгледът на "xxxconnector.cpp", за да се направи връзка между преходите/състоянията и реалните входове/изходи на борда или на SCADA.
Давам ви проекта, който просто ще трябва да импортирате във вашето автоматично създадено работно пространство.
Осигурено също: необходимите libs за импортиране в 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
Нуждаете се от Android devide с android 4.4 (kit kat) и 7 -инчов екран.
Предоставям ви снимките на SCADA, която нарисувах (и съответните адреси на регистрите на modbus) и кратък урок за използване на Unigo, не е необходим код, папка, която съдържа снимки на индустриални светлини и бутони, които да поставите в папката UniGOPictures, създадена на вашия вътрешен SD от приложението и проекта.
Стъпка 8: Заключение
Беше огромна задача да се съберат 2 различни начина на програмиране и 2 различни начина на надзор. Трудно е в началото да се използват за всеки начин умения. Но сега работи и след като разбра, вече можете да контролирате по -сложни системи.
Много благодаря на много уроци в цял свят, на Арчи (AdvancedHMI), на RenéB2 (Якинду) и на Микаел Андерсон (Unigo Evolution) и на разработчиците на библиотеки arduino, които ми позволяват да направя такъв проект за „щурм на технологии“.
Sans eux j'aurais peut être souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.
Щастливи инструктажи.