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 влево или вправо. Сдвиг на n битов влево умножает содержимое входа IN на 2n; сдвиг на n битов вправо делит содержимое входа IN на 2n.
Следовательно, если Вы, например, сдвигаете двоичный эквивалент десятичного значения 3 на 3 бита влево, то получается двоичный эквивалент десятичного значения 24. Если Вы сдвигаете двоичный эквивалент десятичного значения 16 на 2 бита вправо, то получается двоичный эквивалент десятичного значения 4. Число, задаваемое Вами для входного параметра N, показывает, на сколько битов должен производиться сдвиг. Разряды, освобождающиеся вследствие операции сдвига, заполняются нулями или состоянием сигнала бита знака (”0” в случае положительного числа, ”1” в случае отрицательного числа). Бит, сдвигаемый последним, загружается в бит СС1 слова состояния . Биты CC0 и OV сбрасываются в “0”. Можно оценивать бит СС1 слова состояния с помощью операций перехода.

Step7 предоставляет следующие операции сдвига:

Сдвиг влево 16 бит

Операция Сдвиг влево 16 битов активизируется состоянием сигнала “1” на разрешающем входе (EN) и побитно сдвигает влево биты входа IN, имеющие номера с 0 по 15.

Вход N задает, на сколько битов происходит сдвиг. Если N больше, чем 16, то команда записывает 0 на выходе OUT и сбрасывает биты CC0 и OV слова состояния в ”0”. Освобождающиеся справа битовые позиции заполняются нулями. Результат операции сдвига может опрашиваться на выходе OUT.

Операция, запущенная при не равном нулю N, сбрасывает биты CC0 и OV слова состояния в ”0”. Когда операция выполняется (EN = 1), ENO показывает состояние сигнала последнего сдвинутого бита (соответствует CC1 и RLO в слове состояния). Другие операции после этого блока, подключенные через ENO (каскадное включение), не обрабатываются, если последний сдвинутый бит имеет состояние сигнала ”0”.

При размещении блока Сдвиг влево 16 битов необходимо соблюдать определенные ограничения

Сдвиг битов входа IN на шесть битовых разрядов влево

Элемент FBD Параметры Тип данных Область памяти Описание
IN WORD I, Q, M, D, L Сдвигаемое значение
N WORD I, Q, M, D, L Количество битовых разрядов, на которое производится сдвиг
OUT WORD I, Q, M, D, L Результат операции
EN BOOL I, Q, M, D, L Деблокировка входа
ENO BOOL I, Q, M, D, L Деблокировка выхода

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

Операция активизируется, если I0.0 = 1. и I0.1=1 Меркерное слово MW0 сдвигается влево на количество битов, заданное в MW1.
Результат сохраняется в MW3. Выход Q 4.0 устанавливается, если последний сдвинутый бит имеет состояние сигнала равному 1
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

Сдвиг влево 32 бита

Команда сдвиг влево 32 бита выполняется также как и команда сдвиг влево 16 бит с разницей что обрабатывает она двойные слова. Хочу напомнить что сдвиг идет с 0 по 31 бит ( здесь исчисление идет от нуля). N не должно превышать значения 32 в противном случае команда запишет 0 на выходе.

Элемент FBD Параметры Тип данных Область памяти Описание
IN WORD I, Q, M, D, L Сдвигаемое значение
N WORD I, Q, M, D, L Количество битовых разрядов, на которое производится сдвиг
OUT WORD I, Q, M, D, L Результат операции
EN BOOL I, Q, M, D, L Деблокировка входа
ENO BOOL I, Q, M, D, L Деблокировка выхода

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

Операция активизируется, если I0.0 = 1. и I0.1=1 Двойное слово MD6 сдвигается влево на количество битов, заданное в MW2.
Результат сохраняется в MD8. Выход Q 4.0 устанавливается, если последний сдвинутый бит имеет состояние сигнала равному 1
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

 

Сдвиг вправо 16 бит

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

