![]() |
![]() ![]() |
|
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 585
Благодарил(а): 15 раз(а)
Поблагодарили:
624 раз(а) в 569 сообщениях
|
![]()
Макросы кусочно-линейной аппроксимации, т.е. пересчёта значения из одного диапазона в другой диапазон.
Аналог в codesys: LIN_TRAFO FB Например, если у вас есть значение, изменяющееся в диапазоне от 100 до 400, а вам удобно использовать то же самое значение, но в диапазоне от 0 до 100, то настраиваете макрос: in0 = 100 in1 = 400 out0 = 0 out1 = 100 Значение 4..400 подаёте на вход in макроса, а с выхода out вы получаете то же самое значение, но уже приведённое к диапазону 0..100 Также этот макрос очень удобно использовать в преобразованиях значений, полученных с аналогового входа в удобные вам единицы измерения. Внимание, применяя макросы с типом данных int и long учитывайте наличие ошибок округления при работе с малыми числами! Например, невозможно корректно преобразовать диапазон 0..100 в диапазон 50..55 с помощью макросов с типами int и long. Используйте для этого тип данных real. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 02.09.2022 в 16:41 |
![]() |
![]() |
Благодарность от: |