Файл: Микропроцессорная техника систем автоматизации. Лабораторный практикум.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.10.2023

Просмотров: 212

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

74 слова генератора импульсов. Адресом по умолчанию является
QW1000 для PWM1 и QW1002 для PWM2. Значение по этому адресу управляет шириной импульса и инициализируется на указанное выше значение для Initial pulse duration (Начальная ширина импульса) при каждом переходе процессора ПЛК из режима STOP в режим RUN.
Значение этого выходного (Q) слова можно изменять во время исполнения, чтобы изменить ширину импульса.
После настройки параметров генератора импульсов для управления его работой в программе нужно использовать команду
CTRL_PWM. Данная команда вводится в программу не вручную, а путем перетаскивания в нужное место программы мышью с вкладки
Instructions→Extended instructions→Pulse на панели
Instruction.
Команда CTRL_PWM имеет следующие параметры (табл. 25).
Таблица 25
Параметры команды CTRL_PWM
Параметр
Тип
параметра
Тип
данных
Начальное
значение
Описание
PWM входной
Word
0
Идентификатор
PWM: имена разблокированных генераторов импульсов становятся переменными в таблице переменных "constant" и предоставляются для использования в качестве параметра
PWM
ENABLE входной
Bool
1 = запустить генератор импульсов
0 = остановить генератор импульсов
BUSY выходной Bool
0
Функция занята
STATUS выходной Word
0
Код условия выполнения

75
Для хранения информации о параметрах команда CTRL_PWM использует блок данных (DB). Когда вы вставляете команду
CTRL_PWM в программный редактор, ей назначается DB.
Параметры этого блока данных не изменяются отдельно пользователем, а управляются командой CTRL_PWM.
В параметре PWM следует указать настроенный предварительно генератор импульсов PWM. Когда вход EN принимает значение
ИСТИНА, команда PWM_CTRL запускает или останавливает указанный PWM на основе значения на входе ENABLE. Ширина импульсов определяется значением в соответствующем адресе выходного (Q) слова. Так как S7-1200 обрабатывает запрос, когда команда CTRL_PWM исполняется, то параметр BUSY у моделей
CPU S7-1200 всегда принимает значение ЛОЖЬ. Если обнаружена ошибка, то параметр STATUS содержит код ошибки.
Ширина импульса устанавливается на начальное значение, установленное в конфигурации устройств, когда ПЛК впервые переходит в режим RUN. Чтобы изменить ширину импульсов, необходимо записать желаемые значения в адрес выходного
(Q) слова.
Порядок выполнения лабораторной работы
В процессе выполнения лабораторной работы для закрепления сведений о реализации функции широтно-импульсной модуляции на контроллере Simatic S7-1200, необходимо создать в среде
TIA Portal новый проект.
В данном проекте нужно добавить контроллер Simatic S7-1200
(см. стр. 19), в котором нужно сконфигурировать широтно- импульсный генератор PWM1. При настройке в поле Name (имя) – оставить предлагаемое по умолчанию имя Pulse_1. Время цикла задать равным 1000 мс.
Значение же ширины импульсов необходимо задавать с экрана сенсорной панели. Для этого в таблице символьных имен переменных контроллера (пункт PLC_1→PLC tags→Default tag table в дереве проекта) нужно определить переменную PulseDuration типа Int по адресу QW1000, который совпадает с адресом выходного слова генератора импульсов PWM1. Значение этой переменной будет


