Оглавление:

ПЛК Arduino 32 ввода-вывода + конечный автомат + SCADA или HMI: 8 шагов
ПЛК Arduino 32 ввода-вывода + конечный автомат + SCADA или HMI: 8 шагов

Видео: ПЛК Arduino 32 ввода-вывода + конечный автомат + SCADA или HMI: 8 шагов

Видео: ПЛК Arduino 32 ввода-вывода + конечный автомат + SCADA или HMI: 8 шагов
Видео: Программирование ПЛК (программируемых логических контроллеров). Введение. 2024, Ноябрь
Anonim
ПЛК Arduino 32 ввода / вывода + конечный автомат + SCADA или HMI
ПЛК Arduino 32 ввода / вывода + конечный автомат + SCADA или HMI

Множество способов программирования, управления и наблюдения за промышленной системой с помощью Arduino.

Шаг 1. Введение

Вступление
Вступление

В этом руководстве я буду иметь дело с:

2 метода программирования Arduino, подключенного к какой-то машине, включая кнопки, переключатели и светодиоды

1- Первый метод с IDE arduino 1.6.x с использованием библиотеки SM (State Machine)

2-Второй метод с использованием Yakindu, проекта редактора биграмм состояний, созданного в среде eclipse: вы рисуете конечный автомат, и он генерирует код для передачи на плату Arduino.

В связи с

2 способа наблюдения за машиной с запущенной SCADA или виртуальным HMI:

1- под Android 4.4: Unigo Evolution, бесплатное приложение без кода, только элементы для размещения на экране и Modbus TCP

2-под Windows 8: бесплатный проект AdvancedHMI, которому требуется Visual Studio 2013, без кода и элементов для размещения на экране и Modbus TCP.

Итак, вы рисуете свои функциональные последовательности с помощью SFC (в автоматизации: Sequential Function Chart), вы переводите их в диаграмму состояний (очень близко), вы программируете ее (Yakindu или Arduino SM lib), а затем контролируете ее с помощью SCADA (Unigo android или AdvancedHMI Windows).

Шаг 2: Описание реальной доски:

Описание реальной доски
Описание реальной доски
Описание реальной доски
Описание реальной доски

Схема:

Я использовал плату Arduino UNO, а не клон, потому что Yakindu не может отправить программу на любой клон, только плату UNO и Mega.

Я мог бы иметь 32 цифровых входа / выхода с двумя расширителями SPI, такими как MCP23S17 (2x16 входов / выходов), и еще 2 аналоговых 12-битных выхода (реальный аналоговый без фильтрации PWM) с 2 SPI DAC, например MCP4921.

Я не рисовал экран Ethernet, но он нужен вам для контроля вашей системы: поэтому контакты 4, 10, 11, 12 и 13 не должны использоваться ни для чего другого, и, очевидно, контакты 0 и 1 только для RX TX.

Настоящие фото доски:

Необходимо 8 кнопок:

  • 4 для ручного режима: по одному для каждого светодиода
  • 1 для аварийного останова: при нажатии вы находитесь в нормальном режиме, отпускание: аварийный
  • 1 для автоматического режима, который запускает последовательное включение и выключение каждого светодиода, если отпускается: ручной режим, для управления каждым светодиодом без последовательности
  • 1 для РАБОТА в автоматическом режиме
  • 1 для СТОП в автоматическом режиме

4 светодиода для моделирования всего, что вы хотите (реле, клапан…)

Я даю название каждой кнопке и светодиоду, которые я использовал в программах.

Шаг 3. Какую последовательность программировать? SFC и диаграмма состояний

Какую последовательность программировать? SFC и диаграмма состояний
Какую последовательность программировать? SFC и диаграмма состояний
Какую последовательность программировать? SFC и диаграмма состояний
Какую последовательность программировать? SFC и диаграмма состояний

Я сделал очень простую SFC, чтобы описать, что должна делать система.

