Блок Деление с остатком

_images/fbd_block_DIV.png

Описание: Блок функции “Деление с остатком”) производит операцию деления значения входа A на значения входа B, при этом результат раскладывается на 2 составляющие: выход А/В - неполное частное от деления, выход mod - остаток от деления. Если B равен 0 (деление на 0), значение выхода mod равно значению на входе A.

Пример: Производится операция деления 9/5. Результат данной операции: число 9 содержит одну 5, а остаток равен 4:

_images/fbd_example_DIV.png

Свойства блока: (ПКМ по блоку - Свойства ( Alt + 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