76 задаваться с экрана сенсорной панели. Для этого в проект следует включить сенсорную панель (см. стр. 66). На экране панели необходимо разместить элемент типа Text field для отображения текстовой надписи «Ширина импульса, %». Также необходимо разместить элемент типа I/O field и связать его с переменной
PulseDuration из памяти контроллера. Для элемента I/O field задать режим Input/output, а в поле Format pattern – задать формат отображаемого числового значения в виде «999», что означает неотрицательное целое число длиной от 1 до 3 знаков (ширина в процентах от 0 до 100).
Далее в программу контроллера нужно вставить единственную команду – CTRL_PWM. В качестве параметра PWM следует указать имя сконфигурированного генератора импульсов – Pulse_1.
В качестве параметра ENABLE – задать дискретный вход I0.0.
Таким образом, генератор будет включаться и работать при включении тумблера I0.0. Оставшиеся два параметра оставить пустыми.
Загрузить созданный проект в ПЛК и сенсорную панель и исследовать их работу на стенде.
Изменить в свойствах генератора импульсов значение времени цикла на 10 мс. Повторно загрузить измененный проект в память
ПЛК и пронаблюдать, как изменился режим работы светодиода на выходе Q0.0.
Содержание отчета
1. Название и цель работы.
2. Графики, иллюстрирующие принцип управления яркостью светодиода с помощью ШИМ.
3. Выводы.
Контрольные вопросы
1. В чем заключается принцип управления яркостью светодиода
(скорость вращения электродвигателя) с помощью ШИМ?
2. Почему при времени цикла ШИМ, равном 1000 мс, светодиод мигает, а при 10 мс – горит непрерывно?

77
ЛАБОРАТОРНАЯ РАБОТА № 8
ИЗУЧЕНИЕ ПРИНЦИПОВ ОБРАБОТКИ
ПРЕРЫВАНИЙ В ПЛК
Цель работы: изучение принципов обработки прерываний в ПЛК.
Информация для выполнения лабораторной работы
Исполнение пользовательской программы в ПЛК происходит по циклическому типу, что иллюстрирует схема на рис. 22.
Операционная система контроллера:
1. Осуществляет считывание значений из области входов.
2. Делает вызов и выполнение необходимой программы.
3. После прохождения алгоритма от начала и до конца осуществляет запись результатов его работы в память выходов.
Рис. 22. Цикл выполнения программы пользователя в ПЛК
«Циклическое сканирование» – это обычный метод выполнения пользовательских программ в ПЛК. Подавляющее большинство систем управления использует только такой способ выполнения программ.
На практике при управлении каким-либо объектом ПЛК должен одновременно следить за сигналами десятков различных


78 дискретных и аналоговых датчиков (конечные выключатели, кнопки ручного управления, датчики уровня и т.д.) и в зависимости от их значений выполнять определенные управляющие действия.
Один из путей такого одновременного слежения состоит в том, что в пользовательской программе для каждого из опрашиваемых входов контроллера необходимо поместить свой отдельный условный оператор.
Пример организации опроса состояния дискретного входа
IF ("input" = TRUE) THEN
(* какие-то действия *)


END_IF;
Другой подход основан на использовании прерываний.
Прерыванием называется временное прекращение выполнения микропроцессором текущей основной (фоновой) программы и переход к специальной подпрограмме – обработчику. Прерывание обычно происходит вне всякой связи с фоновой программой при поступлении сигнала от внешних выводов или от внутренних устройств микроконтроллера.
Выполнение основной программы (рис. 23) останавливается, данные, необходимые для дальнейшего продолжения работы, сохраняются в отдельную область памяти (стек) и далее начинается выполнение подпрограммы обработки прерывания.
Рис. 23. Выполнение прерывания

79
После завершения исполнения процедуры обработки прерывания процессор контроллера возвращается к выполнению основной программы с того места, где оно было прервано.
ПЛК Simatic S7-1200 поддерживает следующие события, вызывающие аппаратные прерывания:
- события типа нарастающих фронтов (все встроенные цифровые входы CPU плюс цифровые входы сигнальной платы).
Нарастающий фронт возникает, когда цифровой вход переходит из состояния ВЫКЛ в состояние ВКЛ как реакция на изменение сигнала от полевого устройства, подключенного к этому входу;
- события типа падающих фронтов (все встроенные цифровые входы CPU плюс цифровые входы сигнальной платы). Падающий фронт возникает, когда цифровой вход переходит из состояния
ВКЛ в состояние ВЫКЛ;
- события типа Текущее значение скоростного счетчика (HSC)
= эталонному значению (CV = RV) (HSC 1 … 6). Прерывание CV =
RV для HSC генерируется, когда текущее значение переходит от соседнего значения к значению, точно совпадающему с предварительно установленным эталонным значением. Принцип работы и назначение высокоскоростных счетчиков будут подробнее рассмотрены в следующей лабораторной работе;
- события типа Изменение направления счета HSC (HSC 1 …
6). Событие типа Изменение направления счета происходит, когда обнаружено, что HSC перешел от прямого счета к обратному или от обратного к прямому;
- события типа Внешний сброс HSC (HSC 1 … 6). Некоторые режимы HSC допускают назначение цифрового входа для внешнего сброса значения счетчика HSC в ноль. Событие типа
Внешний сброс происходит для такого HSC, когда этот вход переходит из состояния ВЫКЛ в состояние ВКЛ.
Аппаратные прерывания должны быть разблокированы при конфигурировании ПЛК.
Опции триггерных кнопок в конфигурации устройств ПЛК:
– цифровой вход;
– разблокировать обнаружение нарастающего фронта;
– разблокировать обнаружение падающего фронта;
– разблокировать этот скоростной счетчик для использования;


