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

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

адресации:

Идентификатор операнда и адрес внутри области памяти, определяемой идентификатором операнда (см. таблицы 5.1 и 5.2).

Бит, таймер или счетчик, передаваемый в качестве параметра (см.

табл. 5.3).

 

 

 

 

 

 

 

 

 

Табл. 5.1

Идентификатор

 

Максимальный диапазон адресов в соответствии с видом

операнда

 

 

 

 

 

адресации

 

 

 

Прямая

Косвенная

Косвенная через регистр,

 

 

 

 

через память

 

внутри области

I

 

от 0.0 до

[DBD]

от 0 до

AR1, P#байт.бит]

Q

 

65 535.7

 

[DID]

65 532

[AR2, P#байт.бит]

 

 

 

 

[LD]

 

от 0.0 до 8 191.7

 

 

 

 

[MD]

 

M

 

от 0.0 до

[DBD]

от 0 до

AR1, P#байт.бит]

 

 

65 535.7

 

[DID]

65 532

[AR2, P#байт.бит]

 

 

 

 

[LD]

 

 

 

 

 

 

 

 

[MD]

 

от 0.0 до 8 191.7

DBX

 

от 0.0 до

[DBD] от 0 до

AR1, P#байт.бит]

DIX

 

65 535.7

 

[DID]

65 532

[AR2, P#байт.бит]

L

 

 

 

[LD]

 

от 0.0 до 8 191.7

 

 

 

 

[MD]

 

 

 

 

 

 

 

 

 

 

Табл. 5.2.

Идентификатор

Максимальный диапазон адресов в соответствии с

 

операнда

 

 

 

видом адресации

 

 

 

 

 

Прямая

 

Косвенная через память

T

 

 

от 0 до 65 535

 

[DBW]

от 0 до 65 534

C

 

 

 

 

 

 

 

[DIW]

 

 

 

 

 

 

 

 

[LW]

 

 

 

 

 

 

 

 

 

[MW]

 

 

 

 

 

 

 

 

 

 

Табл. 5.3.

Операнд

 

 

Формат адресного параметра

Символическое имя

 

 

Бит, таймер или счетчик, передаваемый

 

 

 

 

 

 

 

 

как параметр

75

15.2. АНАЛИЗ УСЛОВИЙ С ПОМОЩЬЮ И, ИЛИ И ИСКЛЮЧАЮЩЕГО ИЛИ

С помощью битовых логических команд можно опрашивать биты слова состояния CC 0, CC 1, BR, OV и OS. На эти биты оказывают влияние следующие команды (табл. 5.4).

 

Табл. 5.4

Типы команд

Команда

Арифметика с фиксированной точкой

)I, *I, /I,<I, )D, *D, /D,<D, MOD

Операции сравнения (арифметика с

==I, <>I, <I, <=I, >I, >=I, ==D, <>D, <D,

фиксированной точкой)

<=D,>D, >=D

Арифметика с плавающей точкой

)R, *R,<R , /R, SQRT, SQR, LN, EXP,

 

SIN, COS, TAN, ASIN, ACOS, ATAN

Сравнение чисел с плавающей точкой

==R, <>R, <R, <=R, >R, >=R

Преобразование

BTI, BTD, RND, RND*, RND), TRUNC,

 

NEGI, NEGD

Функции сдвига и циклического

SLW, SRW, SLD, SRD, SSI, SSD, RLD,

сдвига

RRD, RLDA, RRDA

Логические операции со словами

AW, OW, XOW, AD, OD, XOD

Скобочные выражения

)

Сохранение RLO в регистре BR

SAVE

Логическое управление

JCB, JNB, SPS

Управление программой

BEB, BE, BEA, CC, UC

Передача

T STW

Отношение результата к 0

Комбинация битов CC 1 и CC 0 в слове состояния может быть легко опрошена с помощью «замещающих операндов» (например, >0, ==0, <0 и т.д.). Табл. 5.5 показывает связь между различными комбинациями битов и упрощенным опросом. Например, вы можете опросить комбинацию CC 1 = 0 и CC 0 = 1 в команде И с помощью A <0.

 

 

Табл. 5.5

Если имеет место следующая комбинация сигналов

то опрос может

в слове состояния,

происходить с помощью

состояние сигнала CC 1

состояние сигнала CC 0

 

1

0

> 0

0

1

< 0

0 или 1

1 или 0

<> 0

1 или 0

0 или 0

>= 0

0 или 0

1 или 0

<= 0

0

0

= = 0

1

1

UO

76

Пример

L +10

Загрузить целое число 10 в младшее слово аккумулятора 1 в

 

качестве нижней границы.

L MW30

Загрузить значение слова памяти MW30 в младшее слово

 

аккумулятора 1, передав целое значение 10 в младшее слово

 

аккумулятора 2.

<=I

10 меньше или равно значению MW30? Если да, то установить

 

RLO в 1; иначе сбросить RLO в 0.

L +100

Загрузить целое число 100 в младшее слово аккумулятора 1 в

 

качестве верхней границы, передав значение MW30,

 

сохраненное в младшем слове аккумулятора 1, в младшее слово

 

аккумулятора 2.

-I

Вычесть 100 из значения MW30. Результат устанавливает CC 1 и

 

