0

S7-200 Примеры управление широтно-импульсной модуляцией

Краткое описание:

CPU-214 S7-200 содержит функцию выдачи прямоугольных сигналов на выходы A0.0 и A0.1. При этом длительность периода и ширина импульса устанавливаются независимо друг от друга. Ширина импульса соответствует времени, в течение которого выходной сигнал за период имеет состояние „1“.

Данный пример описывает широтно-импульсную модуляцию (ШИМ), где на выход A0.0 выдается сигнал, ширина импульса которого увеличивается от периода к периоду на 0,5 с. Длительность периода составляет 5 с, а стартовая ширина импульса 0,5 с. Если будет достигнуто максимальное значение ширины импульса 4,5 с, то ширина импульса снова начинает уменьшаться на 0,5 с, пока значение не станет равно нулю. Этот процесс повторяется периодически.

Для проведения такой широтно-импульсной модуляции необходимо связать выход A0.0 со входом E0.0, также как массу напряжения питания с массой входов, для того чтобы имелась возможность управлять ШИМ из программы.

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

Байт специальных меркеров SMB67 служит для инициализации широтно-импульсной модуляции на выходе A0.0. Это инициализация содержит деблокировку ШИМ и установки, позволяющие изменять длительность периода и ширину импульса, а также выбрать временной базис (здесь в мс). В подпрограмме 0 будут установлены соответствующие контрольные байты. Команда ENI производит глобальную деблокировку всех прерываний. По команде PLS 0 операционная система запоминает установленные значения и инициализирует так называемый “PTO/ШИМ-генератор”, который будет производить ШИМ на выходе A0.0.

Длительность периода 5 с задается передачей значения 5000 в слово специальных меркеров SMW68. Начальная ширина импульса устанавливается на 0,5 с, путем записи значения 500 в слово специальных меркеров SMW70.

Данная инициализация производится в первом цикле, путем логического связывания вызова подпрограммы с битом специальных меркеров SM0.1 (First Scan Flag). Инициализация и установка ШИМ будет прооизводится повторно, после завершения процесса ШИМ, т.е. когда текущая ширина импульса станет равной 0.

Вспомогательный маркер M0.0 служит для установки, будет ли ширина импульса увеличиваться или уменьшаться. Во время инициализации он устанавливается, для того чтобы могло производиться инкрементирование. Выход A0.0 связан со входом E0.0, так что выходной сигнал появляется и на входе E0.0. После того как будет выдан первый импульс, событие ‘0’ (положительный фронт на E0.0) будет назначено подпрограмме прерывания 1 (INT1) с помощью команды ‘ATCH’. INT1 повышает текущее значение импульса на 0,5 с а затем команда ‘DTCH’ разрывает связь этого прерывания с INT1, причем прерывание снова будет блокировано. Если ширина импульса при следующем увеличении станет равна длительности периода, то вспомогательный маркер M0.0 будет сброшен. При этом событие ‘0’ назначается подпрограмме прерывания 2, которая уменьшит ширину импульса после каждого импульса на 0,5 с. Когда ширина импульса станет равна 0, снова будет вызвана подпрограмма инициализации (подпрограмма SBR 0).

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

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

// TITEL = УПРАВЛЕНИЕ ШИРОТНО-ИМПУЛЬСНОЙ МОДУЛЯЈИЕЙ

CALL 0 // вызов подпрограммы 0 для пуска ШИМ

LDW>= SMW70, VW0// Если ширина импульса >= (длина периода — ширина импульса),

R M0.0, 1// вспомогат. маркер сбрасывается

LDW= SMW70, 0// Если ширина импульса равна нулю,

CALL 0 // Вызов подпрограммы 0 для нового пуска ШИМ

LD E0.0 // ВходE0.0 установлен

U M0.0 // и вспомогательный маркер для увеличения установлен,

ATCH 1, 0 // то INT 1 назначена событию 0 (положительный фронт на E0.0)

LD E0.0 // Вход E0.0 установлен,

UN M0.0 // а вспомогательный маркер для увеличения не установлен,

ATCH 2, 0 // то INT 2 назначена событию 0 (положительный фронт на E0.0)

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

S7 200 Примеры управление широтно импульсной модуляцией, image012

ПОДПРОГРАММА 0

// SM67.0 := 1 => сохранение новой длительности периода (деблокировка)

// SM67.1 := 1 => сохранение новой ширины импульса (деблокировка)

// SM67.3 := 1 => временной базис 1мс (если 0 => временной базис 1мкс)

// SM67.6 := 1 => выбор режима ШИМ (если 0 => режим PTO)

// SM67.7 := 1 =>общая деблокировка High-Speed-Output-функций

SBR 0 // Инициализация ШИМ

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

S M0.0, 1 // Установка вспом. маркера “увеличение  ширины импульса”

MOVB 16#CB, SMB67//Установка контрольных байтов PTO/ШИМ — для выхода A0.0

MOVW 500, SMW70// Задание начальной ширина импульса (здесь 500 мс)

MOVW 5000, SMW68// длина периода (здесь 5 с)

ENI // Деблокировка всех прерываний

PLS 0 // Команда на программирование PTO/ШИМ-генератора

MOVW SMW68, VW0// Копировать длину периода в слово/ данных VW0

-I 500, VW0// Сохранить значение ‘длина периода — ширина импульса’ в слове данных VW0

RET // Конец подпрограммы 0 и возврат в основную программу

S7 200 Примеры управление широтно импульсной модуляцией, image014

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

INT 1 // Увеличение ширины импульса

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

+I 500, SMW70// Увеличение ширины импульса на 500мс

PLS 0 // Команда на программирование PTO/ШИМ-генератора

DTCH 0 // Разделить прерывание и назначенное ему событие 0

RETI // Конец ISR 1 и возврат в основную программу

S7 200 Примеры управление широтно импульсной модуляцией, image016

Подпрограмма обработки прерываний 2

INT 2 // Уменьшение ширины импульса

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

-I 500, SMW70// Уменьшение ширины импульса на 500мс

PLS 0 // Команда на программирование PTO/ШИМ-генератора

DTCH 0 // Разделить прерывание и назначенное ему событие 0

RETI // Конец ISR 2 и возврат в основную программу

S7 200 Примеры управление широтно импульсной модуляцией, image018

 

Раздел: Siemens PLC, Программы ПЛК Метки: , , ,

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

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

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