Показано с 1 по 10 из 13

Тема: Фиксация данных на определенный промежуток времени

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Фиксация данных на определенный промежуток времени

    Возникла такая необходимость. Нужно фиксировать данные на 5 секунд, а не на один цикл на выходе D блока TREND библиотеки BASIC OSCAT. Сутки голову ломаю, ни одной мысли.

  2. #2

    По умолчанию

    Вы бы чуть конкретнее, что за программа?
    +79104444236
    С уважением,
    Лапшин Вячеслав

  3. #3

  4. #4

    По умолчанию

    Пишу нв CFC. Мне данные с выхода нужны для дальнейшей обработки и управления приводом, а так как данные появляются только на один цикл, я не могу привязать управление двигателем.

  5. #5

    По умолчанию

    Цитата Сообщение от Юрий+ Посмотреть сообщение
    Пишу нв CFC. Мне данные с выхода нужны для дальнейшей обработки и управления приводом, а так как данные появляются только на один цикл, я не могу привязать управление двигателем.
    "данные появляются на один цикл" - а потом какое значение на этом выходе?
    Т.е. как отследить момент появления данных на выходе D?

  6. #6

    По умолчанию

    На вход подается значение REAL, а на этом выходе на один цикл появляется значение на которое изменился вход. Через некоторое время значение входа меняется, на выхода данные на сколько изменились данные на один цикл. А мне нужно эти данные привязать к счетчику импульсов.

  7. #7

    По умолчанию

    Код:
    VAR
         TON1 : TON;
         Trig1 : R_TRIG;
         B1 : BYTE;
         Var1 : BYTE;
    END_VAR
    
         B1 := B1 + 1;
    
         TON1(IN := NOT TON1.Q, PT := T#5000MS);
    
         Trig1(CLK := TON1.Q);
    
         IF Trig1.Q THEN
              Var1 := B1;
         END_IF
    Адаптируйте под свои нужды и "заверните" в функциональный блок указанный выше код, который потом используйте в CFC.
    Последний раз редактировалось Spawn; 22.05.2023 в 01:23.

  8. #8

    По умолчанию

    Цитата Сообщение от Spawn Посмотреть сообщение
    Код:
    VAR
         TON1 : TON;
         Trig1 : R_TRIG;
         B1 : BYTE;
         Var1 : BYTE;
    END_VAR
    
         B1 := B1 + 1;
    
         TON1(IN := NOT TON1.Q, PT := T#5000MS);
    
         Trig1(CLK := TON1.Q);
    
         IF Trig1.Q THEN
              Var1 := B1;
         END_IF
    Адаптируйте под свои нужды и "заверните" в функциональный блок указанный выше код, который потом используйте в CFC.
    Блок получается цикличным и не подходит. А не проще может сделать так, чтобы переменная REAL при увеличении данных был один выход BOOL, при уменьшении другой. Не подскажете как это сделать?

  9. #9

    По умолчанию

    Цитата Сообщение от Юрий+ Посмотреть сообщение
    Блок получается цикличным и не подходит. А не проще может сделать так, чтобы переменная REAL при увеличении данных был один выход BOOL, при уменьшении другой. Не подскажете как это сделать?
    У блока TREND есть выходы TU и TD c аналогичным назначением

  10. #10

    По умолчанию

    🙂Я на язык ST смотрю и ничего не понимаю, для меня это темный лес. Я так понимаю, нужно созжать ФБ по этому коду. Нужно дописать вход и выход как я понимаю. Вход будет B1, а выход Var1, как чтоли?

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 23.10.2022, 15:11
  2. Ответов: 8
    Последнее сообщение: 25.02.2020, 00:03
  3. Привязка данных ко времени
    от forpiv в разделе СПК1хх
    Ответов: 8
    Последнее сообщение: 22.09.2019, 07:19
  4. Ответов: 1
    Последнее сообщение: 22.03.2019, 06:52
  5. Вывод данных за определенный интервал
    от Flicker в разделе Панели оператора (HMI)
    Ответов: 2
    Последнее сообщение: 21.11.2013, 23:20

Ваши права

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