80
– генерировать прерывание при совпадении значения счетчика с эталонным значением;
– генерировать прерывание при изменении направления счета.
Например, чтобы разблокировать аппаратное прерывание
(событие) при обнаружении нарастающего фронта для встроенного цифрового входа I0.0 контроллера, необходимо открыть инспектор задания свойств контроллера. Для этого в дереве проекта следует выбрать пункт
PLC_1→Device configuration, в появившемся рабочем окне
Device view выделить правой кнопкой мыши изображение контроллера и во всплывающем меню выбрать пункт Properties, в результате чего в нижней части экрана появится окно инспектора свойств контроллера PLC_1→Properties. Далее в этом окне на вкладке
General следует выбрать пункт
DI14/DO10→Digital inputs→Channel0 и поставить галочку в триггерной кнопке Enable rising edge detection (разблокировать определение нарастающего фронта сигнала). Соответственно, для разблокирования определения падающего фронта сигнала нужно поставить галочку в триггерной кнопке
Enable falling edge detection.
Когда разблокируется вызывающее аппаратное прерывание событие, то ему присваивается по умолчанию уникальное имя. Вы можете изменить имя этого события, редактируя поле ввода "Event name [Имя события]:", но это имя должно быть уникальным.
Имена этих событий становятся именами переменных в таблице переменных "Constants
[Константы]" и появляются в ниспадающем списке параметра EVENT для блоков команд
ATTACH и DETACH. Значением этой переменной является внутренний номер, используемый для идентификации события.
Далее необходимо связать с разблокированным событием программный организационный блок (ОВ) обработки данного прерывания – обработчик. По умолчанию при первом разблокировании событию не ставится в соответствие никакой OB.
На это указывает метка "
- - -" в поле Hardware interrupt
[Аппаратное прерывание]. Событию, вызывающему аппаратные прерывания, может быть поставлен в соответствие только OB аппаратных прерываний. Все существующие OB аппаратных прерываний выводятся в ниспадающем списке "HW interrupt:".

81
Если в этом списке OB отсутствуют, то вы должны создать OB типа "Hardware interrupt [Аппаратное прерывание]" следующим образом.
1. В ветви "Program blocks [Программные блоки]" дерева проекта: дважды щелкните на "Add new block [Добавить новый блок]", выберите "Organization block [Организационный блок]
(OB)", а затем "Hardware interrupt".
2. Вы имеете возможность переименовать OB, выбрать язык программирования (LAD, FBD или SCL) и задать номер блока
(переключитесь в ручной режим и выберите другой номер блока вместо предложенного).
3. Отредактируйте OB и добавьте реакцию программы на возникновение события.
1   2   3   4   5   6   7   8   9   10