Операция, запущенная при не равном нулю N, всегда сбрасывает биты СС0 и OV слова состояния в ”0”. Когда операция выполнится (EN = 1), ENO показывает состояние сигнала последнего сдвинутого бита (соответствует СС1 и RLO в слове состояния). Другие операции после этого блока, подключенные через ENO (каскадное включение), не обрабатываются, если последний сдвинутый бит имеет состояние сигнала ”0”. При размещении блока Сдвиг вправо 16 битов необходимо соблюдать определенные ограничения по битам слова состояния.

 

Элемент FBD Параметры Тип данных Область памяти Описание
IN WORD I, Q, M, D, L Сдвигаемое значение
N WORD I, Q, M, D, L Количество битовых разрядов, на которое производится сдвиг
OUT WORD I, Q, M, D, L Результат операции
EN BOOL I, Q, M, D, L Деблокировка входа
ENO BOOL I, Q, M, D, L Деблокировка выхода

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

Операция активизируется, если I0.0 = 1. и I0.1=1 Меркерное слово MW1 сдвигается вправо на количество битов, заданное в MW0.
Результат сохраняется в MW5. Выход Q 4.0 устанавливается, если последний сдвинутый бит имеет состояние сигнала равному 1
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

 

Сдвиг вправо 32 бит

Команда сдвиг вправо 32 бита выполняется также как и команда сдвиг вправо 16 бит с разницей что обрабатывает она двойные слова. Хочу напомнить что сдвиг идет с 0 по 31 бит и Если N больше 32 то команда записывает 0 на выходе.

Элемент FBD Параметры Тип данных Область памяти Описание
IN DWORD I, Q, M, D, L Сдвигаемое значение
N WORD I, Q, M, D, L Количество битовых разрядов, на которое производится сдвиг
OUT DWORD I, Q, M, D, L Результат операции
EN BOOL I, Q, M, D, L Деблокировка входа
ENO BOOL I, Q, M, D, L Деблокировка выхода

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

Операция активизируется, если I0.0 = 1. и I0.1=1 Двойное слово MD1 сдвигается вправо на количество битов, заданное в MW0.
Результат сохраняется в MD6. Выход Q 4.0 устанавливается, если последний сдвинутый бит имеет состояние сигнала равному 1
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

 

Сдвиг вправо целого числа(16 бит)

Команда Сдвиг вправо целого числа (16 битов) активизируется состоянием сигнала “1” на разрешающем входе (EN) и побитно сдвигает вправо биты входа IN, имеющие номера с 0 по 15. Вход N задает, на сколько битов происходит сдвиг. Если N больше, чем 16, то команда работает так, как будто N = 16. Битовые позиции слева заполняются состоянием сигнала бита 15  (разряд знака целого числа), то есть нулем, если число положительное, и 1, если число отрицательное. Результат операции сдвига Вы можете опрашивать на выходе OUT.

Операция, запущенная при не равном нулю N, всегда сбрасывает биты СС0 и OV слова состояния в ”0”. Когда операция выполнится (EN = 1), ENO показывает состояние сигнала последнего сдвинутого бита (соответствует СС1 и RLO в слове состояния). Другие операции после этого блока, подключенные через ENO (каскадное включение), не обрабатываются, если последний сдвинутый бит имеет состояние сигнала ”0”. При размещении блока Сдвиг вправо целого числа 16 битов необходимо соблюдать определенные ограничения по битам слова состояния.

 

Элемент FBD Параметры Тип данных Область памяти Описание
IN INT I, Q, M, D, L Сдвигаемое значение
N WORD I, Q, M, D, L Количество битовых разрядов, на которое производится сдвиг
OUT INT I, Q, M, D, L Результат операции
EN BOOL I, Q, M, D, L Деблокировка входа
ENO BOOL I, Q, M, D, L Деблокировка выхода

Пример и биты слова состояния операции cдвига вправо целого числа 16 бит в функциональном плане для SIMATIC

