Сигналы LC64 и SEBOL

Пошаговый самоучитель CENTUM VP

 


Содержание самоучителя


Урок 17
Сигналы LC64 и SEBOL

Продолжаем тему предыдущих уроков - сигналы последовательных блоков.

Задание

Использовать для посылки сигналов Logic Chart и SEBOL (в предыдущем уроке для этой цели использовалась Sequence Table).

Освоить обработку сигналов очереди (Queue Signal).

Решение

  1. Открываем редактор схемы управления DR0001 и добавляем функциональный блок LC64 с именем тега SEND_LC:

    Рис. Блок SEND_LC

  2. Открываем редактор блока SEND_LC и добавляем логику:

    Рис. Логика SEND_LC
    Число 100 у выходного элемента – это значение Параметра 1 (в данном примере он не используется)

  3. Открываем редактор блока STEP и изменяем атрибуты шага прерывания:

    Рис. Атрибуты шага прерывания

  4. Запускаем симулятор контроллера

  5. Переводим блок SEND_LC в режим AUT, а блок STEP – в статус RUN

  6. Вызываем лицевую панель тега CONDITION1 и имитируем выполнение условия перехода на второй шаг для блока STEP

  7. Вызываем лицевую панель тега SEND1 и инициируем посылку сигнала прерывания из блока SEND_LC в блок STEP:

    Рис. Аварийное сообщение

  8. Останавливаем симулятор контроллера
  9. SEBOL

  10. Открываем редактор Common Switch Builder и добавляем два тега:

    Рис. Common Switch Builder

  11. Открываем редактор Annunciator Builder и добавляем два тега:

    Рис. Annunciator Builder

  12. Открываем редактор схемы управления DR0001 и добавляем функциональный блок _SFCSW с именем тега SEND_SEBOL, а у второго блока изменяем имя тега на STEP1 (так как имя STEP в SEBOL зарезервировано для других целей):

    Рис. Блок STEP1

  13. Открываем редактор блока SEND_SEBOL, добавляем 4 шага и изменяем атрибуты переходов:

    Рис. Атрибуты перехода к шагу 2
    Рис. Атрибуты перехода к шагу 3
    Рис. Атрибуты перехода к шагу 4
    Рис. Логика блока SEND_SEBOL

  14. Открываем редактор шага 1, декларируем глобальные переменные:

    Рис. Код шага 1

  15. Открываем редактор шага 2 и добавляем команду посылки сигнала “INT” в блок STEP1:

    Рис. Код шага 2

  16. Открываем редактор шага 3 и добавляем команду посылки сигнала “SIGNAL1” в блок STEP1:

    Рис. Код шага 3

  17. Открываем редактор шага 4 и добавляем команду посылки сигнала “SIGNAL2” в блок STEP1:

    Рис. Код шага 4
  18. Программирование на стороне блока-приёмника сигналов

  19. Открываем редактор блока STEP1 и создаём последовательную функциональную схему:

    Рис. Логика блока STEP1

  20. Открываем редактор шага 1, декларируем глобальные переменные (Annunciator) и сигналы очереди:

    Рис. Код шага 1

  21. Поля атрибутов перехода к шагу 2 оставляем пустыми:

    Рис. Атрибуты перехода к шагу 2

  22. Открываем редактор шага 2, добавляем команду ожидания и извлечения сигналов очереди:

    Рис. Код шага 2

  23. Изменяем атрибуты перехода к шагу 3:

    Рис. Атрибуты перехода к шагу 3
    Шаг 3 выполняется, когда поступает сигнал с именем “SIGNAL1”

  24. Открываем редактор шага 3 и добавляем команду генерации пользовательского сообщения “SIGNAL1” (%AN0002):

    Рис. Код шага 3

  25. Изменяем атрибуты перехода к шагу 4:

    Рис. Атрибуты перехода к шагу 4
    Шаг 4 выполняется, когда поступает сигнал с именем “SIGNAL2”

  26. Открываем редактор шага 4 и добавляем команду генерации пользовательского сообщения “SIGNAL2” (%AN0003):

    Рис. Код шага 4

  27. Открываем редактор шага прерывания:

    Рис. Редактор шага прерывания

  28. Открываем редактор первого шага и добавляем команду генерации пользовательского сообщения «Прерывание» (%AN0001):

    Рис. Код первого шага прерывания

  29. Запускаем симулятор контроллера

  30. Открываем окно статуса схемы управления DR0001:

    Рис. Окно статуса схемы управления

  31. Переводим блоки SEND_SEBOL и STEP1 в статус RUN

  32. Открываем окно статуса блока SEND_SEBOL:

    Рис. Окно статуса блока-передатчика
    Выполнен шаг 1

  33. Открываем окно статуса блока STEP1:

    Рис. Окно статуса блока-приёмника
    Выполнен шаг 1

  34. Вызываем лицевую панель тега SEND1, нажимаем кнопку [ON] – выполняется шаг прерывания, в котором генерируется пользовательское сообщение – «Прерывание»:

    Рис. Аварийное сообщение

  35. Наблюдаем за изменениями в окне статуса блока SEND_SEBOL:

    Рис. Окно статуса блока-передатчика
    Выполнен шаг 2

  36. Наблюдаем за изменениями в окне статуса блока STEP1:

    Рис. Окно статуса блока-приёмника
    Выполнен шаг прерывания

  37. Вызываем лицевую панель тега SEND2, нажимаем кнопку [ON] – посылается сигнал “SIGNAL1” в блок STEP1. Блок STEP1 получает этот сигнал и выполняет шаг 3, в котором генерируется пользовательское сообщение “SIGNAL1”:

    Рис. Сообщение SIGNAL1

  38. Наблюдаем за изменениями в окне статуса блока SEND_SEBOL:

    Рис. Окно статуса блока-передатчика
    Выполнен шаг 3

  39. Наблюдаем за изменениями в окне статуса блока STEP1:

    Рис. Окно статуса блока-приёмника
    Выполнен шаг 3, активен шаг 2

  40. Вызываем лицевую панель тега SEND3, нажимаем кнопку [ON] – посылается сигнал “SIGNAL2” в блок STEP1. Блок STEP1 получает этот сигнал и выполняет шаг 4, в котором генерируется пользовательское сообщение “SIGNAL2”:

    Рис. Сообщение SIGNAL1

  41. Наблюдаем за изменениями в окне статуса блока SEND_SEBOL:

    Рис. Окно статуса блока-передатчика
    Блок выполнил все свои шаги и перешёл в статус STOP

  42. Наблюдаем за изменениями в окне статуса блока STEP1:

    Рис. Окно статуса блока-приёмника
    Выполнены все шаги, активен шаг 2

  43. Переводим блок SEND_SEBOL в статус RUN и повторяем все операции для закрепления.