Общий принцип действия
Каждое аппаратное прерывание может быть поставлено в соответствие OB аппаратных прерываний, который будет поставлен в очередь на исполнение, когда происходит событие, вызывающее это аппаратное прерывание.
Установление соответствия между OB и событием может происходить во время конфигурирования или во время исполнения.
Вы можете назначать или отменять назначение OB разблокированному событию во время конфигурирования. Для назначения OB событию во время конфигурирования вы должны использовать ниспадающий список "HW interrupt [Аппаратное прерывание]:" (щелкните на направленной вниз стрелке справа) и выбрать OB из списка имеющихся OB аппаратных прерываний.
Выберите подходящее имя OB из этого списка или выберите "" для отмены назначения.
Вы можете также назначать или отменять назначение разблокированного события, вызывающего аппаратные прерывания, во время исполнения. Для этого используйте в программе во время исполнения команды ATTACH или DETACH (при желании - несколько раз) для назначения или отмены назначения разблокированного события, вызывающего аппаратные прерывания, подходящему OB. Если никакой OB в настоящее время не назначен
(из-за выбора "" в конфигурации устройств или в

82 результате выполнения команды DETACH), то разблокированное событие, вызывающее аппаратное прерывание, игнорируется.
Команды ATTACH и DETACH
С помощью команд ATTACH и DETACH вы можете во время исполнения программы связать или отвязать определенный организационный блок OB обработки прерывания с нудным событием. Эти команды вводятся в программу не вручную, а путем перетаскивания в нужное место программы мышью с вкладки
Instructions→Extended instructions→Interrupts на панели Instruction.
Команда ATTACH активизирует исполнение подпрограммы OB прерываний для событий, вызывающих аппаратные прерывания.
Команда DETACH деактивизирует исполнение подпрограммы
OB прерываний для событий, вызывающих аппаратные прерывания (табл. 26).
Таблица 26
Параметры команд ATTACH и DETACH
Параметр
Тип параметра
Тип данных
Описание
OB_NR входной
Int
Идентификатор организационного блока: выберите его из имеющихся
OB аппаратных прерываний, которые были созданы с помощью опции "Add new block [Добавить новый блок]
EVENT входной
DWord
Идентификатор (название) события: выберите его из имеющихся событий, вызывающих аппаратные прерывания, которые были разблокированы в конфигурации устройств ПЛК для цифровых входов или скоростных счетчиков

83
Окончание таблицы 26
Параметр
Тип параметра
Тип данных
Описание
ADD
(только
ATTACH) входной
Bool
ADD = 0 (по умолчанию): это событие заменяет все предыдущие назначения событий для этого OB.
ADD = 1: это событие добавляется к предыдущим назначениями событий для этого OB
RET_VAL выходной Int
Возвращаемое значение – код условия выполнения:
0000 – нет ошибки;
0001 – назначения отсутствуют (только для команды
DETACH);
8090 – ОВ не существует;
8091 – ОВ неверного типа;
8093 – событие не существует
Порядок выполнения лабораторной работы
В процессе выполнения лабораторной работы для закрепления сведений о настройке и использовании аппаратных прерываний
ПЛК необходимо создать в среде TIA Portal новый проект.
В данном проекте нужно добавить контроллер Simatic S7-1200
(см. стр. 19). В добавленном контроллере необходимо активировать аппаратное прерывание по нарастающему (либо падающему) фронту сигнала на встроенном дискретном входе I0.x (номер входа x – также уточнить у преподавателя). В качестве обработчика прерывания следует добавить в программу организационный блок

84
OB типа Hardware interrupt, в котором запрограммировать реакцию программы на данное событие. Требуемая реакция программы состоит в инвертировании (изменении на противоположное) состояния сигнала на встроенном дискретном выходе Q0.x (номер x такой же, как и для указанного выше дискретного входа).
В процессе выполнения программы должно быть реализовано связывание и отвязка блока обработки прерывания с самим прерыванием в зависимости от состояния сигнала на дискретном входе I0.y контроллера (номер входа y – задается преподавателем): при I0.y = TRUE блок обработки связан с самим прерыванием, при
I0.y = FALSE – данная связь разрывается.
Содержание отчета
1. Название и цель работы.
2. Графическая схема, иллюстрирующая принцип обработки аппаратного прерывания.
3. Выводы.
Контрольные вопросы
1. В чем заключается принцип обработки прерываний?
2. Какие аппаратные прерывания поддерживаются ПЛК Simatic
S7-1200?
3. Каково назначение команд ATTACH и DETACH?

