Блок Преобразование данных ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. figure:: ../../zwb/lib/fbd_block_TO.png :align: center **Описание:** Приводит тип данных входа к типу, указанному в настройках. Вход принимает тип данных связанного с ним выхода. Если выбран логический тип данных – значение выхода равно **1** при ненулевом значении входа. Если множество значений типа данных входа не является подмножеством выходного типа данных, блок выполняет обработку переполнения в соответствии с выбранной опцией. Обработка переполнения выполняется путем сравнения входного значения с диапазоном значений выбранного типа данных, аналогично блоку «Сложение». **Свойства блока:** (ПКМ по блоку - Свойства ( :guilabel:`Alt` + :guilabel:`P` )) **Общие свойства:** см. Редактирование свойств блока. **Тип данных:** допускаются любые типы данных из предложенных. **Показывать выход переполнения:** управляет наличием выхода ``of``, который выдает логический признак возникновения переполнения. Это свойство не влияет на выполнение операций устройством. Выход ``of`` рекомендуется использовать для выполнения специально запрограммированных действий при переполнении. **Обработка переполнения:** при выполнении операции выполняется проверка на переполнение выхода, т.е. результирующего значения за диапазон значений выбранного типа данных. В такой ситуации рассчитанное значение не может быть верным математически. Существуют следующие способы обработки переполнения: 1) «Игнорировать» - выход получает только младшие биты данных от полученного результата. Не рекомендуется использовать, за исключением реализации циклических счетчиков, когда переход счетчика через максимальное значение в **0** специально нужен, или когда старшие биты значения не нужны, достаточно младших битов. 2) «Установить 0» - выход устанавливается в **0**. Рекомендуется использовать при использовании значения **0** как признак аварии; 3) «Выставить граничное значение» - выход получает значение, ближайшее к истинному значению, на границе диапазона значений выбранного типа данных. Это наиболее логически правильный и рекомендуемый способ, особенно для значений, суммируемых за некоторое время работы устройства; 4) «Настройки проекта» - ссылка на один из первых трех способов, указанный в настройках проекта. Эта опция позволяет централизованно управлять этим свойством. Пример выполнения блока для 1-байтового беззнакового типа данных, значения ограничены диапазоном от 0 до 255: +--------------------+------------+------------+------------+ |**Способ обработки**|**Значение**| | | | |**входа** |**Выход** |**Выход of**| |**переполнения** | | | | +--------------------+------------+------------+------------+ | Игнорировать | 257 | 1 | 1 | +--------------------+------------+------------+------------+ | Игнорировать | 120 | 120 | 0 | +--------------------+------------+------------+------------+ | Игнорировать | -128 | -128 | 0 | +--------------------+------------+------------+------------+ | Игнорировать | 0 | 0 | 0 | +--------------------+------------+------------+------------+ | Установить 0 | 257 | 0 | 1 | +--------------------+------------+------------+------------+ | Установить 0 | 120 | 120 | 0 | +--------------------+------------+------------+------------+ | Установить 0 | -128 | -128 | 0 | +--------------------+------------+------------+------------+ | Установить 0 | 0 | 0 | 0 | +--------------------+------------+------------+------------+ | Граничное значение | 257 | 255 | 1 | +--------------------+------------+------------+------------+ | Граничное значение | 120 | 120 | 0 | +--------------------+------------+------------+------------+ | Граничное значение | -128 | -128 | 0 | +--------------------+------------+------------+------------+ | Граничное значение | 0 | 0 | 0 | +--------------------+------------+------------+------------+