Урок 17
Сигналы LC64 и SEBOL
Продолжаем тему предыдущих уроков - сигналы последовательных блоков.
Задание
Использовать для посылки сигналов Logic Chart и SEBOL (в предыдущем уроке для этой цели использовалась Sequence Table).
Освоить обработку сигналов очереди (Queue Signal).
Решение
-
Открываем редактор схемы управления DR0001 и добавляем функциональный блок LC64 с именем тега SEND_LC:
-
Открываем редактор блока SEND_LC и добавляем логику:
Число 100 у выходного элемента – это значение Параметра 1 (в данном примере он не используется) -
Открываем редактор блока STEP и изменяем атрибуты шага прерывания:
- Запускаем симулятор контроллера
- Переводим блок SEND_LC в режим AUT, а блок STEP – в статус RUN
- Вызываем лицевую панель тега CONDITION1 и имитируем выполнение условия перехода на второй шаг для блока STEP
-
Вызываем лицевую панель тега SEND1 и инициируем посылку сигнала прерывания из блока SEND_LC в блок STEP:
- Останавливаем симулятор контроллера
-
Открываем редактор Common Switch Builder и добавляем два тега:
-
Открываем редактор Annunciator Builder и добавляем два тега:
-
Открываем редактор схемы управления DR0001 и добавляем функциональный блок _SFCSW с именем тега SEND_SEBOL,
а у второго блока изменяем имя тега на STEP1 (так как имя STEP в SEBOL зарезервировано для других целей):
-
Открываем редактор блока SEND_SEBOL, добавляем 4 шага и изменяем атрибуты переходов:
-
Открываем редактор шага 1, декларируем глобальные переменные:
-
Открываем редактор шага 2 и добавляем команду посылки сигнала “INT” в блок STEP1:
-
Открываем редактор шага 3 и добавляем команду посылки сигнала “SIGNAL1” в блок STEP1:
-
Открываем редактор шага 4 и добавляем команду посылки сигнала “SIGNAL2” в блок STEP1:
-
Открываем редактор блока STEP1 и создаём последовательную функциональную схему:
-
Открываем редактор шага 1, декларируем глобальные переменные (Annunciator) и сигналы очереди:
-
Поля атрибутов перехода к шагу 2 оставляем пустыми:
-
Открываем редактор шага 2, добавляем команду ожидания и извлечения сигналов очереди:
-
Изменяем атрибуты перехода к шагу 3:
Шаг 3 выполняется, когда поступает сигнал с именем “SIGNAL1” -
Открываем редактор шага 3 и добавляем команду генерации пользовательского сообщения “SIGNAL1” (%AN0002):
-
Изменяем атрибуты перехода к шагу 4:
Шаг 4 выполняется, когда поступает сигнал с именем “SIGNAL2” -
Открываем редактор шага 4 и добавляем команду генерации пользовательского сообщения “SIGNAL2” (%AN0003):
-
Открываем редактор шага прерывания:
-
Открываем редактор первого шага и добавляем команду генерации пользовательского сообщения «Прерывание» (%AN0001):
- Запускаем симулятор контроллера
-
Открываем окно статуса схемы управления DR0001:
- Переводим блоки SEND_SEBOL и STEP1 в статус RUN
-
Открываем окно статуса блока SEND_SEBOL:
Выполнен шаг 1 -
Открываем окно статуса блока STEP1:
Выполнен шаг 1 -
Вызываем лицевую панель тега SEND1, нажимаем кнопку [ON] – выполняется шаг прерывания,
в котором генерируется пользовательское сообщение – «Прерывание»:
-
Наблюдаем за изменениями в окне статуса блока SEND_SEBOL:
Выполнен шаг 2 -
Наблюдаем за изменениями в окне статуса блока STEP1:
Выполнен шаг прерывания -
Вызываем лицевую панель тега SEND2, нажимаем кнопку [ON] – посылается сигнал “SIGNAL1” в блок STEP1.
Блок STEP1 получает этот сигнал и выполняет шаг 3, в котором генерируется пользовательское сообщение “SIGNAL1”:
-
Наблюдаем за изменениями в окне статуса блока SEND_SEBOL:
Выполнен шаг 3 -
Наблюдаем за изменениями в окне статуса блока STEP1:
Выполнен шаг 3, активен шаг 2 -
Вызываем лицевую панель тега SEND3, нажимаем кнопку [ON] – посылается сигнал “SIGNAL2” в блок STEP1.
Блок STEP1 получает этот сигнал и выполняет шаг 4, в котором генерируется пользовательское сообщение “SIGNAL2”:
-
Наблюдаем за изменениями в окне статуса блока SEND_SEBOL:
Блок выполнил все свои шаги и перешёл в статус STOP -
Наблюдаем за изменениями в окне статуса блока STEP1:
Выполнены все шаги, активен шаг 2 - Переводим блок SEND_SEBOL в статус RUN и повторяем все операции для закрепления.