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

_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