85
ЛАБОРАТОРНАЯ РАБОТА № 9
РАЗРАБОТКА ПРОГРАММЫ ПЛК С РЕАЛИЗАЦИЕЙ
ФУНКЦИИ СЧЕТА БЫСТРЫХ ИМПУЛЬСОВ
Цель работы: изучение функции ПЛК для реализации счета быстрых импульсов.
Информация для выполнения лабораторной работы
Команда CTRL_HSC управляет скоростными счетчиками, которые используются для счета событий, происходящих чаще, чем частота исполнения OB. Частота выполнения операций счета командами CTU, CTD и CTUD ограничена частотой исполнения
OB, в которых они находятся. Так, время прогона программы в
ПЛК Simatic S7-1200 по умолчанию равно 150 мс. Это значит, что счетчики CTU, CTD и CTUD могут в данном случае выполнять счет импульсов, частота следования которых не превышает 6 Гц.
Минимально допустимое время прогона программы ПЛК Simatic
S7-1200 составляет 1 мс. Следовательно, максимально возможная частота следования импульсов для счетчиков CTU, CTD и CTUD составляет 1000 Гц или 1 кГц. Высокоскоростной же счетчик HCS
(High speed counter) позволяет правильно подсчитывать импульсы с частотой следования до 100 кГц.
Типичным использованием скоростных счетчиков является счет импульсов, посылаемых на дискретный вход контроллера датчиком скорости вращения в системах управления перемещением.
Конфигурирование скоростного счетчика
В контроллере Simatic S7-1200 имеется возможность сконфигурировать до 6 скоростных счетчиков. Конфигурирование параметров каждого из скоростных счетчиков осуществляется через свойства (Properties) ЦПУ контроллера. Для активизации
(разблокирования) скоростного счетчика в дереве проекта следует выбрать пункт PLC_1→Device configuration, в появившемся рабочем окне Device view выделить правой кнопкой мыши изображение контроллера и во всплывающем меню выбрать пункт
Properties, в результате чего в нижней части экрана появится окно

86 инспектора свойств контроллера PLC_1→Properties. Далее в этом окне на вкладке High speed counters (HCS) следует выбрать счетчик с нужным номером и поставить галочку в триггерной кнопке
Enable this high speed counter for use
(Разблокировать этот скоростной счетчик для использования).
После активизации HSC следует сконфигурировать следующие его параметры (табл. 27).
Таблица 27
Параметры настройки работы скоростного счетчика HSC
Параметр
Описание
Параметры настройки режима работы счетчика
Type of counting
Функция счетчика – тип счета:
Count – подсчет импульсов;
Frequency – измерение частоты следования импульсов
Operating phase
Алгоритм счета:
Single phase – однофазный;
Two phase – двухфазный;
A/B counter – квадратурный
A/B-счетчик;
A/B counter fourfold - квадратурный A/B-счетчик 4- тактный
Counting direction is specified by:
Направление счета определяется:
User program – программой пользователя (внутреннее управление направлением);
Input – сигналом на соответствующем дискретном входе (внешнее управление направлением)
Initial counting direction
Начальное направление счета:
Count up – счет импульсов с возрастанием;
Count down – счет импульсов с убыванием

87
Окончание таблицы 27
Параметр
Описание
Initial counter value
Начальное значение счетчика
Initial reference value
Начальное опорное значение счетчика
(уставка)
Use external reset input
Использовать внешний дискретный сигнал для сброса счетчика
Параметры настройки аппаратных прерываний счетчика
Generate interrupt for counter value equals reference value event
Генерировать аппаратное прерывание в том случае, когда текущее значение счетчика становится равным опорному значению (уставке)
Generate interrupt for external reset event
Генерировать аппаратное прерывание при сбросе текущего значения счетчика внешним дискретным сигналом (в том случае, когда для сброса используется внешний дискретный сигнал)
Generate interrupt for change of direction event
Генерировать аппаратное прерывание при смене направления счета
При настройке аппаратных прерываний счетчика необходимо с каждым разблокированным прерыванием связать соответствующий программный блок обработки прерывания – организационный блок
OB типа
Hardware interrupt, внутри которого следует запрограммировать нужную реакцию ПЛК на данное прерывание
*
После конфигурирования счетчика, в процессе выполнения программы для управления его работой необходимо использовать команду CTRL_HSC, которая обычно помещается в соответствующие программные блоки обработки прерываний счетчика.
Принцип действия скоростного счетчика
Принцип работы скоростного счетчика в общем случае – при однофазовом алгоритме счета – состоит в том, что при поступлении импульса дискретного сигнала на дискретный вход счетчика контроллер (а точнее, его операционная система), в зависимости от установленного направления счета, увеличивает
*
Методика настройки аппаратных прерываний контроллера Simatic S7-1200 под- робно рассматривалась в предыдущей лабораторной работе (№ 8, стр. 77 – 84)

88 либо уменьшает на 1 текущее значение счетчика. Текущее значение скоростного счетчика имеет тип данных Dint и занимает в памяти контроллера 4 байта. Процессор ПЛК сохраняет текущее значение каждого скоростного счетчика в области памяти входных данных
I по следующим адресам (табл. 28).
Таблица 28
Адреса текущих значений HSC в ОЗУ ПЛК Simatic S7-1200
Скоростной счетчик
Тип данных
Адрес по умолчанию
HSC1
DInt
ID1000
HSC2
DInt
ID1004
HSC3
DInt
ID1008
HSC4
DInt
ID1012
HSC5
DInt
ID1016
HSC6
DInt
ID1020
Адреса памяти для хранения текущих значений скоростных счетчиков при необходимости могут быть изменены в процессе разработки программы (но не в процессе ее исполнения) при настройке свойств ПЛК.
При подаче питания на ПЛК и запуске программы пользователя в скоростной счетчик операционной системой контроллера загружаются указанные при конфигурации начальное значение (Initial counter value) и значение уставки (Initial reference value). В процессе подсчета импульсов, когда текущее значение счетчика становится равным значению уставки, генерируется аппаратное прерывание и вызывается соответствующий программный блок обработки прерывания. В этом блоке должны быть запрограммированы действия, определяющие реакцию контроллера на данное событие. Например, с помощью команды CTRL_HSC, помещенной в данный блок, счетчику могут быть присвоены новое текущее значение и/или значение уставки.
Если при сбросе текущего значения счетчика внешним дискретным сигналом (при конфигурации была активирована опция
Use external reset input), то в счетчик загружается начальное текущее значение (Initial counter value), указанное при конфигурации. Для направления счета и уставки могут быть загружены соответствующие начальные значения, указанные при конфигурации, либо с помощью команды CTRL_HSC, помещенной в блок обработки данного прерывания, могут быть заданы новые значения.

89
Команда CTRL_HSC
Команда CTRL_HSC управляет скоростными счетчиками.
Команда CTRL_HSC вводится в программу путем перетаскивания в нужное место программы мышью с вкладки
Instructions→Technology→Counting на панели Instruction. Каждая команда CTRL_HSC использует для сохранения данных структуру, хранящуюся в связанном с ней блоке данных. Блок данных создается и связывается с командой CTRL_HSC, когда команда вставляется в программу. Команда CTRL_HSC имеет следующие параметры (табл. 29).
Таблица 29
Параметры команды CTRL_HSC
Параметр
Тип
параме-
тра
Тип
данных
Описание
HSC входной HW_HSC
Идентификатор скоростного счетчика HSC – целое число, автоматически связываемое системой программирования с данным счетчиком при его конфигурации. Данное значение отображается на панели свойств
ЦПУ контроллера на вкладке
High speed counters (HCS)→HSCi→H
ardware identifier
DIR входной Bool
1 = Запрос на установку нового направления счета
CV входной Bool
1 = Запрос на установку нового значения счетчика
RV входной Bool
1 = Запрос на установку нового опорного значения счетчика
(уставки)
PERIOD входной Bool
1 = Запрос на установку нового интервала времени (только при измерении частоты)
NEW_DIR входной Int
Новое направление счета:
1 = вперед, с возрастанием;
–1 = назад, с убыванием
NEW_CV входной Dint
Новое текущее значение счетчика

