Блок Деление с остатком ^^^^^^^^^^^^^^^^^^^^^^^ .. figure:: ../../zwb/lib/fbd_block_DIV.png :align: center **Описание:** Блок функции "Деление с остатком") производит операцию деления значения входа ``A`` на значения входа ``B``, при этом результат раскладывается на 2 составляющие: выход ``А/В`` - неполное частное от деления, выход ``mod`` - остаток от деления. Если ``B`` равен **0** (деление на 0), значение выхода ``mod`` равно значению на входе ``A``. **Пример:** Производится операция деления 9/5. Результат данной операции: число 9 содержит одну 5, а остаток равен 4: .. figure:: ../../zwb/lib/fbd_example_DIV.png :align: center **Свойства блока:** (ПКМ по блоку - Свойства ( :guilabel:`Alt` + :guilabel:`P` )) **Общие свойства:** см. Редактирование свойств блока. **Тип данных:** допускаются любые типы данных из предложенных. **Обработка переполнения:** при выполнении операции выполняется проверка на переполнение выхода, т.е. результирующего значения за диапазон значений выбранного типа данных. В такой ситуации рассчитанное значение не может быть верным математически. Существуют следующие способы обработки переполнения: 1) «Игнорировать» - выход получает только младшие биты данных от полученного результата. Не рекомендуется использовать, за исключением реализации циклических счетчиков, когда переход счетчика через максимальное значение в **0** специально нужен, или когда старшие биты значения не нужны, достаточно младших битов. 2) «Установить 0» - выход устанавливается в **0**. Рекомендуется использовать при использовании значения **0** как признак аварии; 3) «Выставить граничное значение» - выход получает значение, ближайшее к истинному значению, на границе диапазона значений выбранного типа данных. Это наиболее логически правильный и рекомендуемый способ, особенно для значений, суммируемых за некоторое время работы устройства; 4) «Настройки проекта» - ссылка на один из первых трех способов, указанный в настройках проекта. Эта опция позволяет централизованно управлять этим свойством. Пример выполнения блока для ``1-байтового беззнакового`` типа данных, значения ограничены диапазоном от 0 до 255: +--------------------+------------+------------+------------+------------+ |**Способ обработки**| | |**Выход** |**Выход** | | |**Вход "A"**|**Вход "B"**|**"A/B"** |**"Mod"** | |**переполнения** | | | | | +--------------------+------------+------------+------------+------------+ | Игнорировать | 2 | 129 | 0 | 2 | +--------------------+------------+------------+------------+------------+ | Игнорировать | 9 | 5 | 1 | 4 | +--------------------+------------+------------+------------+------------+ | Игнорировать | 0 | 0 | 0 | 0 | +--------------------+------------+------------+------------+------------+ | Игнорировать | 100 | 0 | 0 | 100 | +--------------------+------------+------------+------------+------------+ | Игнорировать | 10 | 1 | 100 | 0 | +--------------------+------------+------------+------------+------------+ | Игнорировать | 65 | 64 | 1 | 1 | +--------------------+------------+------------+------------+------------+ | Игнорировать | 1 | 255 | 0 | 1 | +--------------------+------------+------------+------------+------------+ | Установить 0 | 2 | 129 | 0 | 2 | +--------------------+------------+------------+------------+------------+ | Установить 0 | 9 | 5 | 1 | 4 | +--------------------+------------+------------+------------+------------+ | Установить 0 | 0 | 0 | 0 | 0 | +--------------------+------------+------------+------------+------------+ | Установить 0 | 100 | 0 | 0 | 100 | +--------------------+------------+------------+------------+------------+ | Установить 0 | 100 | 1 | 100 | 0 | +--------------------+------------+------------+------------+------------+ | Установить 0 | 65 | 64 | 1 | 1 | +--------------------+------------+------------+------------+------------+ | Установить 0 | 1 | 255 | 0 | 1 | +--------------------+------------+------------+------------+------------+ | Граничное значение | 2 | 129 | 0 | 2 | +--------------------+------------+------------+------------+------------+ | Граничное значение | 9 | 5 | 1 | 4 | +--------------------+------------+------------+------------+------------+ | Граничное значение | 0 | 0 | 255 | 0 | +--------------------+------------+------------+------------+------------+ | Граничное значение | 100 | 0 | 255 | 100 | +--------------------+------------+------------+------------+------------+ | Граничное значение | 100 | 1 | 100 | 0 | +--------------------+------------+------------+------------+------------+ | Граничное значение | 65 | 64 | 1 | 1 | +--------------------+------------+------------+------------+------------+