3 SFC необходимы:

  • SFCsecu для перехода в аварийный режим или выхода из него, это главный SFC, который запускает другие
  • Автоматическое руководство SFC, запущенное SFCsecu, вы можете перейти в автоматический режим или в ручной режим
  • Остановка работы SFC, сканирование и запоминание, если кто-то нажал DCY (RUN) или FCY (STOP)

Эти SFC работают в псевдо-многозадачном режиме.

Затем перевожу их в диаграмму состояний:

  • главная машина (Emergency) запускает 2 других подчиненных
  • ведомое устройство для сканирования и запоминания DCY и FCY
  • раб для перехода в автоматический или ручной режим

Еще одна вещь: когда вы нажимаете DCY, вы можете управлять аналоговым выходом с виртуальным тримером на scada, когда вы нажимаете FCY, аналоговые выходы падают до 0 В.

Диаграмма состояний помогает вам программировать Arduino.

Шаг 4: Программирование с помощью Arduino IDE 1.6. X

Программирование с помощью Arduino IDE 1.6. X
Программирование с помощью Arduino IDE 1.6. X
Программирование с помощью Arduino IDE 1.6. X
Программирование с помощью Arduino IDE 1.6. X

Я даю вам код для перевода предыдущих диаграмм. Мне потребовались 3 дополнительных библиотеки, которые я вам тоже даю.

Вам также понадобится таблица адресов, чтобы понять, какие выводы вы используете для чего, и Modbus регистрирует соответствующие адреса.

Шаг 5: Программирование с YAKINDU

Программирование с YAKINDU
Программирование с YAKINDU
Программирование с YAKINDU
Программирование с YAKINDU
Программирование с YAKINDU
Программирование с YAKINDU

Сначала загрузите бесплатную версию проекта 2.9 (не pro) на:

www.itemis.com/en/yakindu/state-machine/

Затем следуйте прилагаемому руководству: есть некоторые изменения по сравнению с последним разом, когда я загружал программу, только для завершения имен различных частей файла "xxxconnector.cpp".

На фотографиях: чертеж конечного автомата, вид папки в проекте и ее импортированных библиотек из Arduino, вид «xxxconnector.cpp» для установления связи между переходами / состояниями и реальными входами / выходами платы или SCADA.

Я даю вам проект, который вам просто нужно будет импортировать в ваше автоматически созданное рабочее пространство.

Также предоставляется: необходимые библиотеки для импорта в Yakindu и некоторые изменения, которые необходимо сделать, описанные в руководстве.

Шаг 6: Контролируйте это с помощью AdvancedHMI

Контролируйте это с помощью AdvancedHMI
Контролируйте это с помощью AdvancedHMI

Сначала загрузите Visual Studio Express 2013 или более позднюю версию по адресу:

www.microsoft.com/fr-fr/download/details.a…

Затем загрузите проект AdvancedHMI на:

sourceforge.net/projects/advancedhmi/?SetF…

Я даю вам изображения SCADA, которые я нарисовал (с соответствующими адресами регистров Modbus) и запрограммировал без кода, измененный проект и краткое руководство.

Шаг 7. Контролируйте это с помощью Unigo Evolution

Контролируйте это с помощью Unigo Evolution
Контролируйте это с помощью Unigo Evolution

Вам понадобится android devide с android 4.4 (kit kat) и экраном 7 дюймов.

Я даю вам изображения SCADA, которые я нарисовал (и соответствующие адреса регистров Modbus), и краткое руководство по использованию Unigo, код не требуется, папку, содержащую изображения промышленных фонарей и кнопок, которые можно поместить в папку UniGOPictures, созданную на вашем внутреннем устройстве. SD приложением и проектом.

Шаг 8: Заключение

Собрать воедино 2 разных способа программирования и 2 разных способа супервизии было огромной задачей. Поначалу трудно использовать все навыки. Но теперь это работает, и однажды вы поняли, что теперь вы можете управлять более сложными системами.

Большое спасибо множеству обучающих программ по всему миру, Арчи (AdvancedHMI), RenéB2 (Yakindu) и Микаэлю Андерссону (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.

Счастливые инструкции.