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

Краткий справочник по STL

.pdf
Скачиваний:
937
Добавлен:
16.02.2016
Размер:
4.28 Mб
Скачать

S7-300/400 Система команд

Описание

Команды_преобразования Содержание

15. Отбрасывание_дробной_части Формат: TRUNC

Описание. Содержимое ACCU1 рассматривается как число с плавающей точкой, оно преобразуется в Long integer путем отбрасывания дробной части. Причем, если исходное число не умещается в формате Long integer, то это рассматривается как ошибка, и производится установка битов OV и OS.

ACCU2 не изменяется.

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

-

-

Воздействует на

-

-

-

Х

Х

-

-

-

-

16. Обмен_байтами_в_двойном_слове Формат: CAD

Описание. Осуществляется обмен байтами в ACCU1 по

следующей схеме:

 

 

До выполнения команды

31

1

 

[____A___][____B___][____C___][____D___]

где A, B, C и D -значения соответствующих байтов ACCU1

 

 

 

 

После выполнения

31

1

 

[____D___][____C___][____B___][____A___]

 

 

 

ACCU2 не изменяется.

 

 

 

 

 

 

 

 

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

-

-

Воздействует на

-

-

-

-

-

-

-

-

-

17. Обмен_байтами_в_слове

 

 

 

 

 

 

Формат: CAW

 

 

 

 

 

 

 

 

 

Описание. Осуществляется обмен байтами в ACCU1_L.

 

 

ACCU2 и ACCU1_H не изменяются.

 

 

 

 

 

 

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

-

-

Воздействует на

-

-

-

-

-

-

-

-

-

Содержание

32

S7-300/400 Система команд

Описание

Содержание

Счетчики

Есть 7 команд для работы со счетчиками:

Установить_начальное_значение_счетчика

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

Очистить_флаг_детектирования_фронта

Подсчет_на_увеличение

Подсчет_на_уменьшение

Прочитать_текущее_значение_счетчика

Прочитать_текущее_значение_счетчика_в BCD формате

Содержание

33

S7-300/400 Система команд Описание

Счетчики Содержание

1. Установить_начальное_значение_счетчика Формат: S <счетчик>

Описание. Команда загружает из ACCU1_L стартовое значение в

указанный счетчик, если в бите RLO имел место переход от 0

к 1.

Значение в ACCU1_L должно быть в BCD формате и принадлежать отрезку [0…999].

 

 

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

 

-

Воздействует на

-

-

-

-

-

0

-

-

 

0

Пример:

 

 

 

 

 

 

 

 

 

 

A I 2.3

// Входной бит I 2.3 выбран в качестве условия, по

 

 

// которому будет загружаться счетчик C1

 

 

 

LC#350 // Начальное значение

S C1 // Загрузить начальное значение в счетчик Замечание. Счетчики создаются программным способом

операционной системой CPU (не путайте с Функциональными Счетными Модулями). Число счетчиков зависит от модели CPU – на старших моделях счетчиков больше.

2. Сброс_счетчика Формат: R <счетчик>

Описание. Команда R <счетчик> сбрасывает текущее значение указанного счетчика в нуль, если бит RLO=1.

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

-

-

-

-

-

0

-

-

0

Пример:

 

 

 

 

 

 

 

 

 

A I 2.3

// Условие сброса

 

 

 

 

 

 

RC3 // Сброс, если условие выполняется

3. Очистить_флаг_детектирования_фронта Формат: FR <счетчик>

Описание. Когда имеет место переход RLO от 0 к 1, команда FR <счетчик> очищает флаг обнаружения фронта, который используется для установки и счета адресуемого счетчика. Данная команда при нормальной установке или нормальном счете не требуется. Она применяется в тех случаях, когда необходимо загрузить, либо выполнить счет без учета переходов от 0 к 1 в битах, которые отвечают за такое управление (при условии, что эти биты находятся в состоянии 1).

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

-

-

-

-

-

0

-

-

0

Содержание

34

S7-300/400 Система команд

Описание

Счетчики Содержание

Пример:

AI 2.0 //В бите I2.0 реализуется условие для

//выполнения команды FR

FR C3 //Очистить флаг детектирования фронта для //выбранного счетчика C3, если в бите I2.0 имеет //место положительный фронт.

4. Подсчет_на_увеличение Формат: CU <счетчик>

