
Pr_9
.docxМинистерство науки и высшего образования Российской Федерации
Федеральное государственное автономное образовательное учреждение высшего образования
«Национальный исследовательский Томский политехнический Университет»
Инженерная школа энергетики
Отделение электроэнергетики и электротехники
Направление: 13.03.02 Электроэнергетика и электротехника
Практическая работа №9
Проектирование программы движения механизма в среде CoDeSys
По дисциплине «Микропроцессорные средства систем автоматики, управления и диагностики»
Выполнили: :
|
|
||||
студент гр. 5А06 |
|
|
Сергеев А.С. |
|
|
|
|
|
|
|
|
Проверил:
|
|
||||
К.т.н, доцент |
|
|
Гирник А.С. |
|
|
|
|
|
|
|
|
Томск – 2023
Цель: Освоить принципы программирования процесса реостатного реверсивного запуска двигателя постоянного тока.
Порядок работы
Создать программу управления на базе программных языков CFC, FBD и ST (среда CoDeSys).
Апробация созданной системы в среде CoDeSys.
CoDeSys - это современный инструмент для программирования контроллеров (CoDeSys образуется от слов Controllers Development System) на языках стандарта МЭК 61131-3. Используемые редакторы и отладочные средства базируются на широко известных и хорошо себя зарекомендовавших принципах, знакомых по другим популярным средам профессионального программирования. Для привязки к конкретному ПЛК требуется адаптация, касающаяся низкоуровневых ресурсов распределение памяти, интерфейс связи и драйверы ввода-вывода.
В общей модульной схеме программы следующие переменные:
Переменные кнопочного управления, привязанные к входам контроллера с помощью ключевых операторов «AT %IX0.0…0.2», справа в круглых скобках указано к каким именно входам сделана привязка:
start_straight – пуск вперёд;
stop – остановка;
start_back – пуск в обратном направлении.
Переменные управления контакторами прямого или обратного пуска, которые привязаны к дискретным выходам контроллера через ключевой оператор «AT %QX0.0…0.1»:
work_straight;
work_back.
Переменные управления контакторами шунтирования секций реостата, которые привязаны к дискретным выходам контроллера через ключевой оператор «AT %QX0.2…0.4»:
R_1.
R_2.
R_3.
Также в общей схеме есть следующие модули:
Модуль пуска двигателя в прямом или обратном направлениях «Start_manager», который использует внутреннюю программу функционального блока «starter».
Модуль переключения ступеней реостата «Switcher», который использует внутреннюю программу функционального блока «reostat».
Общая модульная схема программы приведена на рисунке 1.
Рисунок 1 – Общая модульная схема программы на языке CFC
Дополнительные функциональные блоки:
Функциональный блок запуска двигателя показан на рисунке 2.
У данного функционального блока есть следующие ключевые особенности работы:
Функциональный блок состоит из 2-х похожих ветвей управления, взаимно блокирующих друг друга через выходные переменные «straight_output» и «back_output» на инверсный вход соседней ветви, чтобы исключить одновременный запуск этих двух ветвей.
Реализован само-подхват через обратную связь по переменной straight_output (back_output) для того, чтобы ветвь продолжала быть в активном состоянии после отпускания управляющей кнопки (после пропадания сигнала TRUE на входе straight_input или back_input).
Рисунок 2 – Функциональный блок запуска двигателя
Функциональный блок переключения ступеней реостата. Блок показан на рисунке 3.
У данного функционального блока есть следующие ключевые особенности работы:
Данный функциональный блок включает в себя ещё несколько функциональных блоков «delay» 3-го уровня вложенности по отношению к корневой программе PLC_PRG.
Внутренний функциональные блоки «delay» с названиями «step1», «step2» и «step3» запускают в активное состояние друг друга по очереди. При этом с выхода каждого из этих блоков по очереди поступают логические сигналы на выходные переменные «reostat_1», «reostat_2» и «reostat_3».
Рисунок 3 – Функциональный блок переключения ступеней реостата
Функциональный блок временной задержки, который показан на рисунке 4.
У данного функционального блока есть следующие ключевые особенности работы:
Пока процесс задержки времени ещё не запущен через входную переменную «start_time», текущее время процессора на каждом его рабочем такте записывается в переменную «time1». И далее, после запуска, когда входная переменная «start_time» получила значение TRUE, начинается аналогичная запись текущего времени в переменную «time2», но запись нового времени в «time1» прекращается и здесь останется последнее значение, т.е. как бы «заморозится». Теперь будет происходить вычисление разности между «time2» и «time1», и когда она достигнет минимального значения срабатывания «interval_init», на выход «output» блока задержки будет подано значение TRUE.
Переменная «interval_init» является глобальной в проекте и задана в области глобальных переменных.
Рисунок 4 – Функциональный блок временной задержки
Проверка работоспособности показана на рисунках 5, 6, 7.
Рисунок 5 – Проверка работоспособности программы
Рисунок 6 – Проверка работоспособности программы
Рисунок 7 – Проверка работоспособности программы
Вывод: в ходе проделанной работы ознакомились с основой программирования в среде CoDeSys и разработали программный алгоритм управления контакторной схемы электропривода. В ходе проверки в режиме симуляции и на стенде с кнопками была установлена работоспособность созданной программы.