0

Управление подпрограммами прерываний ввода/вывода

 

Эта программа для SIMATIC S7-212 и S7-214 считает от 0 до 255 в зависимости от входа E0.0: Если он установлен, то программа считает обратно, а если нет, то программа считает прямо. При переключении этого входа выполняется подпрограмма прерывания ввода/вывода, которая устанавливает или сбрасывает меркерный бит обратного счета M0.0.

Управление подпрограммами прерываний ввода/вывода, image0027

Эта программа является примером подпрограммы прерывания ввода/вывода. Счетчик считает от 0 до 255. Если вход E0.0 не установлен, то идет прямой счет. Если вход E0.0 установлен, то идет обратный счет.

Структура программы:

Main Инициализация и подпрограмма счета

INT 0 прямой счет — вход E0.0 не установлен

INT 1 обратный счет — вход E0.0 установлен

Размер программы составляет 32 слова.

Основная программа

// TITLE=EVENT-INT

// Основная программа состоит из подпрограмм инициализации и счета.

// При 0 или 255 процесс счета завершается.

// Меркерный бит M0.0 (меркер обратного счета) отвечает за направление счета.

// Включение входа E0.0подпрограмма прерывания ввода/вывода INT 0 выключается.

// Вэтой подпрограмме устанавливается меркер обратного счета M0.0.

// При этом основная программа ведет обратный счет.

// Подпрограмма прерывания по событию INT 1 выполняется, если вход E0.0

// выключается. При этом меркер обратного счета M0.0 сбрасывается и

// программа вновь ведет прямой счет.

Управление подпрограммами прерываний ввода/вывода, image0048

LD SM0.1 // Бит инициализации — только в 1 в первом рабочем цикле

MOVB 0,AC0 // Установка аккумулятора счетчика в 0

ENI // Разрешение для подпрограмм прерываний

ATCH 0,0 // Подпрограма по событию для положительного фронта входа E0.0

ATCH 1,1 // Подпрограма по событию для отрицательного фронта входа E0.0

 

Управление подпрограммами прерываний ввода/вывода, image0063

LDN M0.0 // Если меркер обратного счета не установлен

UB>= 16#FE,AC0 // … и текущее значение счетчика меньше или равно 254

U SM0.5 // … и импульс 0.5 секунды

EU // … и положительный фронт импульса,

INCW AC0 // то содержимое аккумулятора сетчика увеличивается на 1

 

Управление подпрограммами прерываний ввода/вывода, image0087

LD M0.0 // Если меркер обратного счета установлен

UB<= 16#1,AC0 // … и текущее значение счетчика больше или равно 1

U SM0.5 // … и импульс 0.5 секунды

EU // … и положительный фронт импульса,

DECW AC0 // то содержимое аккумулятора сетчика уменьшается на 1

 

Управление подпрограммами прерываний ввода/вывода, image0105

LD SM0.0 // Всегда в единице

MOVB AC0,AB0 // Индикация текущего значения счетчика на выходах

MEND // Конец основной программы

 

Подпрограммы прерываний

// Подпрограмма прерывания по событию 0 устанавливает меркерный бит M0.0 в 0.

// В этом случае программа ведет обратный счет.

Управление подпрограммами прерываний ввода/вывода, image0123

INT 0 // Подпрограмма по событию ведет обратный счет

LD SM0.0

S M0.0,1 // Установка меркера обратного счета

RETI // Конец подпрограммы прерываний

// Подпрограмма прерывания по событию 1 устанавливает меркерный бит M0.0 в 1.

// В этом случае программа ведет прямой счет.

Управление подпрограммами прерываний ввода/вывода, image0142

 

INT 1 // Подпрограмма по событию ведет прямой счет

R M0.0,1 // Сброс меркера обратного счета

RETI // Конец подпрограммы прерываний

Указания по преобразованию

Для того чтобы преобразовать TOOLITE2 AWL в S7-Micro/DOS AWL

  • Установите ‘K’ перед каждым числом, не являющимся 16-ричной константой (напр. 4 → K4)
  • Замените ‘16#’ → ‘KH’ для всех 16-ричных констант (напр. 16#FF → KHFF)
  • Поставьте запятые для смены полей. Используйте клавиши перемещения или клавишу TAB для перехода от поля к полю.
  • Для преобразования программы S7-Micro/DOS AWL в KOP-форму нужно начинать каждый сегмент словом ‘NETWORK’ и номером. Каждый сегмент в этом примере имеет свой номер на диаграмме KOP. Используйте NWENFG в меню редактора для ввода нового сегмента. Команды MEND, RET, RETI, LBL, SBR и INT требуют отдельных сегментов.
Раздел: Siemens PLC, Программы ПЛК Метки: ,

Оставить комментарий

Отправить сообщение

CoDeSys GSM/GPRS модем Lectus OPC MasterSCADA Modbus MX110 Omron OPC-сервер owen OWEN Easy Logic owen logic PLC Configuration PROFIBUS s-200 SCADA scada системы siemens siemens plc SIMATIC Simplight SMS step7 TRACE MODE Динамизация ИП-320 ОВЕН ОВЕН ПЛК ОВЕН ПЧВ ПЛК ПЛК ОВЕН ПР 110 Панель оператора Программируемое реле Частотный преобразователь библиотека в CoDeSys визуализация диспетчеризация конфигурация панели программирование ПЛК серия NS сименс плк частотник частотное управление язык CFC язык ST
.