УПРАЖНЕНИЕ: ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПОСЛЕДОВАТЕЛЬНЫХ ФУНКЦИАНАЛЬНЫХ СХЕМ SFC (SEQUENTIAL FUNCTION CHART)
Цель | После выполнения этого упражнения вы сможете: · Создавать программы, используя язык Sequential Function Chart системы Unity Pro · Использовать режим Text Creation для документирования программы · Использовать PLC – имитатор для тестирования программ · Использовать анимационные таблицы · Загружать программу и изменения программы в контроллеры Quantum и Premium |
Прежде чем вы приступите к выполнению | Внимательно прочитайте каждую инструкцию, перед тем как приступать к выполнению заданий |
Упражнение 1 | Разработайте программу на языке SFC для сверления заготовки и нарезки резьбы | |
Шаг | Действие | |
Запустите программу Unity Pro, если она ещё не запущена. | ||
Откройте проект: < Имя_файла >.STU | ||
Двойным щелчком мыши откройте секцию Drilling_step | ||
Создайте шаг Waiting для того, чтобы запускать основной граф и дожидаться запуска машины (Start)
![]() | ||
Когда переменная Start активирована, тогда шаг Indexing_blocking разрешен для выполнения:
· Активируйте перемещение заготовки
· Переключите двигатель (экземпляр pump_1)
· Зафиксируйте заготовку для того, чтобы обработать её через 1 секунду
![]() | ||
Как только заготовка зафиксирована (т.е. сработал датчик eot_blocking):
· Подводите сверло к заготовке в течение 2с (выход Jack_1_out должен быть равен единице в течении двух секунд)
· Одновременно с этим выполните нарезку резьбы заготовки в течении двух секунд (Jack_2_out истинно)
![]() | ||
Для продолжения сверления и нанесения резьбы:
· Сверлите заготовку в течении двух секунд (Jack_3_out имеет значение 1)
· Остановите нанесение резьбы на 1с (Jack_2_out ложно)
![]() ![]() | ||
Когда сверление и нанесение резьбы завершено:
· Освободите заготовку
· Повторите операции для следующей заготовки
![]() | ||
Запрограммируйте переходы | ||
Запрограммируйте действия, связанные с шагами | ||
Загрузите программу в имитатор или контроллер и проверьте её работу. |
Упражнение 2 | Создайте второй граф для управления температурой | |
Шаг | Действие | |
Создайте начальный шаг: HC_Init | ||
Если температура не в норме, вызовите макрошаг для управления температурой: · Если датчик тепла hot имеет значение 1, то уменьшайте температуру путём присваивания единицы переменной cool в течение 2с · Если датчик тепла cool имеет значение 1, то увеличивайте температуру путём присваивания единицы переменной hot в течение 2с |
ПРЕДЛАГАЕМОЕ РЕШЕНИЕ: ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ SFC
Основной граф | ![]() |
Действия шагов основного графа | |||
Шаг | Действие | Время | |
Waiting | / | ||
Indexing_Blocking | DS t#1s Blocking S Indexing S Pump_1.start | Maximum: t#2s | |
Drilling_approach | S Jack_1_out | Delay: t#2S | |
Drilling | S Jack_3_out | Delay: t#2S | |
End_drilling | R Jack_1_out R Jack_3_out | Delay: t#1S | |
Threading | S Jack_2_out | Delay: t#2S | |
End_threading | R Jack_2_out | Delay: t#1S | |
Unblocking | R Blocking | Delay: t#2S | |
HC_Init | R Temp_ok | Delay: t#2S | |
HC_control | (See macro step) |
Макрошаг: HC_control | ![]() |
Действия шагов макрошага HC_control | |||
Шаг | Действие | Время | |
HC_control_IN | / | ||
Heating | DS t#2s Temp_ok S Cool R Hot | ||
Cooling | DS t#2s Temp_ok S Hot R Cool | ||
HC_control_OUT | / |