Можно использовать арифметические операции с плавающей точкой для выполнения следующих математических операций, использующих два 32–битных числа с плавающей точкой в формате IEEE:
- сложение
- вычитание
- умножение
- деление
32-битные числа с плавающей точкой в формате IEEE принадлежат к типу данных, известному как REAL (вещественные).
Используя арифметику с плавающей точкой, Вы можете выполнять следующие операции с одним 32-битным числом с плавающей точкой в формате IEEE:
- образование абсолютного значения (ABS) числа с плавающей точкой
- образование натурального логарифма (LN) числа с плавающей точкой
- образование квадрата (SQR) или квадратного корня (SQRT) числа с плавающей точкой
- образование экспоненциального значения числа с плавающей точкой(EXP) по основанию e (= 2.7182...)
- образование следующих тригонометрических функций угла, представленных в виде 32–битного числа с плавающей точкой:
- образование синуса числа с плавающей точкой (SIN) и формирование арксинуса числа с плавающей точкой (ASIN)
- образование косинуса числа с плавающей точкой (COS) и образование арккосинуса числа с плавающей точкой (ACOS)
- образование тангенса числа с плавающей точкой (TAN) и образование котангенса числа с плавающей точкой (ATAN)
Сложение вещественных чисел
Сложить вещественные числа можно когда на входе EN состояние сигнала равно 1. Команда складывает входы IN1 и IN2. Результат может быть считан на выходе OUT. Если какой-либо из входов или результат не является числом с плавающей точкой, биты OV и OS устанавливаются в 1, а ENO устанавливается в 0.
Более подробно об оценке битов в слове состояния
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Первое слагаемое | |
IN2 | REAL | I, Q, M, D, L или константа | Второе слагаемое | |
OUT | REAL | I, Q, M, D, L | Результат сложения | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Пример и биты слова состояния операции сложение вещественных чисел для функционального плана
Вычитание вещественных чисел
Вычесть вещественные числа можно когда на входе EN состояние сигнала равно 1. Команда вычитает вход IN2 из IN1. Результат может быть считан на выходе OUT. Если какой-либо из входов или результат не является числом с плавающей точкой, биты OV и OS устанавливаются в 1, а ENO устанавливается в 0.
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Уменьшаемое | |
IN2 | REAL | I, Q, M, D, L или константа | Вычитаемое | |
OUT | REAL | I, Q, M, D, L | Результат вычитания | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Пример и биты слова состояния команды вычитания вещественных чисел для контроллеров SIMATIC
Умножение вещественных чисел
Команда умножает вход IN1 на IN2. Результат может быть считан на выходе OUT. Если какой-либо из входов или результат не является числом с плавающей точкой, биты OV и OS устанавливаются в 1, а ENO устанавливается в 0. Как и во всех предыдущих случаях чтобы команды была выполнена необходима деблокировка входа ( сигнал равен 1)
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Первый множитель | |
IN2 | REAL | I, Q, M, D, L или константа | Второй множитель | |
OUT | REAL | I, Q, M, D, L | Результат умножения | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Пример и биты слова состояния команды вычитания вещественных чисел для контроллеров SIMATIC
Деление вещественных чисел
Команда делит вход IN1 на IN2. Результат можно считать на выходе OUT. Если какой-либо из входов или результат не является числом с
плавающей точкой, биты OV и OS устанавливаются в 1, а ENO устанавливается в 0. Для активации команды необходимо выполнить деблокировку входа EN ( сигнал равен 1)
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Делимое | |
IN2 | REAL | I, Q, M, D, L или константа | Делитель | |
OUT | REAL | I, Q, M, D, L | Результат деления | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Пример и биты слова состояния деления вещественных чисел в функциональном плане
Анализ битов слова состояния в операциях с плавающей точкой
Команды арифметики с плавающей точкой влияют на следующие биты слова состояния:
- CC1 и CC0
- OV
- OS
Тире (-) в таблице означает, что результат операции не влияет на этот бит.
Допустимый диапазон результата | Биты слова состояния | |||
---|---|---|---|---|
Операция с числами с плавающей точкой (32 бита) | CC1 | CC0 | OV | OS |
+0, -0 (ноль) | 0 | 0 | 0 | — |
-3.402823E+38 < результат < -1.175494E-38 (отрицательное число) | 0 | 1 | 0 | — |
+1.175494E-38 < результат < 3.402823E+38 (положительное число) | 1 | 0 | 0 | — |
Недопустимый диапазон результата | Биты слова состояния | |||
---|---|---|---|---|
Операция с числами с плавающей точкой (32 бита) | CC1 | CC0 | OV | OS |
-1.175494E-38 < результат < - 1.401298E-45 (отрицательное число) ниже минимума | 0 | 0 | 1 | 1 |
+1.401298E-45 < результат < +1.175494E-38 (положительное число) ниже минимума | 0 | 0 | 1 | 1 |
+1.175494E-38 < результат < 3.402823E+38 (положительное число) | 1 | 0 | 0 | — |
результат < -3.402823E+38 (отрицательное число) выше максимума | 0 | 1 | 1 | 1 |
результат > 3.402823E+38 (положительное число) выше максимума | 1 | 0 | 1 | 1 |
результат < -3.402823E+38 или результат > +3.402823E+38 не число с плавающей точкой |
1 | 1 | 1 | 1 |
Образование абсолютного значения числа с плавающей точкой
С помощью команды Образовать абсолютное значение числа с плавающей точкой можно найти абсолютную величину числа с плавающей точкой.
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Число | |
OUT | REAL | I, Q, M, D, L | Абсолютное значение | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Образование квадрата (SQR) числа с плавающей точкой
Командой Образовать квадрат числа с плавающей точкой Вы можете возвести число с плавающей точкой в квадрат. Если вход IN или результат не является числом с плавающей точкой, то биты OV и OS устанавливаются в 1, а ENO устанавливается в 0.
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Число | |
OUT | REAL | I, Q, M, D, L | Квадрат числа | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Пример и биты слова состояния образования квадратного числа
Образование квадратного корня (SQRT) из числа с плавающей точкой
Эта команда извлекает квадратный корень из числа с плавающей точкой.Команда возвращает положительный результат, если значение входного операнда больше 0. Если вход или результат не является числом с плавающей точкой, то биты OV и OS устанавливаются в 1, а ENO устанавливается в 0.
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Число | |
OUT | REAL | I, Q, M, D, L | Квадратный корень числа | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Пример и биты слова состояния для образования квадратного корня из числа с плавающей точкой
Образование натурального логарифма числа с плавающей точкой
С помощью этой команды можно найти натуральный логарифм. Если вход или результат не является числом с плавающей точкой, то биты OV и OS устанавливаются в 1, а ENO устанавливается в 0.
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Число | |
OUT | REAL | I, Q, M, D, L | натуральный логарифм | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Пример и биты слова состояния получения натурального логарифма для контроллеров SIMATIC
Образование экспоненциального значения числа с плавающей точкой
С помощью этой команды можно найти экспоненциальное значение числа с плавающей точкой по основанию е (=2,71828...). Если вход или результат не является числом с плавающей точкой, то биты OV и OS устанавливаются в 1, а ENO устанавливается в 0.
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Число | |
OUT | REAL | I, Q, M, D, L | Экспоненциальное значение | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Пример и биты слова состояния получения экспоненты для контроллеров SIMATIC
Образование тригонометрических функций углов в виде чисел с плавающей точкой
С помощью следующих команд можно получить тригонометрические функции углов, представленные в виде 32-битных чисел с плавающей точкой в формате IEEE.
Команда | Значение |
---|---|
SIN | Образует синус числа с плавающей точкой, представляющего угол, выраженный в радианах. |
ASIN | Образует арксинус числа с плавающей точкой. Результат есть угол, выраженный в радианах. Значение находится в следующем диапазоне: -π/2 ≤ арксинус ≤+ π/2 π= 3.14... |
COS | Образует косинус числа с плавающей точкой, представляющего угол, выраженный в радианах. |
ACOS | Образует арккосинус числа с плавающей точкой. Результат есть угол, выраженный в радианах. Значение находится в следующем диапазоне: 0 ≤арккосинус ≤ + π |
TAN | Образует тангенс числа с плавающей точкой, представляющего угол, выраженный в радианах. |
ATAN | Образует арктангенс числа с плавающей точкой. Результат есть угол, выраженный в радианах. Значение находится в следующем диапазоне: -π/2 ≤ арксинус ≤+ π/2 |
Синус
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Число | |
OUT | REAL | I, Q, M, D, L | Синус числа | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Арксинус
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Число | |
OUT | REAL | I, Q, M, D, L | Аркинус числа | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Косинус
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Число | |
OUT | REAL | I, Q, M, D, L | Косинус числа | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Арккосинус
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Число | |
OUT | REAL | I, Q, M, D, L | Арккосинус числа | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Тангенс
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Число | |
OUT | REAL | I, Q, M, D, L | Тангенс числа | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Арктангенс
Элемент FBD | Параметры | Тип данных | Область памяти | Описание |
![]() |
EN | BOOL | I, Q, M, D, L ,T, C | Деблокировка входа |
IN1 | REAL | I, Q, M, D, L или константа | Число | |
OUT | REAL | I, Q, M, D, L | Арктангенс числа | |
ENO | BOOL | I, Q, M, D, L | Деблокировка выхода |
Пример и биты слова состояния тригонометрических функий при программировании контроллеров
<--Предыдущая статья | Следующая статья--> |