90
Окончание таблицы 29
Параметр
Тип
параме-
тра
Тип
данных
Описание
NEW_RV входной Dint
Новое опорное значение счетчика
(уставка)
NEW_PERI
OD входной Int
Новое значение интервала времени в миллисекундах (только при измерении частоты):
10 = 0.01 с;
100 = 0.1 с;
1000 = 1 с
BUSY выходной Bool
Функция занята
STATUS выходной Word
Код результата выполнения команды
(в 16-ричном формате W#16#):
0 = нет ошибки;
80А1 – идентификатор HSC не обращается к HSC;
80B1 – недопустимое значение в NEW_DIR;
80B2 – недопустимое значение в NEW_CV;
80B3 – недопустимое значение в NEW_RV;
80B4 – недопустимое значение в NEW_PERIOD;
80D0 – данный счетчик
HSC не активирован в конфигурации ЦПУ
Многие конфигурационные параметры скоростных счетчиков устанавливаются только в конфигурации устройств проекта.
Некоторые параметры скоростных счетчиков инициализируются в конфигурации устройств проекта, но позже могут быть изменены под управлением программы. Параметры команды CTRL_HSC обеспечивают программное управление процессом счета, а именно, позволяют в процессе выполнения программы выполнять следующие действия:
- установку нового значения направления счета NEW_DIR;
- установку текущего значения счетчика на новое значение
NEW_CV;

91
- установку опорного значения счетчика на новое значение
NEW_RV;
- установку значения интервала времени (для режима измерения частоты) на новое значение NEW_PERIOD.
Если при исполнении команды CTRL_HSC следующие биты установлены в 1, то соответствующее значение NEW_xxx загружается в счетчик. Несколько запросов (более одного бита установлено одновременно) обрабатываются за одно исполнение команды CTRL_HSC.
- DIR = 1 – запрос на загрузку нового значения направления счета NEW_DIR, DIR = 0 – нет изменения;
- CV = 1 – запрос на загрузку нового значения NEW_CV,
CV = 0 – нет изменения;
- RV = 1 – запрос на загрузку нового значения NEW_RV,
RV = 0 – нет изменения;
- PERIOD = 1 – запрос на загрузку нового значения
NEW_PERIOD, PERIOD = 0 – нет изменения.
Если нет запроса на обновление параметра, то соответствующие входные значения игнорируются.
Команда CTRL_HSC обычно помещается в OB аппаратных прерываний, который исполняется, когда запускается аппаратное прерывание, связанное со счетчиком. Например, если событие CV
= RV запускает прерывание, связанное со счетчиком, то кодовый блок OB аппаратных прерываний исполняет команду CTRL_HSC и может изменить эталонное значение, загрузив значение NEW_RV.
Порядок выполнения лабораторной работы
В процессе выполнения лабораторной работы для закрепления сведений о настройке и использовании скоростных счетчиков импульсов необходимо создать в среде TIA Portal новый проект.
В данном проекте нужно добавить контроллер Simatic S7-1200
(см. стр. 19). В добавленном контроллере необходимо активировать скоростной счетчик HSC1 и настроить его свойства следующим образом:
- функция счета (Type of counting) – Count, подсчет числа импульсов;
- алгоритм счета (Operating phase) – Single phase, однофазный;
- направление счета определяется программой пользователя;

92
- начальное направление счета – с возрастанием;
- начальное значение счетчика 0;
- начальное опорное значение 15.
Необходимо активировать аппаратное прерывание при равенстве текущего значения счетчика опорному значению. При этом данному прерыванию нужно поставить в соответствие программный блок обработки прерывания – OВ типа
Hardware interrupt, в котором с помощью команды CTRL_HSC выполнить сброс в 0 текущего значения счетчика.
Далее необходимо добавить в проект сенсорную панель оператора, на экране которой организовать вывод текущего значения счетчика
HSC1. Для отображения значения счетчика можно использовать графический компонент I/O field (см. стр. 67).
Загрузить созданный проект в ПЛК и сенсорную панель оператора. Исследовать и объяснить работу созданной программы.
Далее необходимо исследовать работу скоростного счетчика в соответствии с тремя оставшимися алгоритмами счета: двухфазным (Two phase), квадратурным А/В (A/B counter) и квадратурным А/В 4-тактным (A/B counter fourfold).
Содержание отчета
1. Название и цель работы.
2. Временные диаграммы изменения дискретных сигналов на входах скоростного счетчика и его текущего значения, иллюстрирующие его работу для каждого из доступных алгоритмов счета.
3. Выводы.
Контрольные вопросы
1. В чем заключается принцип работы скоростного счетчика
HSC?
2. В чем состоит отличие скоростного счетчика HSC от счетчиков типа CTU, CTD, CTUD?
3. Для чего предназначена команда CTRL_HSC?
4. Объяснить с физической точки зрения особенности работы созданной программы на лабораторном стенде.

93
1   2   3   4   5   6   7   8   9   10