Материал: Программируемые логические контроллеры SIMATIC S7-300 400. лабораторный практикум. Таратынов О.Ю., Ткалич С.А

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Источник: https://studfile.net/preview/16568750/