Страница 15 из 16 ПерваяПервая ... 513141516 ПоследняяПоследняя
Показано с 141 по 150 из 166

Тема: ST функции OWEN Logic

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,504

    По умолчанию

    после точки в переменной указывается бит

    пример if (myVals.5) then или как там правильно проверять 5-й бит на true.. з.ы я про синтаксис, в ST не силен.

  2. #2
    Пользователь
    Регистрация
    02.12.2018
    Адрес
    Россия Донецк
    Сообщений
    12

    По умолчанию

    спасибо!!!!!!

  3. #3

    По умолчанию

    Нигде не нашел "Таймер с задержкой включения" и выключения, нужны для последовательного запуска, например, двигателей.. В ST оказывается есть стандартные методы SYS.TON и SYS.TOF - просто офигеть Все в учебных целях.. Время в сек. только для контроля задержки
    Функциональный блок:
    function_block Timer_Delay_On (*Таймер с задержкой на вкл. 31.07.2026,Колледж АлтГУ*)
    var_input
    Start : bool := FALSE; (*Запуск*)
    Delay_On_sec : udint; (*Задержка включения, сек.*)
    Off_Reset : bool; (*Выключение и сброс таймера в 0 (высший приоритет)*)
    end_var
    var_output
    Seconds : udint; (*Текущее значение в секундах*)
    Power_On : bool; (*Включение исполнительного механизма*)
    end_var
    var
    Timer_Internal : real; (*Внутренний счетчик в секундах*)
    Current_Time : real; (*Отсчет времени при запуске*)
    Last_Time : real; (*Текущее время*)
    Delta_Time : real; (*Чистое время между включениями*)
    Delay_On : SYS.TON; //Задержка на включение (стандартный метод ST)
    end_var

    Delay_On(I := Start, T := udint_to_time(Delay_On_sec * 1000));
    Power_On := Delay_On.Q;

    (*1. Время с момента включения, в миллисекундах)*)
    Current_Time := udint_to_real(time_to_udint(get_time()));

    (*2. Дельта времени (период повторного включения)*)
    IF Last_Time = 0.0 THEN
    Delta_Time := 0.0; (*Первый вызов - не учитываем*)
    ELSE
    Delta_Time := Current_Time - Last_Time;
    END_IF
    (*3. Запоминаем текущее время*)
    Last_Time := Current_Time;
    (*4. Аварийтное отключение и сброс таймера (высший приоритет)*)
    IF Off_Reset THEN
    Timer_Internal := 0.0;
    Seconds := 0;
    Power_On := false;
    ELSE
    (*5. Проверка условий для изменения счетчика*)
    IF Start AND NOT Off_Reset THEN
    Timer_Internal := Timer_Internal + Delta_Time / 1000; (* в секунды *)
    (*6. Преобразование в целое число, секунды*)
    Seconds := real_to_udint(Timer_Internal);
    END_IF
    END_IF
    end_function_block

  4. #4

    По умолчанию

    Цитата Сообщение от oleg-altai Посмотреть сообщение
    Нигде не нашел "Таймер с задержкой включения" и выключения, нужны для последовательного запуска, например, двигателей.. В ST оказывается есть стандартные методы SYS.TON и SYS.TOF - просто офигеть Все в учебных целях.. Время в сек. только для контроля задержки
    Если вы не нашли, то это не значит что их нет.
    Тут есть не только все таймеры, но и примеры разных проектов
    https://owen.ru/forum/showthread.php...l=1#post426133

  5. #5
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    2,160

    По умолчанию

    Цитата Сообщение от oleg-altai Посмотреть сообщение
    Нигде не нашел "Таймер с задержкой включения" и выключения, нужны для последовательного запуска, например, двигателей.. В ST оказывается есть стандартные методы SYS.TON и SYS.TOF - просто офигеть Все в учебных целях.. Время в сек. только для контроля задержки
    В вашем примере каша - вы и системный таймер используете и сами параллельно время отслеживаете

  6. #6

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    В вашем примере каша - вы и системный таймер используете и сами параллельно время отслеживаете
    согласен, все надо переделать..

    Убрал лишнее, так работает, с кнопки без фиксации (так и задумано, вставляется на экране кнопка и по Ок)
    Вложения Вложения
    Последний раз редактировалось oleg-altai; 31.07.2026 в 19:30.

  7. #7

    По умолчанию

    Цитата Сообщение от oleg-altai Посмотреть сообщение
    согласен, все надо переделать..

    Убрал лишнее, так работает, с кнопки без фиксации (так и задумано, вставляется на экране кнопка и по Ок)
    Опять тоже самое, о чём выше писали, использован таймер и добавлен счёт времени. Куча ненужных переменных и лишних ковертаций в Real.
    Лучше бы примеры таймеров выше посмотрели, по ссылке.
    Последний раз редактировалось kondor3000; 31.07.2026 в 20:22.

  8. #8

    По умолчанию

    Счет времени нужен для визуализации происходящего (отладки), а что real занимает 4 байта, что boolean 4 байта. Примеры смотрел, например Таймер ТОП Р, кажется, 4 условных оператора, у меня 1. Также есть счет времени. п.с. я не профи в промышленной автоматизации, но в обычном программировании стандарты рекомендуют оптимизировать условия
    Последний раз редактировалось oleg-altai; 02.08.2026 в 18:51.

  9. #9

    По умолчанию

    Я уже понял куда попал, в сообщество "великих" экспертов.. Кстати, академик Ершов, в качестве одного из обязательных параметров программиста выделял - коммуникабельность
    А это картинка с типами данных из официальной документации по ST
    TypeData_in_ST.jpg

  10. #10

    По умолчанию

    Цитата Сообщение от oleg-altai Посмотреть сообщение
    Я уже понял куда попал, в сообщество "великих" экспертов.. Кстати, академик Ершов, в качестве одного из обязательных параметров программиста выделял - коммуникабельность
    А это картинка с типами данных из официальной документации по ST
    TypeData_in_ST.jpg
    Официальную документацию тоже пишут люди. А людям свойственно ошибаться

Страница 15 из 16 ПерваяПервая ... 513141516 ПоследняяПоследняя

Похожие темы

  1. Групповые запросы в Owen Logic. Что хотите видеть в этой функции?
    от EvgenyR в разделе Программируемые реле
    Ответов: 37
    Последнее сообщение: 05.07.2023, 15:26
  2. Owen Logic 2.1 нет экспорта устройства в Owen Cloud.
    от Григори в разделе Среда программирования OWEN Logic
    Ответов: 4
    Последнее сообщение: 12.10.2022, 19:33
  3. Добавление аварийных ситуаций в Owen Logic на ПР200 для отображения в Owen Cloud.
    от Григори в разделе Среда программирования OWEN Logic
    Ответов: 6
    Последнее сообщение: 07.07.2022, 11:09
  4. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Программируемые реле
    Ответов: 401
    Последнее сообщение: 28.07.2016, 19:46
  5. Тригонометрические функции OWEN Logic
    от POMAXA в разделе Среда программирования OWEN Logic
    Ответов: 36
    Последнее сообщение: 13.02.2016, 12:11

Ваши права

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