Операция активизируется, если I0.0 = 1. и I0.1=1 Меркерное слово MW1 сдвигается вправо на количество битов, заданное в MW2.
Результат сохраняется в MW6. Выход Q 4.0 устанавливается, если последний сдвинутый бит имеет состояние сигнала равному 1
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

 

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

Команда Сдвиг вправо целого числа (32 бита) работает по принципу сдвига вправо целого числа 16 бит. Единственная разница что работаем мы со словами 32 бита, а не 16. Кроме того если N больше, чем 32, то команда работает так, как будто N = 32.

Элемент FBD Параметры Тип данных Область памяти Описание
IN DINT I, Q, M, D, L Сдвигаемое значение
N WORD I, Q, M, D, L Количество битовых разрядов, на которое производится сдвиг
OUT DINT I, Q, M, D, L Результат операции
EN BOOL I, Q, M, D, L Деблокировка входа
ENO BOOL I, Q, M, D, L Деблокировка выхода

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

Операция активизируется, если I0.0 = 1. и I0.1=1 Двойное слово MD1 сдвигается вправо на количество битов, заданное в MW3.
Результат сохраняется в MD2. Выход Q 4.0 устанавливается, если последний сдвинутый бит имеет состояние сигнала равному 1
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

 

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

 

С помощью операций циклического сдвига можно побитно циклически сдвигать вправо или влево все содержимое входа IN. Освобождающиеся разряды заполняются состояниями сигналов тех битов, которые выталкиваются из входа IN. Число, задаваемое Вами для входного параметра N, показывает, на сколько битов должен производиться циклический сдвиг. В зависимости от выбранной операции циклический сдвиг происходит через бит СС1. Бит CC0 слова состояния сбрасывается в “0”.
Вы можете воспользоваться следующими операциями циклического сдвига:

 

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

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

Операция, запущенная при не равном нулю N, всегда сбрасывает биты CC0 и OV слова состояния в ”0”. Когда операция выполнится (EN = 1), ENO показывает состояние сигнала последнего циклически сдвинутого бита (соответствует СС1 и RLO в слове состояния). Другие операции после этого блока, подключенные через ENO (каскадное включение), не обрабатываются, если последний циклически сдвинутый бит имеет состояние сигнала ”0”.

При размещении блока Циклического сдвига влево 32 бит, необходимо соблюдать определенные ограничения по битам слова состояния.

 

Элемент FBD Параметры Тип данных Область памяти Описание
IN DWORD I, Q, M, D, L Сдвигаемое значение
N WORD I, Q, M, D, L Количество битовых разрядов, на которое производится сдвиг
OUT DWORD I, Q, M, D, L Результат операции
EN BOOL I, Q, M, D, L Деблокировка входа
ENO BOOL I, Q, M, D, L Деблокировка выхода

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

Операция активизируется, если I0.0 = 1. и I0.1=1 Двойное слово MD1 сдвигается влево на количество битов, заданное в MW2.
Результат сохраняется в MD10. Выход Q 4.0 устанавливается, если последний сдвинутый бит имеет состояние сигнала равному 1
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

 

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

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

Во всём остальном команда похожа на команду циклический сдвиг слево.

Элемент FBD Параметры Тип данных Область памяти Описание
IN DWORD I, Q, M, D, L Сдвигаемое значение
N WORD I, Q, M, D, L Количество битовых разрядов, на которое производится сдвиг
OUT DWORD I, Q, M, D, L Результат операции
EN BOOL I, Q, M, D, L Деблокировка входа
ENO BOOL I, Q, M, D, L Деблокировка выхода

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

Операция активизируется, если I0.0 = 1. и I0.1=1 Двойное слово MD0 сдвигается вправо на количество битов, заданное в MW1.
Результат сохраняется в MD4. Выход Q 4.0 устанавливается, если последний сдвинутый бит имеет состояние сигнала равному 1
Биты слова состояния
  BR CC 1 CC 0 OV OS OR STA RLO FC
Запись x
x x x - x x x 1

 

<—Предыдущая глава  
сделано djoni политика конфидициальности Rambler's Top100