Суббота, 18.05.2024, 23:29
Приветствую Вас Гость | RSS
Главная | ROR: Циклический сдвиг вправо | Регистрация | Вход
Меню сайта
Форма входа
Поиск
Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Программируемые Логические Контроллеры
    ROR: Циклический сдвиг вправо
    Описание функции
    Эта функция сдвигает битовую комбинацию на входе In циклически вправо на n битов (значение на входе Number).
    Системный бит %S17 используется, как бит переноса, т.е. в нем сохраняется состояние сдвинутого бита 
    Типы данных входа IN и выхода OUT должны быть идентичны.
    Примечание: Для совместимости с IEC 61131-3 эта функция также работает с типом BOOL . Здесь это не важно.

    EN и ENO могут быть сконфигурированы как дополнительные параметры.

    Представление:
     
    Описание параметров
    Описание входных параметров:
    Параметр Тип данных Значение
    InputPattern
    Для ROR: BOOL, BYTE, WORD, DWORD
    Для ROR_INT: INT
    Для ROR_DINT: DINT
    это битовая комбинация, которая будет сдвинута
    Number
    Для ROR: UINT
    Для ROR_INT, ROR_DINT: INT
    это число позиций, на которые будет сдвинута последовательность

    Описание выходного параметра:
    Параметр Тип данныхЗначение
    OutputPattern
    Для ROR: BOOL, BYTE, WORD, DWORD
    Для ROR_INT: INT
    Для ROR_DINT: DINT
    это сдвинутая последовательность

    Данная функция идентична предыдущей, если в ROL сдвиг осуществлялся влево, то теперь битовая комбинация будет сдвинута вправо.
     
    Итак, запускаем программу и с помощью таблицы совершенных действий (анимированная таблица), проверяем, что из этого получилось.
     
     
    То, что было ранее показано, покажется вам не понятным и бессмысленным, поэтому создадим другие переменные и типы. На пример в данном случае я буду использовать тип «byte».
     
    In_byte и out_byte имеют тип «byte», number - соответственно «UINT».
    Далее запускаем программу в режиме симулятора.
     
    В данном случае 2#0000_0000 представлен в двоичной системе, таким образом, при запуске программы все параметры находятся в логическом нуле.
    Далее открываем таблицу, меняем входные параметры переменной in_byte на 1, смотрите рисунок:
     
     
    Таким образом у нас изменились входные и выходные параметры, теперь изменим номер переменной number на 1, смотрим что из этого получилось.
     
     
    Из предыдущего рисунка можно судить, что входной параметр остался неизменным, а выходной изменил свой бит на 2#1000_0000, и все благодаря числовой переменной UINT.
    Таким образом, младшие биты последовательно заняли позиции старшего бита.
    Данная структура больше представляет собой работу с системными параметрами, если можно так выразиться «на молекулярном уровне», нежели с жесткими логическими связующими, которые понятны инженеру электрику.

    Конструктор сайтов - uCozCopyright MyCorp © 2024