Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3023

.pdf
Скачиваний:
8
Добавлен:
15.11.2022
Размер:
2.9 Mб
Скачать

15). Биты, которые освобождаются после сдвига, заполняются знаковым битом (бит 15). Биты 16 - 31 не изменяются . Вход N определяет количество бит, на которое должно быть сдвинуто число. Если N больше 16, выполняется сдвиг на 16 бит. Если инструкция выполняется (EN = 1), на выход ENO поступает бит, сдвинутый последним (этот бит соответствует битам CC1 и RLO в слове состояния). Это означает, что другие инструкции, зависимые от ENO (каскадное задание операций), не выполняются, если последний сдвинутый бит был равен “0”.

SHR_DI / SSD - операция Shift Right Signed Double Integer (сдвиг вправо двойного целого со знаком) сдвигает вправо все содержимое аккумулятора ACCU 1 (биты 0 - 31) на указанное число бит. Допустимые значения для N: 0 - 32.

ROL_DW / RLD - операция Rotate Left Doubleword (циклический сдвиг влево двойного слова) сдвигает содержимое всего ACCU1 влево (рис. 7.12). Высвобождаемые биты заполняются значениями выталкиваемых битов.

Рис. 7.12. Операции циклического сдвига

Последний сдвинутый бит загружается в бит СС1 слова состояния и подается на выход ENO. Это означает, что другие

90

инструкции, зависимые от ENO (каскадное задание операций), не выполняются, если последний сдвинутый бит был равен “0”.

ROR_DW / RRD - Циклический сдвиг вправо двойного слова.

8. ТАЙМЕРНЫЕ ФУНКЦИИ

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

Количество доступных программе аппаратных таймеров зависит от конкретного типа CPU, для семейства S7-300 чаще всего их 256. В этом случае первый таймер обозначаются как T0, последний – T255. Этого количества более чем достаточно для большинства программ, поэтому всячески избегайте повторного использования (запуска) одного и того же таймера. Убедиться в том, что таймер еще не занят удобнее всего по перекрестным ссылкам (Reference Data).

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

Номер задействованного таймера не имеет никакого значения, все они одинаковы, их поведение зависит только от применяемой функции запуска (в семействе S7-200 номер таймера определяет дискретность его отсчетов). Таких функций всего 5. Эти функции семейству S7 достались “по наследству” от предшественников – семейства контроллеров SIMATIC S5. Отсюда ограничения на диапазон допустимых интервалов времени и своеобразный формат уставки времени таймера S5Timer (рис. 8.1). Это 16-разрядное слово, 3 младших тетрады которого – число в формате BCD, задающее количество дискрет времени. Вес одной дискреты (базу времени) определяет старшая тетрада.

91

Рис. 8.1. Формат таймера S5Timer

Когда таймер запущен в программе, величина времени декрементируется операционной системой CPU (независимо от нашей программы) через интервалы времени, заданные базой времени. База времени это интервал, через который текущее значение времени в таймерном слове уменьшается на 1, и как только станет равным 0 – интервал времени отработан.

Возможные значения базы времени:

0 – 0.01 с;

1 – 0.1 c;

2 – 1 c;

3 – 10 c.

Отсюда наименьший интервал времени в качестве уставки таймера - 10 мс, а наибольший - 9990 с.

Вы можете запрограммировать таймер полностью как блочный элемент (рис. 8.2 – 8.6).или с помощью отдельных программных элементов (рис. 8.7).

При запуске таймера вы определяете требуемый тип таймера, его номер, условие запуска (вход S), как долго он должен работать (вход TV), условие его сброса (вход R).

Таймер контролируется путем опроса его состояния (выход Q) или текущего значения таймера, которое вы можете получить из таймера в двоичном (выход BI) или двоичнодесятичном коде (выход BCD).

Сразу отметим, что для всех типов таймеров для запуска всегда необходимо изменение сигнала S, т.е. необходим фронт RLO - нарастающий для таймеров на включение и спадающий для таймеров на выключение.

92

Для всех типов таймеров активный уровень на входе R=1 приводит к остановке таймера, при этом текущее содержимое таймерного слова обнуляется (выходы BI, BCD), дискретный выход таймера Q = 0.

Для удобства изложения введем понятия ”короткое событие”, которое длится на входе запуска S не дольше уставки таймера (вход TV) и ”длинное событие”, продолжительность которого превышает или равно уставке таймера.

Рассмотрим функции таймеров в том порядке, в каком они представлены в редакторе LAD/FBD.

Таймер S_PULSE – импульсный таймер

Импульсный таймер S_PULSE (Pulse) ограничивает длительность импульса на выходе Q до величины уставки, короткие события на входе S воспроизводятся на выходе Q с той же длительностью (рис. 8.2).

Рис. 8.2. Таймер S_PULSE (SP) - импульсный таймер

93

Импульсный таймер S_PULSE запускается по положительному фронту сигнала на входе S (изменяется из “0” в “1”). Выход Q также устанавливается в “1”.

Выход Q сбрасывается, когда: время таймера истекло или сигнал запуска S изменяется из “1” в “0” или вход сброса R имеет сигнал "1".

Таймер S_PEXT – удлинненый импульс

Таймер S_PEXT (Extended Pulse) и для коротких и для длинных событий на входе S на выходе Q формирует сигнал длительностью не менее уставки TV (рис. 8.3).

Рис. 8.3. Таймер S_PEXT (SE) - удлиненный импульс

