Ельцина»
Институт новых материалов и технологий
Кафедра электронного машиностроения
Подпись Дата
Преподаватель_____________________________________________Тихонов И.Н.
Студент____________________________________________________Сопова Е.Е.
Группа__________________________________________________НМТМ-190702
Екатеринбург
2020
1. Исходные данные работы
Задача: резистор эмулирует положение каретки. В среднем положении
тормоз отключен. При отклонении от среднего положения включается
соответственно левый (Л1) или правый (Л2) тормоз с силой (Л4),
пропорциональной отклонению от среднего положения. При достижении
положений, отличающихся от крайних на 10%, тормоз работает на 100% и
мигает аварийная лампа Л3. Кнопка включает тормоз на 100% на 3 с. В
интерфейсе SCADA-системе можно принудительно включить и отключить
индикацию любой Л1, Л2 и Л3, включить и блокировать действие кнопки,
задать % ШИМ.
Перечень используемого ПО – на ПК установлена SCADA-система
(Simple-SCADA), Modbus Universal MasterOPC Server, FLProg и Arduino IDE.
Перечень используемых электронных элементов: контроллер Arduino
Uno, кнопка, переменный резистор номиналом 10 kОм, три разноцветных и
один белый светодиоды с Imax не менее 20мА, ограничивающие резисторы
номиналом 200 Ом в количестве 5 штук.
2. Порядок работы
Arduino была подключена к ПК с помощью прямого соединения USB-
кабеля. Для проверки работоспособности (рис.1) и нахождения значения
СОМ-порта (рис. 2) было открыто ПО - Arduino IDE.
устройствеТип данных в
Тип данных на сервере
Тип доступа
Примечание
Устройство
Имя тега
Регион
Адрес
№
RW
2 L2 С 1
3 L3 С 2 работы светодиодов
bool
bool Адрес для передачи состояния
RO
4 Button С 3
работы кнопки
Uno
6 Resistor 5
R резистора
Value10 H Адрес для передачи значения ШИМ
7 13
0 R в процентном соотношении
Адрес для передачи значения ручной
8 Button С 6
работы кнопки
bool
bool
9 Resistor С 7
работы резистора
10 Value 8
App
R в процентном соотношении
11 H1 С 9
Адрес для передачи значения ручной
12 H2 С 10
работы светодиодов
bool
bool
13 H3 С 11
Адрес для передачи значения работы
14 L3 С 12
L3
Затем конфигурация созданного сервера была сохранена, а сервер был
запущен после написания и загрузки ПО на контроллер и создания SCADA
системы.
На следующем шаге было создано и загружено ПО на контроллер. Для
этого был создан новый проект в FLProg (рис. 5).
Рисунок 5 – Выбор начальных настроек проекта
В дереве проекта были добавлены выходы, свойства которых можно
посмотреть в таблице2.
Таблица 2 – Свойства входов/выходов контроллера
№ Имя Тип Номер контакта Состояние на старте
1 Resistor Аналоговый А0
2 Button Цифровой 2
3 L1 Цифровой 3
Отключено
4 L2 Цифровой 5
5 L3 Цифровой 4
6 L4 Аналоговый ~6
В разделе коммутации были выбраны подключение через Modbus Slave
– RTU и физические параметры у СОМ-порта.
Для связи с ОРС сервером были добавлены переменные в соответствие
с таблицей 1 (рис. 6).
Рисунок 6 – Настройка параметров Led
После этого на области визуального программирования была создана
схема, описывающая принцип работы контроллера.
Элемента Switch служит для передачи на выход одного из аналоговых
сигналов, подаваемых на вход "0" или "1" в зависимости от логического
уровня на входе "S". С помощью этого элемента происходили выборы приема
значений резистора и работы светодиода. На рисунке 7 показан сценарий
приема значений резистора. Resistor принимает значения с резистора,
Arduino.App.Value принимает значения, которые задает пользователь в
SCADA-системе. Arduino.App.Resistor принимает значение работы
переключателя, задаваемое пользователем. При выборе ручного режима
система отправляет на адрес Arduino.App.Resistor значение «True», что
позволяет пользователю задать свое значение в системе вручную. Если
установлен автоматический режим, значение принимается с резистора. Так
как на аналоговых портах разрядность 10 бит (210 = 1024 состояний), а на
цифровых 8 бит (28 = 255 состояний), то при получении значения с резистора
необходимо делить его на 4. Это действие было выполнено с помощью
элемента DIV. На I1 подается пришедшее значение с резистора, а на I2
помещена константа 4. Так же на этом рисунке показано, что новое значение
с резистора передается по адресу Arduino.Uno.Resistor.
Рисунок 7 – Режим выбора приема значений резистора
На рисунке 8 показана работа для адреса L4. Последний переключатель
определяет условие достижения каретки 10% от крайних положений или
нажатии кнопки. Если условие является правдой, то на выход подается
значение 255 (максимальное значение работы светодиода), а если ложью, то
на выход подается значение со второго переключателя. Второй
переключатель определяет отклонение каретки вправо. Если условие правда,
то на выход подается значение работы четвертого светодиода, а если ложь, то
подается значение с первого переключателя. На вход S первого
переключателя подается значение при условии отклонения каретки влево.
Если это значение равно правде, то режим работы такой же, как и у
предыдущего переключателя, а если ложь, то на выход подается 0.