step7-pro
голосование
Чего не хватает сайту
поиска
новых статей
статей о подключении оборудования
примеров решения задач
форума
ничего не нужно
поиск


новости
Появился поиск по сайту. Обещаю его улучшить и сделать более адекватным
--------------11.10.11
Новая гостевая книга надеюсь избавит от спама. Еще немного и появится поис и многое другое
--------------11.07.11
C НАСТУПАЮЩИМ НОВЫМ ГОДОМ И РОЖДЕСТВОМ!
--------------30.12.10
Новые статьи по системным функциям и блокам
--------------25.12.10
Теперь у нас новый дизайн, конечно не супер но надеюсь всем понравиться
--------------05.12.10
Форум закрыт по причине ненадобности
--------------08.09.10
Гостевая книга временно отключена из спама
--------------15.10.10
Наш форум forum.step7-pro.ru общайтесь на здоровье!
--------------03.06.10
Наш сайт в twitter Вы сможете подписаться на рассылку новостей и узнавать о новых статьях на нашем сайте.
--------------20.03.10
После долгого перерыва наш сайт снова начал работать
--------------26.02.10
реклама

Команды сдвига

Команда сдвига используются для сдвига битов входа IN, влево или вправо. Сдвиг влево умножает содержимое входа IN на 2 в степени n (2n); сдвиг вправо делит содержимое входа IN на 2 в степени n (2n). Например, если вы сдвигаете двоичный эквивалент числа 4 влево на 2 бита, то у вас получится двоичный эквивалент числа 16.

Число, которым вы снабжаете входной параметр N, определяет количество битов, на которое происходит сдвиг. Двоичные разряды, освобождаемые командой сдвига, заполняются или нулями, или состоянием сигнала знакового бита (0 означает положительное значение, а 1 означает отрицательное значение). Состояние сигнала бита, сдвигаемого последним, загружается в бит CC 1 слова состояния (см. раздел 1.4). Биты CC 0 и OV слова состояния сбрасываются в 0. Для анализа бита CC 1 вы можете использовать команды перехода.
Доступны следующие команды сдвига:

 

Сдвиг влево слова

Состояние сигнала 1 на разрешающем входе (EN) активизирует команду Сдвинуть влево слово. Эта команда поочередно сдвигает влево биты с 15 по 0 входа IN. Перенос в бит 16 не происходит.Вход N определяет количество битов, на которое происходит сдвиг. Если N больше, чем 16, то команда записывает 0 в младшее слово аккумулятора 1 и сбрасывает биты CC 0 и OV слова состояния в 0. Двоичные разряды справа заполняются нулями. Результат операции сдвига может быть просмотрен на выходе OUT. Операция, запускаемая этой командой, всегда сбрасывает биты CC 0 и OV слова состояния в 0. ENO имеет такое же состояние сигнала, как EN.

Блок LAD Параметры Тип данных Область памяти Описание
EN BOOL I, Q, M, D, L Разрешающий вход
  ENO BOOL I, Q, M, D, L Разрешающий выход
  IN WORD I, Q, M, D, L
Значение, подвергаемое сдвигу
  N WORD I, Q, M, D, L Количество двоичных разрядов, на которое происходит сдвиг
  OUT WORD I, Q, M, D, L Результат операции сдвига

 

Пример и биты слова состояния сдвига влево слова

Состояние сигнала 1 на входе I 0.0 активизирует команду. Слово памяти MW0 сдвигается влево на число битов, указанное в слове памяти MW2. Результат помещается в слово памяти MW4..
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x 0 - x 1 x x

 

Сдвиг влево двойного слова

Команда сдвигает поочередно влево биты двойного слова с 31 по 0. Вход N определяет количество битов, на которое происходит сдвиг. Если N больше, чем 32, то команда записывает 0 в выход OUT и сбрасывает биты CC 0 и OV слова состояния в 0. Двоичные разряды справа заполняются нулями. Результат операции сдвига может быть просмотрен на выходе OUT.

Операция, запускаемая этой командой, всегда сбрасывает биты CC 0 и OV слова состояния в 0, если N не равно 0. ENO имеет такое же состояние сигнала, как EN.

Блок LAD Параметры Тип данных Область памяти Описание
EN BOOL I, Q, M, D, L Разрешающий вход
  ENO BOOL I, Q, M, D, L Разрешающий выход
  IN DWORD I, Q, M, D, L
Значение, подвергаемое сдвигу
  N WORD I, Q, M, D, L Количество двоичных разрядов, на которое происходит сдвиг
  OUT DWORD I, Q, M, D, L Результат операции сдвига

