Найти тему

Работа с битовыми строками в PC WorX на языке программирования Function Block Diagram

Битовой строкой (bit string) называются данные, представленные в виде двоичной последовательности.

Для работы с битовой строкой используются логические и арифметические операции, а также операторы сдвига.

Функциональные блоки в среде программирования PC WоrX на языке программирования Function Block Diagram, соответствующие операциям сдвига, представляются элементами ROL, ROR, SHL и SHR:

Функциональные блоки для операций сдвига на языке программирования Function Block Diagram
Функциональные блоки для операций сдвига на языке программирования Function Block Diagram

Результатом операции ROL (циклический сдвиг влево) будет битовая строка, полученная перемещением N бит из начала строки в ее конец.

Результатом операции ROR (циклический сдвиг вправо) будет битовая строка, полученная перемещением N бит из конца строки в ее начало.

Результатом операции SHL (сдвиг влево) будет битовая строка, полученная сдвигом влево на N бит фрагмента строки, начиная с N+1. Оставшиеся битовые позиции справа заполняются нулями.

Результатом операции SHR (сдвиг вправо) будет битовая строка, полученная сдвигом вправо на N бит фрагмента строки, начиная с N+1. Оставшиеся битовые позиции слева заполняются нулями.

Если число N задано меньше нуля, то функции будут возвращать значение равное нулю, так как параметр N по физическому смыслу предполагается только беззнаковым целым. Недопустимо задавать вход N типом bool, это вызовет ошибку программируемого логического контроллера.

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

Для демонстрации размещения операторов сдвига подготовлено видео:

Замечание. Обратите внимание, что для того чтобы указать тип данных BYTE необходимо в режиме отладки при вводе значений переменной в окне «Debug: STD_RES» установить значение «Binary» в меню «Valuedisplay»:

Установка значения «Binary» в меню «Valuedisplay» (отмечено зеленой стрелкой)
Установка значения «Binary» в меню «Valuedisplay» (отмечено зеленой стрелкой)

При этом сами значения в "Value" записываются так: сначала 2 (означает двоичную систему), затем решетка, только после этого бинарная строка (т.е. строка значений из нулей и единиц).

Лабораторная работа «Операции сдвига над битовыми строками».

Цель и пример выполнения лабораторной работы "Операции сдвига над битовыми строками" описаны в учебном пособии:

https://portfolio.vvsu.ru/schoolbook/details/idm/2145176752/tid/10495/

Варианты для самостоятельного решения:

Получите в среде программирования PC WorX результат операций сдвига на N бит операторами ROL, ROR, SHL и SHR для битовой строки (см. табл. ниже).

Варианты битовых строк для лабораторной работы "Операции сдвига над битовыми строками"
Варианты битовых строк для лабораторной работы "Операции сдвига над битовыми строками"

Лабораторная работа «Получение определённой битовой строки из заданной битовой строки».

Цель и пример выполнения лабораторной работы "Получение определённой битовой строки из заданной битовой строки" описаны в учебном пособии:

https://portfolio.vvsu.ru/schoolbook/details/idm/2145176752/tid/10495/

Также для информационной поддержки создано видео:

Варианты для самостоятельного решения:

Реализуйте в среде программирования PC WorX программу на языке программирования Function Block Diagram, позволяющую из битовой строки столбца I получить битовую строку столбца II (см. табл. ниже). При необходимости используйте логические операции AND, OR, NOT, XOR или арифметические операции.

Варианты битовых строк для лабораторной работы "Получение определённой битовой строки из заданной битовой строки"
Варианты битовых строк для лабораторной работы "Получение определённой битовой строки из заданной битовой строки"

В виде комментария под лекцией приведите свои программы на языке программирования Function Block Diagram в режиме отладки для получения определённой битовой строки из заданной битовой строки.

см. полный список теоретических материалов и примеров лабораторных работ: https://dzen.ru/a/ZAq0N8VOKEDcTDy3?share_to=link.