Таймер S_PEXT запускается по нарастающему фронту на входе запуска (S). Таймер продолжает работать в течение времени, заданного на входе TV, даже если состояние сигнала на входе S меняется на 0 до истечения заданного времени. Пока таймер работает, выход Q выдает сигнал 1. Таймер перезапускается с заданным временем, если состояние сигнала на входе S меняется с 0 на 1 во время работы таймера.

94

Если во время работы таймера происходит изменение с 0 на 1 сигнала на входе сброса (R), то таймер сбрасывается.

Таймер S_ODT – задержка включения

Таймер S_ODT (ON Delay) при длинных событиях задерживает появление сигнала на выходе (Q=1) на величину уставки времени TV, пока вход запуска S=1. При коротких событиях выход Q остается выключенным (рис. 8.4).

Рис. 8.4. Таймер S_ODT (SD) - задержка включения

Таймер S_ODT запускается, если имеется нарастающий фронт на входе запуска S. Таймер продолжает работать в течение времени, заданного на входе TV, пока состояние сигнала на входе S равно 1. Выход Q выдает 1, когда время истекло без ошибок при состоянии сигнала на входе S равном 1. Если состояние сигнала на входе S меняется с 1 на 0 во время работы таймера, таймер останавливается. В этом случае выход Q остается в 0. Если во время работы таймера происходит изменение с 0 на 1 сигнала на входе сброса (R), то таймер сбрасывается. Это изменение сбрасывает в ноль время и базу времени. На выходе Q выдается 0. При этом таймер сбрасывается независимо от сигнала на входе S .

95

Текущее значение времени может быть считано на выходах BI и BCD. Значение времени на BI представлено в двоичном формате, а на BCD – в двоично-десятичном формате. Это время равно разнице между начальным значением, заданным на входе TV и временем , прошедшим с момента запуска таймера.

Таймер S_ODTS – задержка включения с запоминани-

ем

Таймер S_ODTS (Stored ON Delay) и при коротких и при длинных событиях задерживает появление сигнала на выходе (Q=1) на величину уставки времени TV. Для повторного запуска необходим сигнал сброса R (рис. 8.5).

Рис. 8.5. Таймер S_ODTS (SS) - задержка включения с запоминанием

Таймер S_ODTS запускается, если имеется нарастающий фронт на входе запуска S. Таймер продолжает работать в течение времени, заданного на входе TV, даже если состояние сигнала на входе S меняется на 0 до истечения заданного времени.

96

Состояние сигнала на выходе Q выдает значение 1, по истечении заданного времени, независимо от состояния сигнала на входе S. Таймер перезапускается с заданным временем, если состояние сигнала на входе S меняется с 0 на 1 во время работы таймера.

Изменение с 0 на 1 сигнала на входе сброса R таймера сбрасывает таймер независимо от состояния RLO на входе S.

Текущее значение времени может быть считано на выходах BI и BCD. Значение времени на BI представлено в двоичном формате, а на BCD - в двоично-десятичном формате. Это время равно разнице между начальным значением, заданным на входе TV и временем , прошедшим с момента запуска таймера.

Таймер S_OFFDT – задержка выключения

Таймер S_OFFDT (OFF Delay) удерживает на выходе Q=1 пока вход S=1. После деактивации входа S=0 выход выключается Q=0 спустя время TV (рис. 8.6).

Рис. 8.6. Таймер S_OFFDT (SF) - задержка выключения

97

Таймер S_OFFDT запускается, если имеется падающий фронт на входе запуска S. Выход Q равен 1, когда состояние сигнала на входе S равно 1 или пока таймер работает. Таймер сбрасывается, когда состояние сигнала на входе S меняется с 0 на 1 во время работы таймера. Таймер не перезапускается, пока состояние сигнала на входе S снова не изменится с 1 на 0.

Изменение с 0 на 1 сигнала на входе сброса R таймера во время его работы сбрасывает таймер.

Текущее значение времени может быть считано на выходах BI и BCD. Значение времени на BI представлено в двоичном формате, а на BCD - в двоично-десятичном формате. Это время равно разнице между начальным значением, заданным на входе TV и вр еменем , прошедшим с момента запуска таймера.

Битовые команды таймеров

Все таймеры могут запускаться также с помощью простых битовых команд (рис. 8.7).

Рис. 8.7. Битовые команды таймеров

98

Сходства и различия между этими операциями и рассмотренными таймерными инструкциями следующие:

Сходства:

Условия запуска на входе S

Задание величины времени

Условия сброса на входе R

Сигнал отклика на выходе Q Различия:

Не возможно проверить величину текущего времени (здесь нет выходов BI и BCD).

9. ИНСТРУКЦИИ СЧЕТЧИКОВ

Счетчики имеют область, зарезервированную для них в памяти CPU. Эта область памяти резервирует по одному 16битному слову для каждого адреса счетчика. При программировании в LAD/FBD поддерживается 256 счетчиков. Инструкции счета являются единственными функциями, которые имеют доступ к области памяти счетчиков.

Структура битов в счетчике аналогична таймерам (рис. 8.1) за исключением базы времени, эта тетрада не используется. Счетчик устанавливается на требуемое значение загрузкой числа между 0 и 999 в качестве значения счетчика, например, 127 в следующем формате: C#127. С# означает двоичнодесятичный формат (BCD-формат: каждая группа из четырех битов содержит двоичный код для одного десятичного разряда).

Вы можете изменять значение счетчика, используя следующие инструкции (рис. 9.1 – 9.2):

S_CUD - прямой/обратный счет

S_CD - обратный счет

S_CU - прямой счет

---(SC) - катушка назначения параметров

---(CU) - катушка прямого счета

---(CD) - катушка обратного счета

99

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]