Описание. Команда CU <счетчик> увеличивает значение выбранного счетчика на 1, если в RLO имеет место переход от 0 к 1 и значение самого счетчика меньше 999. Когда значение счетчика достигает верхнего предела 999, он останавливается. Дальнейшие переходы в RLO не имеют никакого влияния, и флаг переполнения OV не установлен.

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

-

-

-

-

-

0

-

-

0

Пример:

 

 

 

 

 

 

 

 

 

AI 2.1 // В бите I2.1 реализуется условие для увеличения

//значения счетчика на 1. Если в этом бите имеет место переход от 0 к 1,

//то счетчик увеличивает свое значение. Естественно, бит RLO является

//посредником между битом I2.1 и счетчиком C3

CU C3

// Счетчик увеличивает свое значение на 1,

//если условие выполняется.

5.Подсчет_на_уменьшение

Формат: CD <счетчик>

Описание. Команда CD <счетчик> уменьшает значение выбранного счетчика на 1, если в RLO имеет место переход от 0 к 1 и значение самого счетчика больше нуля. Когда значение счетчика достигает нижнего предела (т.е. нуля), он останавливается. Дальнейшие переходы в RLO не имеют никакого влияния, и флаг переполнения OV не установлен.

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

-

-

-

-

-

0

-

-

0

Пример:

 

 

 

 

 

 

 

 

 

L9 // Начальное значение

AI 0.1 // Если выполняется условие загрузки счетчика, то

SC1 // загрузить счетчик начальным значением

AI 0.0 // Если выполняется условие декремента счетчика,

CD

C1

// то вычесть 1 из текущего значения

AN

C1

// Значение счетчика равно нулю ?

=Q 0.0 // Q0.0 = 1 , если значение счетчика - нуль

Содержание

35

S7-300/400 Система команд Описание

Счетчики Содержание

6. Прочитать_текущее_значение_счетчика Формат: L <счетчик>

Описание. Команда загружает текущее значение указанного счетчика в двоичном формате (Integer) в ACCU1_L. Не забывайте, что содержимое ACCU1 предварительно сохраняется в ACCU2.

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

-

-

Воздействует на

-

-

-

-

-

-

-

-

-

Пример:

 

 

 

 

 

 

 

 

 

LC3 // Загрузить в ACCU1_L значение счетчика в

//двоичном формате

7.Прочитать_текущее_значение_счетчика_в BCD формате Формат: LC <счетчик>

Описание. Команда загружает текущее значение указанного

счетчика в двоично-десятичном формате (BCD) в ACCU1_L. Не забывайте, что содержимое ACCU1 предварительно сохраняется в ACCU2.

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

-

-

Воздействует на

-

-

-

-

-

-

-

-

-

Пример:

 

 

 

 

 

 

 

 

 

LC C3 // Загрузить в ACCU1_L значение счетчика // в BCD формате

Содержание

36

S7-300/400 Система команд

Описание

Содержание Команды_для_работы_с_блоками_данных

Шесть команд данной группы не зависят и не воздействуют на регистр флагов. Эти команды дают пользователю возможность работать

сблоками данных:

Обменять_содержимое_DB_и_DI

Открыть_блок_данных

Прочитать_длину_глобального_блока

Прочитать_длину_связанного_блока

Прочитать_номер_глобального_блока

Прочитать_номер_связанного_блока

Содержание

37

S7-300/400 Система команд

Описание

Команды_для_работы_с_блоками_данных Содержание

1.Обменять_содержимое_DB_и_DI Формат: CDB

Описание. Меняет содержимое регистров DB и DI между собой.

2.Открыть_блок_данных

Формат: OPN <идентификатор блока данных>

Описание. Сделать открытым для работы указанный блок данных, ранее открытый блок данных автоматически закрывается.

Пример:

 

 

OPN

DB

10

// Открыть DB10 как глобальный блок данных

L

DBW

35

// 35-ое слово из глобального блока данных

TMW 22

OPN

DI

20

 

L

DIB

12

// 12-ый байт из связанного блока данных

T

DBB

37

// И передать его в 37-ой байт глобального DB

OPN

DB

15

// Открыть DB15 как глобальный блок данных

 

 

 

// DB10 автоматически закрывается

L

DBB10

// Загрузить 10-ый байт из глобального DB15

3. Прочитать_длину_глобального_блока Формат: LDBLG

Описание. Содержимое ACCU1 сохраняется в ACCU2, затем в ACCU1 загружается длина текущего глобального блока данных в байтах.

4. Прочитать_длину_связанного_блока Формат: LDILG

