Стартовая страница › Форумы › Понять, как работает ПО › Использование формул › Как использовать формулы ?
- В этой теме 86 ответов, 12 участников, последнее обновление 3 года, 2 месяца назад сделано Mikhail.
-
АвторСообщения
-
25.09.2018 в 09:40 #10290RomirosУчастник
Stat() > 0 ? — это и есть проверка на инициализацию. Если статус = 0, то канал получит значение канала 603, если статус > 0, то будет вычисляться разница.
25.09.2018 в 09:41 #10291manjey73УчастникПопробую на пальцах.
1. Применять минутные тики Scada неправильно. Почему ? — да просто нарастание(убывание) изменения сигнала может начаться между минутными тиками, например в середине и за 30 сек могут почти достигнуть максимума, о котором требуется сообщить. Например у вас порог 200 единиц, за 30 сек набрали 180, минутным тиком Scada вы сделали сброс, а за следующие 15 сек еще прибавилось 100 единиц.
Итого у вас было за 45 сек 180+100=280 единиц, но мы их успешно просрали.Только применение таймера, не привязанного к минутным тикам Scada необходимо применять.
2. Далее от задачи нужно делать формулу счетчика. Если требуется следить только за понижением, то счетчик на уменьшение, если вообще изменения то счетчик по абсолютному значению и импульсам изменения с каким-то шагом, чтобы уйти от дребезга и т.д. Что там у автора задачи в голове непонятно.
Но основная проблема это не стоит привязываться к минутным тикам Scada.
- Этот ответ был изменен 5 лет, 6 месяцев назад от manjey73.
25.09.2018 в 09:47 #10293manjey73УчастникПредставьте, что ваш сигнал колеблется
-5, +1, -3, +2, -7, +3, -10, +1, -100, +20, -50, +13 и т.д.в итоге он уменьшился достаточно сильно, но за какое время ? между минутами Scada (в течении минуты) или в течении 10 секунд ?
Не знаю, может нужна какая-то формула минимума и максимума со сбросом по таймеру. Так было бы правильнее. И в настройках устанавливать время расчета.
Или скользящее окно с выставленным временем.- Этот ответ был изменен 5 лет, 6 месяцев назад от manjey73.
25.09.2018 в 10:46 #10295RomirosУчастникДа согласен. По идее нужен градиент
dV/dt. Изменение канала на 200 за 60 секунд. Соответственно если за 30 секунд упадет на 100 — это тоже должно считаться сработкой.
Если нужен градиент, простыми формулами не обойтись.
Походу мне тоже такая штука нужна 🙂25.09.2018 в 11:47 #10296pistoletovУчастникСмотрю не так просто все оказалось,нужна производная функции. Изменение приращения за время.
Немного подробнее расскажу о задаче реальной, возможно это натолкнет на мысли как решить ее в рамках имеющихся возможностей рапиды.
Вакуумная печь. Нагреватель. Датчик давления. Термодатчик. В печи лежит образец.
По мере нагрева с заданной скоростью может происходить интенсивное газообразование в печи и резкое падение давления. В таком случае нужно снизить мощность и подождать пока вакуумные насосы откачают все из печи потом продолжить нагрев.
прикладываю график температуры и давления в печи так возможно визуально понятней будет. Задача экспериментальная. И звучит так — при достаточно резком снижении давления…. https://ibb.co/fsWSe9- Этот ответ был изменен 5 лет, 6 месяцев назад от pistoletov.
- Этот ответ был изменен 5 лет, 6 месяцев назад от Mikhail.
25.09.2018 в 11:53 #10298pistoletovУчастникStat() > 0 ? — это и есть проверка на инициализацию. Если статус = 0, то канал получит значение канала 603, если статус > 0, то будет вычисляться разница
в документации описано так: Stat() int Текущий статус входного канала вычисляемой формулы
Но 0 у нас может быть и если значени не изменилось в течении минуты например идут данные 1000 1000 1000 1000 1000 тогда разница 0 и наш канал примет значение 1000. Или я что-то неправильно понял.25.09.2018 в 11:53 #10299manjey73Участникpistoletov картинки не видно но смысл понятен.
нужно только понять следующее, что данные с датчика давления поступают со скоростью опроса модуля ввода и скорости им опроса аналогового входа.
давление у вас резко понижается, когда происходит работа. При работе давление может быть разным ? нет такого, что когда работа нормальная то давление какое-то строго определенное ?
25.09.2018 в 12:04 #10300pistoletovУчастниккартинка
Может так видна картинка будет. Да данные поступают со скоростью опроса модуля. Временные интервалы анализа падения давления минута вполне подходит. Давление нет, строго опрделенным не бывает. Неизвестно какая примесь и как сильно может дать выброс.25.09.2018 в 12:26 #10301manjey73Участникмне кажется надо скрестить таймер с записью начального значения измеряемого сигнала в начале старта таймера и сбрасывать таймер если значение не изменилось на Y единиц за время таймера.
Раздельно использовать формулы будет неправильно, так как будут давать погрешность.
Либо если делать раздельные формулы то надо продумать последовательность каналов. Scada выполняет формулы последовательно как в LAD языке для ПЛК.
25.09.2018 в 12:29 #10302RomirosУчастникНо 0 у нас может быть и если значени не изменилось в течении минуты например идут данные 1000 1000 1000 1000 1000 тогда разница 0 и наш канал примет значение 1000. Или я что-то неправильно понял.
Не путайте статус и значение канала.
Если значение не меняется дельта будет 0, а у Вас устава на 200.
Мне кажется вы не разобрались просто. Покажите скрин администратора с формулами. Или распишите каждый канал.
Думаю в Вашем случае достаточно той формулы, что мы предложили выше, т.к. достаточно контролировать раз в минуту и в одном направлении.- Этот ответ был изменен 5 лет, 6 месяцев назад от Romiros.
25.09.2018 в 12:47 #10304pistoletovУчастникДобро. Завтра запустят печку и попробую так. Да я статус и значение действительно попутал. А где глянуть какое значение может статус принимать? 0 при инициализации а какие еще значения у него могут быть? Минутные тики меня вполне устраивают. Там не такая адски высокая скорость реакции нужны. Да и значением цифры падения можно это дело корректировать. Упало резко тормозим нагрев…оно и дальше падать будет. Это как задача с кипящим молоком чем раньше увидели пену и быстрей прикрутили-))) Само падение при сильно критических ситуациях это минут 5-10 быстрее не бывало еще
- Этот ответ был изменен 5 лет, 6 месяцев назад от pistoletov.
25.09.2018 в 12:58 #10306RomirosУчастникДа процесс довольно инерционный.
Статусы смотрите в Администраторе, справочник Типы событий25.09.2018 в 13:33 #10307RomirosУчастникmanjey мне кажется минутные тики использовать всё-таки нужно. Нам нужно иметь какую-то привязку. Для минутного градиента отталкиваться от значения за прошлую минуту.
А дальше в дорасчетном канале получать значение и текущее время и значения в минутном ТИ и его время и вычислять приращение.
Мне кажется уже что-то подобное обсуждалось на форуме.25.09.2018 в 15:10 #10308manjey73УчастникПривязка таймер. Если использовать минутные тики, то у вас будет работать в диапазоне от 1 минуты до 2 минут или не будет работать вовсе, если минутные тики Scada будут успевать сбрасывать.
Например каждую минуту у вас падение на 180 единиц, а уставка 200 и что в итоге ?
да ничего не отключится просто, зато за 5 минут упадет на 180*5=900 единиц…Есть еще другой момент, это ваши действия при снижении давления.
Отключение нагрева
Запрет нагрева
Продувка (или что там у вас)
Продувка выполнена
Разрешение нагрева
Включение нагреваПо сути вам надо составить алгоритм работы установки если правильно понимаю.
То есть кроме отключения нагрева еще должны быть действия с запрещающими и разрешающими сигналами.
А то вы выключите, а через пару-тройку циклов начнете опять нагрев включать и так и будете дергать печку…25.09.2018 в 15:13 #10310pistoletovУчастникScada Admin
Верно ли в формуле для 609 канала указать вместо val() val(610) и это будет значение
val (601) минуту назад? как на картинке
Буду признателен на ссылку по подобной проблеме- Этот ответ был изменен 5 лет, 6 месяцев назад от pistoletov.
- Этот ответ был изменен 5 лет, 6 месяцев назад от pistoletov.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.