Материал: Основы программирования микроконтроллеров на языке step 7. Слепокуров Ю.С

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

Опрос состояния сигнала с помощью команды A, O или X дает результат, равный «1», когда значение счетчика больше нуля.

Опрос состояния сигнала с помощью команды A, O или X дает результат, равный «0», когда значение счетчика равно нулю.

17.1. УСТАНОВКА, СБРОС И РАЗБЛОКИРОВКА СЧЕТЧИКА Установка счетчика в программе на AWL возможна одним из трех операторов:

Опрос состояния сигнала на равенство 0 или 1 (например, A I 2.3)

Загрузка значения счетчика (например, L C# 3) в младшее слово аккумулятора 1

Установка счетчика со значением, которое вы загрузили (например, S C 1). Эта операция пересылает значение счетчика из аккумулятора 1 в слово счетчика.

В программе на AWL изменение результата логической операции (RLO) с 0 на 1 перед командой Установить (S) устанавливает счетчик на запрограммированное счетное значение. Запрограммированное счетное значение и команда установки должны следовать сразу за логической операцией, определяющей условия установки счетчика.

Установить счетчик на определенное значение можно загрузкой этого значения в младшее слово аккумулятора 1 и, немедленно после этого, установкой счетчика. Когда вы устанавливаете в программе счетчик, CPU ищет в аккумуляторе 1 счетное значение. Затем CPU передает это счетное значение из аккумулятора 1 в слово счетчика, которое указано в операторе установки (например, S C 1). Диапазон счетных значений лежит между 0 и 999.

Пример установки счетчика

A I 2.3 Опросить состояние сигнала на входе I 2.3.

L C#3 Если состояние сигнала равно 1, загрузить счетное значение 3 в аккумулятор 1.

S C1 Установить счетчик C 1 на счетное значение 3. Эта операция пересылает счетное значение 3 из аккумулятора в слово счетчика 1.

Сброс счетчика

Счетчик сбрасывается с помощью команды Сбросить (R). CPU сбрасывает счетчик, когда результат логической операции равен 1 непосредственно перед командой R в вашей программе. Пока RLO перед оператором R равен 1, команда A, O или X, опрашивающая состояние сигнала счетчика, дает результат, равный 0, а команда AN, ON или XN – результат, равный 1. Когда программа сбрасывает счетчик, она очищает его, т.е. сбрасывает его значение в

0.

90

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

При программировании счетчиков следует придерживаться следующей последовательности:

1.Прямой счет

2.Обратный счет

3.Установка счетчика

4.Сброс счетчика

5.Опрос состояния сигнала счетчика

6.Загрузка значения счетчика (чтение значения счетчика)

Разблокировка счетчика для повторного пуска

Изменение с 0 на 1 результата логической операции перед командой Разблокировать (FR) разблокирует счетчик. CPU выполняет команду FR только при положительном фронте сигнала. Разблокировка счетчика не требуется ни для установки счетчика, ни для нормального счета. Разблокировка используется только для того, чтобы устанавливать счетчик или производить прямой или обратный счет, если перед соответствующим оператором счета требуется положительный фронт сигнала (переход из 0 в 1) и если бит RLO перед соответствующим оператором имеет состояние сигнала 1.

17.2.ПРЯМОЙ И ОБРАТНЫЙ СЧЕТ

Впрограмме на AWL изменение результата логической операции с 0 на 1 перед командой прямого счета (CU) увеличивает счетчик. Каждый раз, когда непосредственно перед командой прямого счета появляется положительный фронт RLO, счетчик увеличивается на одну единицу. Когда счет достигает своего верхнего предела, равного 999, увеличение прекращается, и дальнейшее изменение состояния сигнала на входе прямого счета никакого влияния не оказывает. Меры против переполнения (OV) не предусмотрены.

Bзменение результата логической операции с 0 на 1 перед командой обратного счета (CD) уменьшает счетчик. Каждый раз, когда непосредственно перед командой обратного счета появляется положительный фронт RLO, счетчик уменьшается на одну единицу. Когда счет достигает своего нижнего предела, равного 0, уменьшение прекращается, и дальнейшее изменение состояния сигнала на входе обратного счета никакого влияния не оказывает. Счетчик не ведет счета с отрицательными значениями.

17.3.ЗАГРУЗКА ЗНАЧЕНИЯ СЧЕТЧИКА В ВИДЕ ЦЕЛОГО ЧИСЛА

Значение счетчика хранится в слове счетчика в двоичном коде. Вы можете использовать следующую команду для считывания двоичного значения

91

счетчика из слова счетчика и загрузки его в младшее слово аккумулятора 1: L <слово счетчика>

Такой способ загрузки называют непосредственной загрузкой значения счетчика.

Вы можете использовать значение, содержащееся в аккумуляторе 1 в качестве результата операции загрузки L для дальнейшей обработки. Но вы не можете передать значение из аккумулятора в слово счетчика. Если вы хотите запустить счетчик с заданным счетным значением, вам нужно использовать соответствующий оператор установки счетчика.

17.4. ЗАГРУЗКА ЗНАЧЕНИЯ СЧЕТЧИКА В ДВОИЧНО-ДЕСЯТИЧНОМ ФОРМАТЕ

Значение счетчика хранится в слове счетчика в двоичном коде. Вы можете использовать следующую команду для считывания значения счетчика в двоично-десятичном формате (BCD) и загрузки его в младшее слово аккумулятора 1:

LC <слово счетчика>

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

17.5. ПРИМЕР СЧЕТЧИКА

Рис. 7.1 дает пример прямого счета, обратного счета, установки и сброса счетчика, опроса состояния сигнала счетчика и загрузки значения счетчика. Пример придерживается нормальной последовательности программирования. На рисунке числа указывают на объяснения, приведенные ниже.

1.Изменение RLO с 0 на 1 на входе установки устанавливает счетчик на счетное значение 3. Переход с 1 на 0 на входе установки воздействия на счетчик не оказывает.

2.Изменение RLO с 0 на 1 на входе обратного счета уменьшает счетчик на единицу. Переход с 1 на 0 на входе обратного счета воздействия на счетчик не оказывает.

3.Результат опроса состояния сигнала оператором A C 1 равен 0, когда счетное значение равно 0.

4.Изменение RLO с 0 на 1 на входе прямого счета увеличивает счетчик на единицу. Переход с 1 на 0 на входе прямого счета воздействия на счетчик не оказывает.

5.Если RLO на входе сброса равен 1, счетчик сбрасывается. Опрос состояния сигнала дает 0. Изменение RLO с 1 на 0 на входе сброса воздействия на счетчик не оказывает.

92

6.Изменение RLO с 0 на 1 на входе прямого счета при наличии сигнала сброса вызывает кратковременное увеличение счетчика, после чего он немедленно сбрасывается непосредственно следующим далее в программе оператором сброса. (На рис. 7.1 это кратковременное увеличение показано импульсной линией на временной диаграмме). После этого опрос состояния сигнала дает результат, равный 0.

7.Изменение RLO с 0 на 1 на входе разблокировки при наличии сигналов прямого и обратного счета заставляет счетчик кратковременно увеличиться, а затем немедленно уменьшиться из-за непосредственно следующего в программе оператора обратного счета. (На рис. 7.1 это кратковременное увеличение показано импульсной линией на временной диаграмме). Переход с

1на 0 на входе разблокировки воздействия на счетчик не оказывает.

I 2.0

Разблокировка

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

I 2.1 Прямой счет

 

 

 

 

 

4

 

6

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I 2.2

Обратный счет

2

 

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I 2.3

Установка

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I 2.4

Сброс

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реакция счетчика

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опрос

выхода

 

 

 

 

 

 

3

 

 

 

 

 

 

 

счетчика Q 4.0

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 7.1. Пример команд счетчика

Рекомендуемая последовательность команд работы со счетчиком имеет следующий вид:

A

I 2.0

 

FR

C1

Разблокировать счетчик C 1.

A

I 2.1

 

CU

C1

Прямой счет (увеличение на 1).

A

I 2.2

 

CD

C1

Обратный счет (уменьшение на 1).

93

A

I 2.3

 

L

C#3

 

S

C1

Установить счетчик C 1.

A

I 2.4

 

R

C1

Сбросить счетчик C 1.

A

C1

Опросить состояние сигнала счетчика C 1.

=

Q 4.0

 

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

18. КОМАНДЫ ЗАГРУЗКИ И ПЕРЕДАЧИ

Команды загрузки (L) и передачи (Т) позволяют программировать обмен информацией между модулями ввода или вывода и областями памяти или между областями памяти. CPU выполняет эти команды в каждом цикле как безусловные команды, т.е. результат логической операции на них не влияет.

Команды L и T производят обмен информацией через аккумулятор. Команда L записывает (загружает) содержимое своего исходного адреса в аккумулятор 1, сдвигая всю уже содержащуюся там информацию в аккумулятор 2. Старое содержимое аккумулятора 2 заменяется. Команда Т копирует содержимое аккумулятора 1 и записывает его в соответствующую целевую память. Так как команда Т только копирует информацию, находящуюся в аккумуляторе 1, то эта информация остается доступной для других команд.

Команды L и T могут обрабатывать информацию байтами (8 битов), словами (16 битов) и двойными словами (32 бита).

Аккумулятор содержит 32 бита. Данные длиной менее 32 битов располагаются в аккумуляторе справа. Остальные биты аккумулятора заполняются нулями.

18.1. ЗАГРУЗКА И ПЕРЕДАЧА

Вы можете использовать команду загрузки (L) или передачи (T) для передачи информации в аккумулятор 1 или из него порциями следующих размеров:

байт (B, 8 битов);

слово (W, 16 битов);

двойное слово (D, 32 бита).

Байт загружается в младший байт младшего слова аккумулятора 1. Слово загружается в младшее слово аккумулятора 1. Неиспользуемые байты при загрузке в аккумулятор сбрасываются в ноль.

94

Смотрите также:

12
1673
271
2863
2994
3788
3857
54
5719
605