Стартовая страница › Форумы › Понять, как работает ПО › Использование формул › Формула таймера 1 сек
- В этой теме 11 ответов, 4 участника, последнее обновление 11 месяцев, 3 недели назад сделано
Mikhail.
-
АвторСообщения
-
22.11.2022 в 07:59 #26171
fergus2022
УчастникЗдравствуйте, подскажите пожалуйста формулу, чтобы допустим каждую секунду проверять, изменилось ли значение тега, и если изменилось, присвоить значение +1 к текущему другого тега
22.11.2022 в 09:08 #26172manjey73
УчастникТаймер тут немного не подойдет. Так как значение может измениться в пределах работы самого таймера и он свято будет сравнивать одно с тем же…
22.11.2022 в 09:33 #26173fergus2022
УчастникА что могло бы подойти ?
Суть в том, что есть расходомер, есть мокса. Нужно узнавать интервал обновления счетчика расходомера (к примеру 1 секунда, потом данные обновились через 2 секунды, потом снова через 1 сек.) Как то возможно это сделать в скаде ?22.11.2022 в 10:02 #26175fergus2022
УчастникСможет ли скада каждые 2-4мс выполнять такой скрипт ?
22.11.2022 в 11:07 #26177manjey73
Участник2-4мс это маловато будет, чтобы Scada успела перебрать формулы всех каналов…
И чем больше канало, тем больше цикл.Дело в том, что когда у вас выполняется все в цикле и цикл больше секунды к примеру, то тот же Таймер будет выполняться по времени равный циклу и никак иначе если в простом варианте объяснения. Далее это уже задачи по прерываниям, но это немного не про Scada.
В идеале надо считать время между срабатываниями таймера или некой формулы и учитывать это время при расчетах.
Опять же, у вас Moxa — добавьте сюда время опроса через Moxa расходомера…Что вы считываете с расходомера через Moxa? начинать надо с этого. То есть что это за значения?
22.11.2022 в 11:22 #26178fergus2022
УчастникС расходомера берется счетчик импульсов. Т.е счетчик скаждым импульсом увеличивается. Но нам нужно знать период между импульсами
22.11.2022 в 11:30 #26179manjey73
УчастникТо есть вы получаете просто нарастающее значение счетчика?
Вот тогда вам и надо плясать от времени, но не от 1 сек, 2 сек а от момента срабатывания, до момента срабатывания, а это может быть и 1,5 и 0,9 секунды и так далее.
Ну и уже потом приводить разницу полученных импульсов к какому-то итогу.
Вам надо сохранять Тики, количество прошедших миллисекунд между измененными значениями из расходомера.
В принципе можно и таймер с фиксированным временем применить (скажем та же секунда), но простой таймер не подойдет, так как вам нужен не факт его срабатывания а именно значение PT (времени) между срабатыванием. Ну и соответственно когда сработал таймер, проверять старое значение из расходомера с текущим и если они отличаются, использовать полученный PT таймера при расчете.22.11.2022 в 12:37 #26181fergus2022
УчастникА есть ли примеры скриптов ?
22.11.2022 в 13:36 #26184manjey73
УчастникНет к сожалению.
22.11.2022 в 17:13 #26207Mikhail
МодераторДобрый день!
В Rapid SCADA 6 для канала можно использовать формулуEverySec(MyFunc)
, где MyFunc — это Ваша функция, которая выполняет проверку и увеличение счётчика.Также в 6-й версии в формулах есть доступ к предыдущему значению канала.
-
Этот ответ был изменен 1 год назад от
Mikhail.
11.12.2022 в 18:10 #26591a_l_e_x
УчастникПодскажите где почитать про доступ к предыдущему значению
12.12.2022 в 10:02 #26594 -
Этот ответ был изменен 1 год назад от
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.