S7-200 Примеры. Обработка фронтов входных сигналов

Этот пример показывает, как можно определить смену сигнала с помощью функции определения фронта S7-200. При этом различаются положительные и отрицательные фронты, причем под положительным фронтом понимается смена сигнала с ‘0’ на ‘1’, а под отрицательным – смена сигнала с ‘1’ на ‘0’. Логическая ‘1’ означает, что на вход подано напряжение, а под ‘0’ понимается отсутствие напряжения на входе.

Программа запоминает число положительных фронтов на входе E0.0 и отрицательных на входе E0.1 в слове меркеров. Можно дополнить программу опросом запомненных значений, проверяя при этом все ли фронты опознаны.

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

 

 

Описание программы вкл. листинг

Программа опрашивает вход E0.0 и и проверяет затем с помощью команды EU (Edge Up), произошла ли положительная смена сигнала, то есть смена с ‘0’ на ‘1’. Если да, то значение меркерного слова MW1 повышается на 1. Отрицательный фронт входа E0.1 будет сосчитан посредством команды ED (Edge Down) iв меркерном слове MW3. Если число сосчитанных фронтов достигает 127, то соответствующий меркер сбрасывается в ноль. Не забывайте, что младший байт слова меркеров MW1 это байт M2, а старший байт это байт M1. В слове меркеров MW3 соответственн младший бит M4, а старший M3.

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

 

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

LD SM0.1 // Только в первом цикле в единицу

MOVD 0, MD1// Установка двойного слова MD1 в ноль

LD E0.0 // Положительный фронт

EU

+I 1,MW1// При смене фронта: слово меркеров MW1 увеличивается на 1

LDW= 127,MW1// После 127 смен фронта (=свободно задаваемое значение)

MOVW 0,MW1// Слово меркеров MW1 сбрасывается в 0

LD E0.1 // Отрицательный фронт

ED

+I 1,MW3// При смене фронта: слово меркеров MW3 увеличивается на 1

LDW= 127,MW3// После 127 смен фронта (=свободно задаваемое значение)

MOVW 0,MW3// Слово меркеров MW3 сбрасывается в 0

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