Пример и биты слова состояния сдвига влево двойного слова

Состояние сигнала 1 на входе I 0.0 активизирует команду. Двойное слово памяти MD0 сдвигается влево на число битов, указанное в слове памяти MW4. Результат помещается в двойное слово памяти MD10.
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

Сдвиг вправо слова

Эта команда поочередно сдвигает вправо биты с 0 по 15 входа IN. Биты с 16 по 31 воздействию не подвергаются. Вход N определяет количество битов, на которое происходит сдвиг. Если N больше, чем 16, то команда записывает 0 в выход OUT и сбрасывает биты CC 0 и OV слова состояния в 0. Двоичные разряды слева заполняются нулями. Результат операции сдвига может быть просмотрен на выходе OUT. Операция, запускаемая этой командой, всегда сбрасывает биты CC 0 и OV слова состояния в 0, если N не равно 0. ENO имеет такое же состояние сигнала, как EN.

Блок LAD Параметры Тип данных Область памяти Описание
EN BOOL I, Q, M, D, L Разрешающий вход
  ENO BOOL I, Q, M, D, L Разрешающий выход
  IN WORD I, Q, M, D, L
Значение, подвергаемое сдвигу
  N WORD I, Q, M, D, L Количество двоичных разрядов, на которое происходит сдвиг
  OUT WORD I, Q, M, D, L Результат операции сдвига

Пример и биты слова состояния сдвига вправо слова

Состояние сигнала 1 на входе I 0.0 активизирует команду. Слово памяти MW0 сдвигается вправо на число битов, указанное в слове памяти MW2. Результат помещается в слово памяти MW4.
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

Сдвиг вправо двойного слова

Эта команда поочередно сдвигает вправо биты с 0 по 31 входа IN. Вход N определяет количество битов, на которое происходит сдвиг. Если N больше, чем 32, то команда записывает 0 в выход OUT и сбрасывает биты CC 0 и OV слова состояния в 0. Двоичные разряды слева заполняются нулями. Результат операции сдвига может быть просмотрен на выходе OUT.
Операция, запускаемая этой командой, всегда сбрасывает биты CC 0 и OV слова состояния в 0, если N не равно 0. ENO имеет такое же состояние сигнала, как EN.

Блок LAD Параметры Тип данных Область памяти Описание
EN BOOL I, Q, M, D, L Разрешающий вход
  ENO BOOL I, Q, M, D, L Разрешающий выход
  IN DWORD I, Q, M, D, L
Значение, подвергаемое сдвигу
  N WORD I, Q, M, D, L Количество двоичных разрядов, на которое происходит сдвиг
  OUT DWORD I, Q, M, D, L Результат операции сдвига

Пример и биты слова состояния сдвига вправо двойного слова

Состояние сигнала 1 на входе I 0.0 активизирует команду. Двойное слово памяти MD0 сдвигается вправо на число битов, указанное в слове памяти MW4. Результат помещается в MD10.
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

Сдвиг вправо целого числа

Эта команда поочередно сдвигает вправо биты с 0 по 15 входа IN. Вход N определяет количество битов, на которое происходит сдвиг. Если N больше, чем 16, то команда ведет себя так, как если бы N было равно 16. Двоичные разряды слева заполняются в соответствии с состоянием сигнала бита 15 (который является битом знака целого числа), то есть они заполняются нулями, если число является положительным, и единицами, если число является отрицательным. Результат операции сдвига может быть просмотрен на выходе OUT. Операция, запускаемая этой командой, всегда сбрасывает биты CC 0 и OV слова состояния в 0, если N не равно 0. ENO имеет такое же состояние сигнала, как EN.

Блок LAD Параметры Тип данных Область памяти Описание
EN BOOL I, Q, M, D, L Разрешающий вход
  ENO BOOL I, Q, M, D, L Разрешающий выход
  IN INT I, Q, M, D, L
Значение, подвергаемое сдвигу
  N WORD I, Q, M, D, L Количество двоичных разрядов, на которое происходит сдвиг
  OUT INT I, Q, M, D, L Результат операции сдвига

Пример и биты слова состояния сдвига вправо целого числа

Состояние сигнала 1 на входе I 0.0 активизирует команду. Слово памяти MW0 сдвигается вправо на число битов, указанное в слове памяти MW2. Результат помещается в слово памяти MW4.
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

Сдвиг вправо двойного целого числа

