Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программируемые логические контроллеры для управления технологическими процессами. В 2 ч. Ч 1.pdf
Скачиваний:
5
Добавлен:
29.11.2025
Размер:
2.39 Mб
Скачать

99

Пример двукратной вставки в программу адреса точки Р9 показан на рисунке 12.2.

Если Х10 включен, то

выполняется переход к промаркированной точке Р9.

Если Х10 выключен, а Х11 включен, то все равно произойдет переход к точке Р9.

 

Примечание:

 

Одинаковая маркировка

Рисунок 12.2.– Пример двукратной

точек не должна много-

вставки в программу адреса точки Р9.

кратно использоваться в

 

программе, т.к. может

 

создаться ошибка в ра-

 

боте программы.

Маркировка точки перед «CJ»-инструкцией перехода:

Обратный переход (вверх программы) также может выполняться внутри программы.

Примечание:

Если входной сигнал для «CJ»-инструкции держится больше 200 мс, то появляется ошибка времени рабо-

Рисунок.12.3 – Маркировка точки перед ты (Watch-Dog-Timer). «CJ»-инструкцией

12.3 Вызов подпрограммы (CALL / SRET)

Вызов подпрограммы

Конец подпрограммы

100

С помощью «CALL»-инструкции вызывается подпрограмма, промаркированная с помощью точек (Р0...Р62). Подпрограмма программируется после «FEND»-инструкции и перед «END»- инструкцией. В конце подпрограммы должна находиться «SRET»- инструкция. Если активируется «CALL»-инструкция, то выполняется переход к указанной точке маркировки. После отработки «SRET»- инструкции выполняется обратный переход к инструкции, следующей за «CALL»-инструкцией. Активированные в подпрограмме операнды остаются таковыми после отработки подпрограммы до новой ее обработки. В подпрограмме должны использоваться таймеры Т192...Т199 и Т246...Т249. Те же точки могут использоваться с любым числом CALL-инструкций. Внутри подпрограммы могут вызываться другие подпрограммы. Возможно максимум 4 уровня ветвления.

Пример применения подпрограмм показан на рисунке 12.4.

Рисунок 12.4 – Пример программирования с применением

«CALL»- и «SRET»-инструкций

101

12.4 Ввод прерывания программы (IRET, EI, DI)

Окончание програм-

Импульсный за-

Деактивация про-

мы прерывания

пуск/активизация

граммы прерывания

 

программы прерыва-

 

 

ния

 

Принцип функционирования.

Вызов, Окончание, Активизация и Деактивация программы прерывания.

Вызов программы прерывания.

При вызове программы прерывания останавливается основная программа и выполняется переход к программе прерывания. После окончания программы прерывания выполняется возврат к основной программе. Начало программы прерывания определяется установкой маркировки (точки прерывания). Конец программы прерывания определяется «IRET»-инструкцией. Входы Х0...Х5 образуют входы прерывания. Сигналы прерывания должны иметь ширину импульса минимум в 200 мкс.

Примечание:

Входы Х0...Х5 не могут применяться одновременно для обработки сигналов прерывания и для обработки сигналов высокоскоростного счетчика.

Адресация точек прерывания.

Точка прерывания: I X 0 x

X – адрес 0...5, соответствующий входам Х0...Х5

x = 0 – прерывание при падающем фронте входного сигнала. x = 1 – прерывание при возрастающем фронте входного сигнала.

Примечание:

Адрес прерывания может использоваться только один раз

102

Применение «EI»- и «DI»-инструкций.

Спомощью «EI»-инструкции могут активироваться инструкции прерывания. Это означает, что после отработки «EI»- инструкции, смена сигнала, которая появляется на одном из входов Х0...Х5, обрабатывается как сигнал прерывания в программе.

Спомощью «DI»-инструкции могут деактивироваться инструкции прерывания. Это означает, что после отработки «DI»- инструкции, смена сигнала, которая появляется на одном из входов Х0...Х5, не обрабатывается больше как сигнал прерывания в программе.

Примечание:

Если ни одна из обеих инструкций «EI» или «DI» не программируется, режим прерывания не активизируется, т.е. тогда не может обрабатываться никакой сигнал прерывания.

Отработка программы прерывания.

Во время исполнения программы прерывания не может вызываться никакая другая программа прерывания. Однако может программироваться два уровня разветвления.

Несколько, одна за другой следующие, программы прерывания обрабатываются в последовательности их вызова. Если одновременно вызываются несколько программ прерывания, то вначале обрабатывается программа прерывания с более низким адресом точки.

Выключение прерывания.

Любое прерывание может повременно или постоянно выключаться посредством включения соответствующего специального меркера (внутреннего реле). Для FX0S первым специальным меркером является М8050, который выключает прерывание IOab. Cоответствующие специальные меркеры указываются в руководстве пользователя.

Пример адресации точки прерывания показан на рисунке 12.5. Точка I001 – вход прерывания Х0, прерывание при возраста-

ющем фронте входного сигнала (смена сигнала с «0» на «1»).

103

Рисунок 12.5 – Пример программирования при использовании инструкций «EI», «DI» и «IRET»

Если вход Х0 устанавливает сигнал прерывания во время выполнения шага программы внутри области от E I-инструкции до DIинструкции, то имеет место переход к программе прерывания I001. Программа прерывания выполняется и происходит возврат в основную программу.

Программа прерывания I001 не выполняется, если активизирован специальный меркер М8050 (вход Х10 включен).

Если вход Х1 устанавливает сигнал прерывания во время выполнения шага программы внутри области от EI-инструкции до «DI»-инструкции, то имеет место переход к программе прерывания I100. Программа прерывания выполняется и происходит возврат в основную программу.

Если появляются одновременно сигналы Х0 и Х1, то вначале обрабатывается программа прерывания I001, а затем программа прерывания I100.