0

Управление Быстрым счетчиком S-200

В данном примере применения поясняется функция быстрого счетчика в SIMATIC S7-200. Быстрый счетчик может использоваться в различных конфигурациях, для того чтобы обрабатывать входные сигналы от датчиков, как напр. датчик перемещения.

Импульсные выходы будут использоваться в данном, для того чтобы создать быстрые сигналы. При этом появляется возможность генерировать последовательность импульсов (PTO), а также модулировать ширину импульсов (ШИМ), для того чтобы напр., управлять серводвигателем. Так как в данном применении используется последовательность импульсов, то можно использовать только CPU 214 DC/DC/DC.

Данное применение призвано показать, как должна быть структурирована программа, для того чтобы использовать быстрый счетчик и функцию последовательности импульсов в простейших конфигурациях.

 

Управление Быстрым счетчиком S 200, image00210

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

 

В этом примере описывается функция быстрого счетчика S7-200 DC/DC/DC. Он считает быстрее чем ПЛК может обработать цикл. Используемый счетчик это 2 килогерцовый программный счетчик, который встроен в S7-212. S7-214 имеет дополнительно два аппаратных счетчика по 7 КГц. Все счетчики вместе требуют 10 байт в памяти данных, для управления, хранения значений, счета и чтения текущего состояния.

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

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

Основная программа сбрасывает выход A0.0, так ка он необходим для  функции импульсов. Кроме того инициализируется быстрый счетчик HSC0 и вызываются подпрограммы 0 и 1. При этом HSC0 запускается со следующими свойствами: возможна актуализация значения, прямой счет. Программа завершается, если выполняется число циклов указанное в SBR 0 (SMD72).

 

 

LD SM0.1 // Первый цикл

R A0.0,1 // Сброс выхода // A0.0 для импульсов

MOVB 16#F8,SMB37 // Загрузка контрольных битов для быстрого счетчика HSC0 (деблокировка HSC0, обновление текущих значений, обновление сбросов, обновление направления счета и числа циклов). Команда HSC использует эти контрольные биты, для конфигурирования быстрого счетчика.

MOVD 0,SMD38 // Начальное значение быстрого счетчика HSC0

MOVD 1000,SMD42 // Первое значение останова от HSC0

HDEF 0,0 // Определение быстрого счетчика 0 в режиме 0

CALL 0 // Вызов подпрограммы 0

CALL 1 // Вызов подпрограммы 1

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

Управление Быстрым счетчиком S 200, image00412

 

 

Подпрограммы

// Подпрограмма 0 служит для инициализации и деблокировки выдачи импульсов. В байте специальных меркеров SMB67 определяется вывод: последовательность импульсов, временой базис, обновление значений и деблокировка. Слово SMW68 содержит время цикла как мультипликатор временного базиса. В двойном слове специальных меркеров задается число генерируемых циклов.

 

SBR 0 // Подпрграмма 0

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

MOVB 16#8D,SMB67 // Выдача импульсов:1мс,

// PTO, деблокировка, обновление

MOVW 1,SMW68// Длина цикла в мс

MOVD 30000, SMD72 // Число гененируемых циклов

PLS 0 // Разрешение выдачи импульсов на выходA0.0

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

Управление Быстрым счетчиком S 200, image0069

 

Подпрограмма 1 запускает быстрый счетчик HSC0 и назначает  подпрограмму 0 событию прерывания 12 (HSC0 текущее значение = сброс). Это событие возникает, если число сосчитанных импульсов (текущее значение) достигает текущего значения останова (сброс). Происходит деблокировка прерывания.

 

SBR 1 // Подпрограмма 1

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

ATCH 0,12 // Назначение INT 0 событию прерывания 12 (HSC0 текущее значение = сброс)

ENI // Деблокировка прерывания

HSC 0 // Пуск быстрого счетчика 0

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

Управление Быстрым счетчиком S 200, image0089

 

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

//Подпрограмма прерывания 0 будет вызвана, если достигнуто первое значение сброса (1000) быстрого счетчика 0. Выход A0.1 устанавливается и задается новое значение сброса (1500) для быстрого счетчика.

// Подпрограмма прерывания 1 назначается событию прерывания 12 вместо подпрограммы 0.

 

INT 0 // Подпрограмма прерывания 0

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

S A0.1,1 //Установка выхода A0.1

MOVD 16#A0,SMB37 //Установка контрольных битов: только загрузка нового сброса

MOVD 1500,SMD42// Следующее значение сброса HSC0

ATCH 1,12 // Назначение INT 1событию прерывания 12 вместо INT 0

HSC 0 // Загрузка нового сброса в HSC0

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

Управление Быстрым счетчиком S 200, image0108

 

// Подпрограмма прерывания 1 вызывается, если достигнуто второе значение сброса (1500) быстрого счетчика 0. Выход A0.2 устанавливается, направление счета изменяется на обратное и определяется новое значение сброса (1000).

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

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

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

S A0.2,1 //Установка выхода A0.2

MOVB 16#B0,SMB37//Установка контрольных битов для загрузки нового сброса и обратного счета

MOVD 1000,SMD42// Следующее значение сброса

ATCH 2,12 // Назначение INT 2 событию прерывания 12 вместо INT 1

HSC 0 // Загрузка нового сброса и нового направления в HSC0

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

Управление Быстрым счетчиком S 200, image0127

 

Подпрограмма прерывания 2 вызывается, если достигнуто третье значение сброса (1000) быстрого счетчика 0. Выходы A0.1 и A0.2 сбрасываются, направление счета изменяется на прямое и текущее значение счетчика сбрасывается в ноль.

Значение сброса остается неизменным. При этом подпрограмма прерывания 0 назначается событию прерывания 12, выполнение программы начинается заново. Программа завершается, если заданное в SBR 0 (SMD72) число циклов отработано.

 

INT 2 // Подпрограмма прерывания 2

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

R A0.1,2 // Сброс выходов A0.1 и A0.2

MOVB 16#D8,SMB37//Установка контрольных битов, для загрузки нового текущего значения прямого счета

MOVD 0,SMD38// Сброс текущего значения счетчика HSC0

ATCH 0,12 // Назначение INT 0 событию прерывания 12

HSC 0 // Новый пуск быстрого счетчика 0

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

Управление Быстрым счетчиком S 200, image0144

 

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

Для того чтобы преобразовать 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 требуют отдельных сегментов.
  • Комментарии к строкам начинающиеся с «//» в S7-Micro/DOS не возможны, зато возможны комментарии к сегментам.
Раздел: 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
.