Описание. Содержимое ACCU1 сохраняется в ACCU2, затем в ACCU1 загружается длина текущего связанного блока данных в байтах.

5. Прочитать_номер_глобального_блока Формат: LDBNO

Описание. Содержимое ACCU1 сохраняется в ACCU2, затем в ACCU1 загружается номер текущего глобального блока данных.

6. Прочитать_номер_связанного_блока Формат: LDINO

Описание. Содержимое ACCU1 сохраняется в ACCU2, затем в ACCU1 загружается номер текущего связанного блока данных.

Содержание

38

S7-300/400 Система команд

Описание

Содержание

Команды_переходов

 

 

18 команд, образующих данную группу, дают пользователю полный набор инструментов для написания программ с условными ветвлениями:

Если_установлен_BR

Если_сброшен_BR

Сохранение_RLO_и_переход_при_установленном RLO

Сохранение_RLO_и_переход_при_сброшенном RLO

Если_установлен_RLO

Если_сброшен_RLO

Если_установлен_OV

Если_установлен_OS

Если_меньше_нуля

Если_меньше_или_равно_нулю

Если_равно_нулю

Если_не_равно_нулю

Если_больше_или_равно_нулю

Если_больше_нуля

Если_ошибка

Безусловный_переход

Организация_цикла

Переход_по_значению_ACCU1

Содержание

39

Зависит от Воздействует на
STA RLO - - 1 -
OR
-
0
/FC
-
0
CC1 CC0 - -
- -
OS
-
-
OV
-
-

S7-300/400 Система команд Описание

Команды_переходов Содержание

1. Если_установлен_BR

Формат: JBI <метка>

Описание. Выполняется переход на указанную метку, если установлен флаг BR.

BR

*

-

2. Если_сброшен_BR

Формат: JNBI <метка>

Описание. Выполняется переход на указанную метку, если сброшен флаг BR.

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

*

-

-

-

-

-

-

-

-

Воздействует на

-

-

-

-

-

0

1

-

0

3. Сохранение_RLO_и_переход_при_установленном RLO Формат: JCB <метка>

Описание. Первым действием RLO копируется в BR, затем

выполняется переход на указанную метку, если RLO=1

 

 

 

 

 

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

Х

-

-

-

-

0

1

1

0

4. Сохранение_RLO_и_переход_при_сброшенном RLO Формат: JNB <метка>

Описание. Первым действием RLO копируется в BR, затем

выполняется переход на указанную метку, если RLO=0

 

 

 

 

 

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

Х

-

-

-

-

0

1

1

0

5. Если_установлен_RLO Формат: JC <метка>

Описание. Выполняется переход на указанную метку, если

установлен флаг RLO.

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

 

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

-

-

-

-

-

0

1

1

0

Содержание

40

S7-300/400 Система команд

Описание

Команды_переходов Содержание

6. Если_сброшен_RLO

Формат: JCN <метка>

Описание. Выполняется переход на указанную метку, если сброшен флаг RLO.

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

-

-

-

-

-

0

1

1

0

7. Если_установлен_OV Формат: JO <метка>

Описание. Выполняется переход на указанную метку, если

установлен флаг OV.

 

 

 

 

 

 

 

 

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

*

-

-

-

-

-

Воздействует на

-

-

-

-

-

-

-

-

-

8. Если_установлен_OS

 

 

 

 

 

 

 

Формат: JOS <метка>

 

 

 

 

 

 

 

Описание.

Выполняется

переход

на указанную

метку, если

установлен флаг OS.

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

 

Зависит от

-

-

-

-

*

-

-

-

-

Воздействует на

-

-

-

-

0

-

-

-

-

Замечание. Почему команда №7 'JO' не сбрасывает бит OV, а команда 'JOS' сбрасывает бит OS?

9. Если_меньше_нуля Формат: JM <метка>

Описание. Если результат предыдущей арифметической команды оказался меньше

нуля, то выполняется переход на указанную метку.

 

 

 

 

 

 

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

*

*

-

-

-

-

-

-

Воздействует на

-

-

-

-

-

-

-

-

-

Замечание. CC1=0, CC0=1 результат меньше нуля.

10. Если_меньше_или_равно_нулю Формат: JMZ <метка>

Описание. Если результат предыдущей арифметической команды оказался меньше или равен нулю, то выполняется переход на указанную метку.

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

*

*

-

-

-

-

-

-

Воздействует на

-

-

-

-

-

-

-

-

-

Замечание. CC1=0, CC0=0 результат равен нулю.

Содержание

41