Эта команда сдвигает вправо бит за битом все содержимое входа IN. Вход N определяет количество битов, на которое происходит сдвиг. Если N больше, чем 32, то команда ведет себя так, как если бы N было равно 32. Двоичные разряды слева заполняются в соответствии с состоянием сигнала бита 31 (который является битом знака двойного целого числа), то есть они заполняются нулями, если число является положительным, и единицами, если число является отрицательным. Результат операции сдвига может быть просмотрен на выходе OUT. Операция, запускаемая этой командой, всегда сбрасывает биты CC 0 и OV слова состояния в 0, если N не равно 0. ENO имеет такое же состояние сигнала, как EN.

Блок LAD Параметры Тип данных Область памяти Описание
EN BOOL I, Q, M, D, L Разрешающий вход
  ENO BOOL I, Q, M, D, L Разрешающий выход
  IN DINT I, Q, M, D, L
Значение, подвергаемое сдвигу
  N WORD I, Q, M, D, L Количество двоичных разрядов, на которое происходит сдвиг
  OUT DINT I, Q, M, D, L Результат операции сдвига

Пример и биты слова состояния сдвига вправо двойного целого числа

Состояние сигнала 1 на входе I 0.0 активизирует команду. Двойное слово памяти MD0 сдвигается вправо на число битов, указанное в слове памяти MW4. Результат помещается в двойное слово памяти MD10.
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

Команды циклического сдвига

Циклический сдвиг используется для того чтобы выполнить циклический сдвиг всего содержимого входа IN бит за битом влево или вправо. Освобождаемые разряды заполняются состояниями сигналов тех битов, которые выталкиваются из содержимого входа IN. Число, которым вы снабжаете входной параметр N, определяет число битов, на которое происходит циклический сдвиг. В зависимости от команды циклический сдвиг происходит через бит CC 1 слова состояния (см. раздел 1.4). Бит CC 0 слова состояния сбрасывается в 0.

Возможно выполнить следующие команды:

 

Циклический сдвиг влево двойного слова

Эта команда циклически сдвигает влево бит за битом все содержимое входа IN. Вход N определяет количество битов, на которое происходит сдвиг. Если N больше, чем 32, то двойное слово циклически сдвигается на количество разрядов, равное ((N-1) по модулю 32) +1). Двоичные разряды справа заполняются состояниями сигналов циклически сдвигаемых битов. Результат операции циклического сдвига может быть просмотрен на выходе OUT.

Операция, запускаемая этой командой, всегда сбрасывает биты CC 0 и OV слова состояния в 0, если N не равно 0. ENO имеет такое же состояние сигнала, как EN.

Блок LAD Параметры Тип данных Область памяти Описание
EN BOOL I, Q, M, D, L Разрешающий вход
  ENO BOOL I, Q, M, D, L Разрешающий выход
  IN DWORD I, Q, M, D, L
Значение, подвергаемое циклическому сдвигу
  N WORD I, Q, M, D, L Количество двоичных разрядов, на которое происходит сдвиг
  OUT DWORD I, Q, M, D, L Результат операции циклического
сдвига

Пример и биты слова состояния циклического сдвиг влево двойного слова

Состояние сигнала 1 на входе I 0.0 активизирует команду. Двойное слово памяти MD0 циклически сдвигается влево на число битов, указанное в слове памяти MW4. Результат помещается в двойное слово памяти MD10.
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

Циклический сдвиг вправо двойного слова

Эта команда циклически сдвигает вправо бит за битом полное содержимое входа IN. Вход N определяет количество битов, на которое происходит сдвиг. Значение N может располагаться между 0 и 31. Если N больше, чем 32, то двойное слово циклически сдвигается на количество разрядов, равное ((N-1) по модулю 32) +1). Двоичные разряды слева заполняются состояниями сигналов циклически сдвигаемых битов. Результат операции циклического сдвига может быть просмотрен на выходе OUT.

Блок LAD Параметры Тип данных Область памяти Описание
EN BOOL I, Q, M, D, L Разрешающий вход
  ENO BOOL I, Q, M, D, L Разрешающий выход
  IN DWORD I, Q, M, D, L
Значение, подвергаемое циклическому сдвигу
  N WORD I, Q, M, D, L Количество двоичных разрядов, на которое происходит сдвиг
  OUT DWORD I, Q, M, D, L Результат операции циклического
сдвига

Пример и биты слова состояния циклического сдвига вправо двойного слова

Состояние сигнала 1 на входе I 0.0 активизирует команду. Двойное слово памяти MD0 циклически сдвигается вправо на число битов, указанное в слове памяти MW4. Результат помещается в двойное слово памяти MD10.
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

<--Предыдущая статья   Следующая статья-->
сделано djoni политика конфидициальности Rambler's Top100