Формула таймера 1 сек

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Автор
    Сообщения
  • #26171
    fergus2022
    Участник

    Здравствуйте, подскажите пожалуйста формулу, чтобы допустим каждую секунду проверять, изменилось ли значение тега, и если изменилось, присвоить значение +1 к текущему другого тега

    #26172
    manjey73
    Участник

    Таймер тут немного не подойдет. Так как значение может измениться в пределах работы самого таймера и он свято будет сравнивать одно с тем же…

    #26173
    fergus2022
    Участник

    А что могло бы подойти ?
    Суть в том, что есть расходомер, есть мокса. Нужно узнавать интервал обновления счетчика расходомера (к примеру 1 секунда, потом данные обновились через 2 секунды, потом снова через 1 сек.) Как то возможно это сделать в скаде ?

    #26175
    fergus2022
    Участник

    Сможет ли скада каждые 2-4мс выполнять такой скрипт ?

    #26177
    manjey73
    Участник

    2-4мс это маловато будет, чтобы Scada успела перебрать формулы всех каналов…
    И чем больше канало, тем больше цикл.

    Дело в том, что когда у вас выполняется все в цикле и цикл больше секунды к примеру, то тот же Таймер будет выполняться по времени равный циклу и никак иначе если в простом варианте объяснения. Далее это уже задачи по прерываниям, но это немного не про Scada.

    В идеале надо считать время между срабатываниями таймера или некой формулы и учитывать это время при расчетах.
    Опять же, у вас Moxa — добавьте сюда время опроса через Moxa расходомера…

    Что вы считываете с расходомера через Moxa? начинать надо с этого. То есть что это за значения?

    #26178
    fergus2022
    Участник

    С расходомера берется счетчик импульсов. Т.е счетчик скаждым импульсом увеличивается. Но нам нужно знать период между импульсами

    #26179
    manjey73
    Участник

    То есть вы получаете просто нарастающее значение счетчика?

    Вот тогда вам и надо плясать от времени, но не от 1 сек, 2 сек а от момента срабатывания, до момента срабатывания, а это может быть и 1,5 и 0,9 секунды и так далее.

    Ну и уже потом приводить разницу полученных импульсов к какому-то итогу.

    Вам надо сохранять Тики, количество прошедших миллисекунд между измененными значениями из расходомера.
    В принципе можно и таймер с фиксированным временем применить (скажем та же секунда), но простой таймер не подойдет, так как вам нужен не факт его срабатывания а именно значение PT (времени) между срабатыванием. Ну и соответственно когда сработал таймер, проверять старое значение из расходомера с текущим и если они отличаются, использовать полученный PT таймера при расчете.

    #26181
    fergus2022
    Участник

    А есть ли примеры скриптов ?

    #26184
    manjey73
    Участник

    Нет к сожалению.

    #26207
    Mikhail
    Модератор

    Добрый день!
    В Rapid SCADA 6 для канала можно использовать формулу EverySec(MyFunc), где MyFunc — это Ваша функция, которая выполняет проверку и увеличение счётчика.

    Также в 6-й версии в формулах есть доступ к предыдущему значению канала.

    • Этот ответ был изменен 1 год, 4 месяца назад от Mikhail.
    #26591
    a_l_e_x
    Участник

    Подскажите где почитать про доступ к предыдущему значению

    #26594
    Mikhail
    Модератор

    Формулы PrevVal() и PrevStat() возвращают предыдущее значение и статус. Пока справка по новой версии не готова, встроенные формулы можно посмотреть здесь.

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Вы должны авторизироваться для ответа в этой теме.