CC 0 в соответствии с битовой комбинацией, показывающей

 

отношение результата к 0 (см. табл. 5.5). RLO не меняется.

А <=0

В соответствии с битовой комбинацией в CC 1 и CC 0,

 

выполняется ли условие <= 0? Да дает 1; нет дает 0 (см. табл.

 

5.5). Скомбинировать эту 1 или этот 0 с RLO в соответствии с

 

таблицей истинности для И, сохранить результат в бите RLO.

= Q 4.0

Записать значение RLO как состояние сигнала выхода Q 4.0.

 

Через катушку на выходе Q 4.0 протекает ток (она имеет

 

состояние сигнала 1), если значение MW30 больше или равно 10

 

и меньше или равно 100.

 

 

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

15.3. КОМАНДЫ ДЛЯ ОЦЕНКИ ФРОНТОВ: FP, FN

Вы можете использовать команды Положительный фронт (FP) и Отрицательный фронт (FN) как чувствительные к изменению сигнала контакты релейно-контактной схемы. Эти команды обнаруживают и реагируют на изменения результата логической операции. Переход с 0 на 1 называется «положительным фронтом». Переход с 1 на 0 называется «отрицательным фронтом».

Следующий список операторов позволяет программе реагировать на положительный фронт импульса (рис. 5.1).

77

A I 0.0

FP M 1.0

= Q 4.0

Номер цикла

 

1

 

2

 

3

 

4

 

5

 

6

 

7

 

8

 

9

 

10

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.1. Программирование реакции на положительный фронт

Если программируемый логический обнаруживает положительный фронт на контакте I 1.0, он активизирует выход Q 4.0 на один цикл ОВ1. Программируемый логический контроллер сохраняет результат логической операции, выполненной командой А, в бите памяти (меркере) фронта M 1.0 и сравнивает его с RLO предыдущего цикла сканирования. (В примере на рис. 5.1 RLO оператора «A I 1.0» оказался равным состоянию сигнала входа I 1.0. Однако это не будет иметь места в каждой программе). Если текущий RLO равен 1, а RLO предыдущего цикла сканирования, сохраненный в бите M 1.0, равен 0, то оператор FP устанавливает RLO в 1. Оператор FP обнаруживает положительный фронт на контакте (т.е. изменение состояния RLO с 0 на 1). Если RLO не меняется (текущий RLO и предыдущий RLO, сохраненный в бите памяти фронта, оба равны 0 или 1), то оператор FP сбрасывает RLO в 0.

Рис. 5.2 показывает список операторов, который дает программе возможность реагировать на отрицательный фронт. Если вы используете в своей программе команду FP или FN, то бит памяти, являющийся операндом этой команды, используется FP или FN исключительно для своих собственных целей запоминания. Поэтому вы не должны использовать команды, которые могли бы изменить этот бит. В противном случае вы исказите сохраненный RLO. Это предупреждение относится ко всем областям памяти, задаваемым идентификаторами операнда.

A I 0.0

FN M 1.0

= Q 4.0

Номер цикла

1

2

3

4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

 

 

Рис. 5.2. Программирование реакции на отрицательный фронт

78

15.4. ВЫХОД ЦЕПИ БУЛЕВЫХ ЛОГИЧЕСКИХ ОПЕРАЦИЙ

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

Установить (S): если RLO в предыдущей команде был установлен в 1, то S устанавливает в 1 состояние сигнала контакта или катушки, к которой обращается эта команда;

Сбросить (R): если RLO в предыдущей команде был установлен в 1, то R сбрасывает в 0 состояние сигнала контакта или катушки, к которой обращается эта команда;

Присвоить (=): независимо от состояния RLO его значение присваивается операнду, к которому обращается эта команда.

Логическая цепь завершается, когда сбрасывается бит первичного опроса (бит

FC). Когда значение бита FC равно 0, это указывает, это указывает, что следующая команда в программе является первой командой новой логической цепи. Команда Установить (S), Сбросить) или Присвоить (=) завершает

логическую цепь сбросом бита первичного опроса (бита FC ) в 0. (Команды

условного перехода также сбрасывают бит FC в 0). Логические цепи, начинающиеся командами A(, AN(, O( и т.д., должны завершаться командой ). Так как эти команды могут использоваться также в середине логической цепи, то они образуют разрыв в этой цепи. Это значит, что новая логическая цепь начинается раньше, чем завершена старая. Для продолжения старой логической цепи в правильной последовательности после завершения команд, которые

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

15.5. КОМАНДЫ УСТАНОВКИ И СБРОСА: S И R

Команда S устанавливает бит, к которому производится обращение, в 1, если результат логической операции от предыдущего оператора равен 1 и главное управляющее реле (MCR, см. раздел управляющих команд) активизировано (т.е. состояние его сигнала равно 1). Если MCR не активизировано (состояние его сигнала равно 0), то адресуемый бит не меняется. Команда S завершает логическую цепь. Команда S удерживает в 1 состояние сигнала, пока команда R не изменит состояние сигнала в 0. Тот факт, что состояние сигнала остается равным 1, пока команда R не сбросит его в 0, указывает на статический характер команд S и R.

79

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

12
1673
271
2863
2994
3788
3857
54
5719
605