Страница 34 из 58 ПерваяПервая ... 24323334353644 ... ПоследняяПоследняя
Показано с 331 по 340 из 579

Тема: Создать функцию на ST

  1. #331

    По умолчанию

    Я завел обр связь с вых функции на вход и получил возможность на ST писать свои счетчики, триг со всякой нужной мне логикой. мне показалось, что это удобно и очень компактно. Интересно, кто нибудь так делал?

  2. #332
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,240

    По умолчанию

    Цитата Сообщение от Alexandr21 Посмотреть сообщение
    Я завел обр связь с вых функции на вход и получил возможность на ST писать свои счетчики, триг со всякой нужной мне логикой. мне показалось, что это удобно и очень компактно. Интересно, кто нибудь так делал?
    Это не ваша заслуга, а ваша невнимательность, другие(в том числе и я) так давно(всегда) делали для удобства!

    https://owen.ru/forum/showthread.php?t=35810

    Энергонезависимость.PNG
    Последний раз редактировалось Сергей0308; 30.01.2022 в 22:53.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  3. #333

    По умолчанию

    Цитата Сообщение от keysansa Посмотреть сообщение
    Не путаем. Код - он бывает и текстовый и исполняемый. Если знакомы с С, это как вызов обычной функции, и вызов той же функции Inline. И в том и в другом случае, есть повторное использование кода. В разных случаях - для разных задач. В случае inline - для быстродействия, в случае обычной функции - для экономии.
    Но изменив код в одном месте - он поменяется при всех вызовах - смотрим снова на все пункты.

    ЗЫ. "Убегание кэша" вам вообще ничем не грозит, так как:
    1. Вы его не получите, так как булева алгебра очень близка к машинному коду = компактна. Даже при использовании строк.
    2. Чем код менее оптимизирован компилятором под размер (меньше переходов, линейный), тем он больше но и быстрее исполняется, так как меньше операций PUSH, POP.
    2. Даже, если, вдруг, каким-то чудом, получите множественную очистку кэша, вас, как программиста автоматики, это не должно волновать. Так как у вас есть отведенное технологическим оборудованием время цикла, например, 10мс. И пока вы из него не выбиваетесь - остальное не важно. Прогармма должна выполнить цикл менее или равно, чем за отведенное время. Если нужны короткие циклы, то для этого придумали ПЛИС (я месяца 3 назад решил поизучать - просто восторге от их быстродействия).
    быстродействие получают с inline за счёт убирания преамбулы и выхода из функции. Но это работает за счёт размера кода и в какой-то момент код, 100% попадающий в кэш вылазит за него и тут, вдруг, в 3-4 раза начинает медленнее выполняться. И вся "оптимизация" идёт в пустыню Наска. Так что утверждать, что в ПР макросы быстрее функций можно на какой-нибудь нанопрограмме. А вот на больших проектах это не так.
    Тролль-наседка, добрый, нежный и ласковый

  4. #334

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    Это не ваша заслуга, а ваша невнимательность, другие(в том числе и я) так давно(всегда) делали для удобства!

    https://owen.ru/forum/showthread.php?t=35810

    Энергонезависимость.PNG
    В ST не видел, чтобы делали с обр связью.

  5. #335
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,240

    По умолчанию

    Цитата Сообщение от Alexandr21 Посмотреть сообщение
    В ST не видел, чтобы делали с обр связью.
    Вероятно ST-шникам не до этого(не до обратных связей), они, буквально все плачут, что-то не по ихнему сделали(они не так хотели) и слёзы глаза застилают!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  6. #336

    По умолчанию

    Дефектов в самом деле много. Плохо, что нельзя вставить в макрос, нет глоб переменных. Но что есть, тоже много дает, если освоить.

  7. #337

    По умолчанию

    Функция преобразования для датчика температуры KTY81-110, интерполяция на основе данных даташита по средним (нормальным) значениям:
    function KTY81_110_To_Temp: real; //Преобразование сопротивления датчика KTY81_110 в градусы
    var_input //объявление входных переменных
    resist : real; //входное сопротивление
    end_var

    var //коэффициенты кубического полинома
    k1 : real := 1.76498e-8;
    k2 : real := 0.0000953607;
    k3 : real := 0.265696;
    k4 : real := 162.834;
    end_var

    KTY81_110_To_Temp := k1*resist*resist*resist - k2*resist*resist + k3*resist - k4;

    end_function

  8. #338

    По умолчанию

    все классно, но полиномиальная функция постоянно меняет знаки между степенным множителями, потому универсальную функцию не сделать.

  9. #339

    По умолчанию

    Да нормально всё с полиномом.
    Взял циферки из даташита, скопипастил в эксель, и он мне любезно полином подобрал.
    Если полином подобрать не под полный диапазон из даташита, а только под тот, с которым собираешься работать, то точность будет заметно выше.

    -------------
    Оказалось что это сообщение было юбилейным, 1000. Какой же я старый...
    Изображения Изображения
    • Тип файла: png 1.PNG (30.5 Кб, Просмотров: 86)
    Последний раз редактировалось BETEP; 18.02.2022 в 21:56.

  10. #340

    По умолчанию

    Может кому пригодится в помощь: файл excel, подготавливает ссылки с данными на сайт WolframAlpha, для нескольких типов аппроксимации
    Вложения Вложения

Страница 34 из 58 ПерваяПервая ... 24323334353644 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 14
    Последнее сообщение: 01.07.2023, 21:30
  2. Ответов: 6
    Последнее сообщение: 22.12.2021, 10:50
  3. Ответов: 3
    Последнее сообщение: 13.09.2021, 13:31
  4. ПЛК160. Чем заменить функцию записи 0x05?
    от FallenDAY в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 26.08.2017, 13:19
  5. Как написать собственную функцию wait()
    от PavelKazakov в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 23.07.2009, 12:37

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •