Лекция
Привет, сегодня поговорим про операции над числами с плавающей точкой в контактном плане, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое операции над числами с плавающей точкой в контактном плане , настоятельно рекомендую прочитать все из категории Программирование в контактном плане / LAD.
Вы можете использовать команды арифметики с плавающей точкой для выполнения следующих операций над двумя 32-битными числами IEEE с плавающей точкой:
32-битные числа с плавающей точкой IEEE относятся к типу данных REAL. Используя арифметику с плавающей точкой, вы можете выполнять следующие операции с одним 32–битным числом IEEE с плавающей точкой:
Состояние сигнала 1 на разрешающем входе (EN) активизирует команду Сложение чисел с плавающей точкой.Эта команда складывает входы IN1 и IN2. Результат может быть опрошен на выходе OUT. Если результат лежит вне допустимого диапазона для чисел с плавающей точкой (переполнение или потеря значимости), то биты OV и OS слова состояния имеют значение 1, а ENO - значение 0. Информацию по оценке этих индикаторов в слове состояния вы найдете в разделе 7.6.
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN1 | REAL | I, Q, M, D, L | Первое слагаемое | |
IN2 | REAL | I, Q, M, D, L | Второе слагаемое | |
OUT | REAL | I, Q, M, D, L | Сумма |
Пример и биты слова состояния сложения чисел с плавающей точкой
Состояние сигнала 1 на входе I 0.0 активизирует блок ADD_R. Результат сложения MD0 + MD4 помещается в двойное слово памяти MD10. Если результат выходит за пределы допустимого диапазона для вещественных чисел или состояние сигнала на входе I 0.0 равно 0, то выход Q 4.0 устанавливается. |
Биты слова состояния | |||||||||
BR | CC 1 | CC 0 | OV | OS | OR | STA | RLO | FC | |
Запись | x | x | x | x | x | x | 1 | x | х |
Данная команда идентичная предыдущей, разница в том, что команда вычитает вход IN2 из IN1. Информацию по оценке этих индикаторов в слове состояния вы найдете в разделе 7.6.
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN1 | REAL | I, Q, M, D, L | Уменьшаемое | |
IN2 | REAL | I, Q, M, D, L | Вычитаемое | |
OUT | REAL | I, Q, M, D, L | Разность |
Пример и биты слова состояния вычитания чисел с плавающей точкой
Состояние сигнала 1 на входе I 0.0 активизирует блок SUB_R. Результат вычитания MD0 - MD4 помещается в двойное слово памяти MD10. Если результат выходит за пределы допустимого диапазона для вещественных чисел или состояние сигнала на входе I 0.0 равно 0, то выход Q 4.0 устанавливается. |
Биты слова состояния | |||||||||
BR | CC 1 | CC 0 | OV | OS | OR | STA | RLO | FC | |
Запись | x | x | x | x | x | x | 1 | x | х |
Команда Умножение чисел с плавающей точкой, умножает вход IN1 на IN2. Во всем остальном команда идентична предыдущим. Информацию по оценке этих индикаторов в слове состояния вы найдете в разделе 7.6.
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN1 | REAL | I, Q, M, D, L | Первый сомножитель | |
IN2 | REAL | I, Q, M, D, L | Второй сомножитель | |
OUT | REAL | I, Q, M, D, L | Произведение |
Пример и биты слова состояния умножения чисел с плавающей точкой
Состояние сигнала 1 на входе I 0.0 активизирует блок MUL_R. Результат умножения MD0 x MD4 помещается в двойное слово памяти MD10. Если результат выходит за пределы допустимого диапазона для целых чисел или состояние сигнала на входе I 0.0 равно 0, то выход Q 4.0 устанавливается. |
Биты слова состояния | |||||||||
BR | CC 1 | CC 0 | OV | OS | OR | STA | RLO | FC | |
Запись | x | x | x | x | x | x | 1 | x | х |
Данная команда делит вход IN1 на IN2. Во всем остальном команда идентична предыдущим. Информацию по оценке этих индикаторов в слове состояния вы найдете в разделе 7.6.
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN1 | REAL | I, Q, M, D, L | Делимое | |
IN2 | REAL | I, Q, M, D, L | Делитель | |
OUT | REAL | I, Q, M, D, L | Частное |
Пример и биты слова состояния деления чисел с плавающей точкой
Состояние сигнала 1 на входе I 0.0 активизирует блок DIV_R. Об этом говорит сайт https://intellect.icu . Результат деления MD0 на MD4 помещается в двойное слово памяти MD10. Если результат выходит за пределы допустимого диапазона для вещественных чисел или состояние сигнала на входе I 0.0 равно 0, то выход Q 4.0 устанавливается. |
Биты слова состояния | |||||||||
BR | CC 1 | CC 0 | OV | OS | OR | STA | RLO | FC | |
Запись | x | x | x | x | x | x | 1 | x | х |
Математические операции оказывают влияние на следующие биты слова состояния:
Тире (-) в столбце битов таблицы означает, что соответствующий бит не испытывает воздействия со стороны результата операции.
Состояние сигнала битов слова состояния для результатов операций с плавающей точкой, находящихся в допустимом диапазоне значений
Допустимый диапазон для результата операции над числами с плавающей точкой (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 |
результат < –3.402823E+38 (отрицательное число) переполнение |
0 | 1 | 1 | 1 |
результат > 3.402823E+38 (положительное число) переполнение |
1 | 0 | 1 | 1 |
результат < –3.402823E+38 или результат > +3.402823E+38 не является числом с плавающей точкой |
1 | 1 | 1 | 1 |
С помощью команды Образование абсолютного значения числа с плавающей точкой вы можете получить абсолютное значение числа с плавающей точкой.
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN | REAL | I, Q, M, D, L | Входная величина: вещественное число | |
OUT | REAL | I, Q, M, D, L | Выходная величина: абсолютное значение вещественного числа |
Пример и биты слова состояния образования абсолютного значения числа с плавающей точкой
Если I 0.0 = 1, то абсолютное значение MD8 выводится в MD12. MD8 = +6.234 x 10-3 дает в результате MD12 = 6.234 x 10-3 Выход Q 4.0 равен "1", если преобразование не выполняется (ENO = EN = 0). |
Биты слова состояния | |||||||||
BR | CC 1 | CC 0 | OV | OS | OR | STA | RLO | FC | |
Запись | x | - | - | - | - | 0 | x | x | 1 |
С помощью команды Образование квадрата числа с плавающей точкой вы можете возвести в квадрат число с плавающей точкой. С помощью команды Образование квадратного корня числа с плавающей точкой вы можете извлечь квадратный корень из числа с плавающей точкой. Эта команда выводит положительный результат, если операнд больше, чем “0”. Единственное исключение: квадратный корень из - 0 равен –0. Информацию по оценке этих индикаторов в слове состояния вы найдете в разделе 7.6.
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN | REAL | I, Q, M, D, L | Число | |
OUT | REAL | I, Q, M, D, L | Квадрат числа |
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN | REAL | I, Q, M, D, L | Число | |
OUT | REAL | I, Q, M, D, L | Квадратный корень числа |
Пример и биты слова состояния образования квадрата или квадратного корня
Блок SQRT активизируется, когда I 0.0 = 1. Результат SQRT (MD0) сохраняется в двойном слове памяти MD10. Если MD0 < 0, или если результат выходит за пределы допустимого диапазона для чисел с плавающей точкой, или состояние сигнала на входе I 0.0 = 0, то выход Q 4.0 устанавливается. |
Биты слова состояния | |||||||||
BR | CC 1 | CC 0 | OV | OS | OR | STA | RLO | FC | |
Запись | x | x | x | x | x | 0 | x | x | 1 |
С помощью данной команды можно образовать натуральный логарифм числа с плавающей точкой.
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN | REAL | I, Q, M, D, L | Число | |
OUT | REAL | I, Q, M, D, L | Натуральный логарифм числа |
Пример и биты слова состояния образования натурального логарифма
Блок LN активизируется, когда I 0.0 = 1. Результат LN (MD0) сохраняется в двойном слове памяти MD10. Если MD0 < 0, или если результат выходит за пределы допустимого диапазона для чисел с плавающей точкой, или если состояние выход Q 4.0 устанавливается. |
Биты слова состояния | |||||||||
BR | CC 1 | CC 0 | OV | OS | OR | STA | RLO | FC | |
Запись | x | x | x | x | x | 0 | x | x | 1 |
С помощью команды Образование экспоненциального значения числа с плавающей точкой вы можете образовать экспоненциальное значение числа с плавающей точкой с основанием e (= 2.71828...).
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN | REAL | I, Q, M, D, L | Число | |
OUT | REAL | I, Q, M, D, L | Экспонента числа |
Пример и биты слова состояния образования экспотенциального значения
Блок EXP активизируется, когда I 0.0 = 1. EXP (MD0) сохраняется в двойном слове памяти MD10. Если MD0 < 0, или если результат выходит за пределы допустимого диапазона для чисел с плавающей точкой, или если состояние сигнала I 0.0 = 0, то выход Q 4.0 устанавливается. |
Биты слова состояния | |||||||||
BR | CC 1 | CC 0 | OV | OS | OR | STA | RLO | FC | |
Запись | x | x | x | x | x | 0 | x | x | 1 |
С помощью следующих команд вы можете образовать тригонометрические функции углов, представленных в виде чисел с плавающей точкой (32 бита, IEEE).
Команда | Пояснение |
SIN | Образовать синус угла, заданного в радианах. |
ASIN | Образовать арксинус числа с плавающей точкой. Результатом является угол, заданный в радианах. Это значение находится в следующем диапазоне: -¶/ 2 =<арксинус=<+¶/ 2, где ¶= 3.14... |
COS | Образовать косинус числа с плавающей точкой, представляющего угол, заданный в радианах. |
ACOS | Образовать арккосинус числа с плавающей точкой. Результатом является угол, заданный в радианах. Это значение находится в следующем диапазоне: 0 =<арккосинус =<+¶, где ¶ = 3.14... |
TAN | Образовать тангенс числа с плавающей точкой, представляющего угол, заданный в радианах. |
ATAN | Образовать арктангенс числа с плавающей точкой. Результатом является угол, заданный в радианах. Это значение находится в следующем диапазоне: -¶ / 2 =<арктангенс=< + ¶ / 2, где¶ = 3.14... |
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN | REAL | I, Q, M, D, L | Число | |
OUT | REAL | I, Q, M, D, L | Синус числа |
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN | REAL | I, Q, M, D, L | Число | |
OUT | REAL | I, Q, M, D, L | Арксинус числа |
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN | REAL | I, Q, M, D, L | Число | |
OUT | REAL | I, Q, M, D, L | Косинус числа |
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN | REAL | I, Q, M, D, L | Число | |
OUT | REAL | I, Q, M, D, L | Арккосинус числа |
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN | REAL | I, Q, M, D, L | Число | |
OUT | REAL | I, Q, M, D, L | Тангенс числа |
Блок LAD | Параметры | Тип данных | Область памяти | Описание |
EN | BOOL | I, Q, M, D, L | Разрешающий вход | |
ENO | BOOL | I, Q, M, D, L | Разрешающий выход | |
IN | REAL | I, Q, M, D, L | Число | |
OUT | REAL | I, Q, M, D, L | Арктангенс числа |
Пример и биты слова состояния тригонометрических функций
Блок SIN активизируется, когда I 0.0 = 1. Результат SIN (MD0) сохраняется в двойном Слове памяти MD10. Если результат выходит за переделы допустимого диапазона для чисел с плавающей точкой или I 0.0 = 0, то выход Q 4.0 устанавливается. |
Биты слова состояния | |||||||||
BR | CC 1 | CC 0 | OV | OS | OR | STA | RLO | FC | |
Запись | x | x | x | x | x | 0 | x | x | 1 |
Надеюсь, эта статья об увлекательном мире операции над числами с плавающей точкой в контактном плане, была вам интересна и не так сложна для восприятия как могло показаться. Желаю вам бесконечной удачи в ваших начинаниях, будьте свободными от ограничений восприятия и позвольте себе делать больше активности в изученном направлени . Надеюсь, что теперь ты понял что такое операции над числами с плавающей точкой в контактном плане и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Программирование в контактном плане / LAD
Комментарии
Оставить комментарий
Промышленное программирование. программирование контроллеров
Термины: Промышленное программирование. программирование контроллеров