Не секрет! паруснов25501 по моему этот точно не помню.
Вид для печати
Не секрет! паруснов25501 по моему этот точно не помню.
Пришло сообщение в личку:Решил, что нужно выложить пример использования макроса fROM на всеобщее обозрение....Цитата:
Спасибо...Цитата:
Сообщение от AI!
Пытаюсь применить ваш макрос в ситуации:
Входной параметр - температура теплоносителя установки меняется с 82,5С до 100С..
Выходной параметр(задание - управление исполнителем) - флоат - уменьшается с 1,0 до 0,01.
Смещение - 2 градуса..
Зависимость следующая:
Темп. - задание
82.5 - 1.000
84.5 - 0.980
86.5 - 0.886
88.5 - 0.780
90.5 - 0.670
92.5 - 0.564
94.5 - 0.450
96.5 - 0.348
98.5 - 0.206
100.0 - 0.012
1) Первое что мы видим, что шаг 2 градуса, а у fROM, как у любого нормального ROM ;) шаг=1 т.е. надо будет разделить на 2
2) шаг должен быть одинаковый, а контрольная точка "100" не вписывается в это условие, но с учётом, что это крайнее значение, и то что больше 100 нас не интересует, просто сделаем линейную интерполяцию до "100.5".
Путём несложных вычислений, у меня получилось что при 100.5 значение должно быть -0,052(6)
3) внутри макроса есть константа "смещение", это смещение первого значения, в нашем случае, т.к. мы вход предварительно делим пополам, смещение равно 82.5/2=41.25
4) для демонстрации возможностей каскадирования макроса, решил усложнить задачу, и увеличить кол-во контрольных точек в 2 раза, т.е. с 62.5 до 100, с шагом 2 градуса, т.к. именно для удобства каскадированияо внутрь макроса было встроено "смещение". При этом, "смещение" соседних блоков должно отличаться ровно на 10. (на выходе числа абстрактные, просто для примера)
получается бесшовная склейка выходных значений, т.е. линейная интерполяция между последним значением одного макроса и первым значением второго
PS если во вложенном примере удалить fROM2 то будет исходное условие.
Константы надо подписать как нибудь, хотя бы так:
Вложение 31600
А то немудрено и попутать, и не факт что они идут по порядку, как Вы полагаете:
Вложение 31601
Понятно, Вы не верите, пока шишек не набьёте вдоволь, вот смотрите, зашёл в макрос и случайно "шевельнул" ни чего не меняя и что получилось в итоге:
Вложение 31602
Вроде подходящая тема: посмотрел макросы SCALE, точно не скажу как обозвать, типа преобразователь диапазона или перенос диапазона из одной области в другую и ужаснулся, честно чуть с ума не сошёл, зачем так всё сильно усложнили, короче, чтобы не сойти с ума придумал свой вариант, как мне кажется минимум раза в два проще чем я смог найти из самых простых:
Вложение 31627
Конструктивная критика приветствуется!
Норм.
Добавит условие что при превышении входным сигналом IN значения MAX_IN, выход Q всегда имел значение MAX_Q, и можно использовать в качестве задатчика. Хоть для тех же частотников.
Э-э ... А где можно глянуть на так сказать первоисточник. Ну мне так, просто поржать.
Я бы тогда как-то так сделал:
Вложение 31629
Сколько людей, столько и мнений, лично я не вижу особого смысла объединять два, функционально разных макроса, хотя не исключаю такого в отдельных случаях!