Как использовать формулы ?

Просмотр 15 сообщений - с 61 по 75 (из 87 всего)
  • Автор
    Сообщения
  • #10313
    pistoletov
    Участник

    Алгоритм опять же экспериментальный. Технологии точной нет. Все пробы и ошибки.
    Пока алгоритм такой — падение давления останов поднятия температуры и ожидание его нормализации. как нормализовалось давление (выкипели примеси) то отпускаем программный задатчик нагрева. Управляет нагревателем прибор ОВЕН ТРМ 151 в нем записаны кривые нагрева. Давление упало — поставили на паузу (он держит текущую температуру). Нормализовалось — снимаем с паузы. как-то так

    #10315
    manjey73
    Участник

    Вот, теперь добавился еще компонент 🙂 ТРМ151 — как вы им управляете из Scada ?
    В случае автоматической посылки команды на паузу потребуется Модуль автоматического управления, так как без него вы команду не отправите в автомате.

    Что касается Scada в ней можно построить логику работы, как писал выше, если представить последовательность каналов как в LAD языке, сверху вниз.
    Только «катушки реле» не справа как в LAD языке а слева = значение канала.

    А так я писал формулы и AND и NOT и OR и триггеров с импульсным выходом и таймеры.
    Ну либо можно написать код в одной формуле, только в качестве входных параметров задать нужные каналы.
    Я сторонник все же описывать простой логикой в каналах, так как это значительно универсальнее, потом можно все применить и в других местах. Ну правда сделать формулы, которые бы работали в любом месте писать чуть сложнее, так как надо обеспечить не жесткую привязку переменных к каналам а косвенную. Типа куда формулу вставил, с теми каналами она и работает.

    #10316
    pistoletov
    Участник

    Вот, теперь добавился еще компонент 🙂 ТРМ151 — как вы им управляете из Scada ?пока только снимаю с него данные. Модуль автоуправления и модуль телеграмма я купил.
    Спасибо за советы всем. Такая картинка работает вроде как надо. Еще потестирую
    Админ Скада. Прикладываю

    #10317
    Romiros
    Участник

    Неправильно. Важен порядок каналов. У вас 610 получит значение позже чем произойдет расчет изменения в 609, т.е. вы будете считать по старой информации — потеряете целую минуту.
    И почему для вещественных значений Вы используете дискретный тип канала а не Real?

    • Этот ответ был изменен 3 года назад от Romiros.
    #10319
    pistoletov
    Участник

    Я писал выше — давление меряется в условных единицах. И это целочисленное значение.
    Почему же неправильно? Канал 609 возьмет текущее значение канала 603 и канала 610 (603 минуту назад).
    После этого только значение канала 610 изменится или нет ( в зависимости от времени)
    Новая информация у меня 603. предыдущая — 610.

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

    Мне приходилось решать похожую задачу, только там был уровень жидкости, а требовалось определять скорость потока. Минутных интервалов хватало, т.к. ёмкость набирается несколько часов. Столкнулся с достаточно интересными сложностями фильтрации сигнала от датчика уровня. В общем задача решаемая с помощью формул на основе каналов минутного типа. Но более конкретно нужно экспериментировать и отлаживать. Со своей стороны могу предложить коммерческую помощь по разработке работающей формулы. Здесь на форуме готов ответить на любые вопросы, с учётом того, что отладка в функции форума не входит.

    Инициализация происходит 1 раз после запуска с новым каналом. При последующих перезапусках Сервера значение канала подгружается.

    #10325
    Romiros
    Участник

    Канал 609 возьмет текущее значение канала 603 и канала 610 (603 минуту назад).
    После этого только значение канала 610 изменится или нет ( в зависимости от времени)
    Новая информация у меня 603. предыдущая — 610.
    Канал 609 посчитается раньше, чем в канал 610 придет новое значение. Разница может быть уже в 2 минуты. В вашем случае не критично.
    Но по хорошему 609 должен получать значение 603, а 610 считать разницу. Каналы вычисляются в порядке возрастания.

    #15412
    Seliverstoff.yu
    Участник

    Доброго времени суток! Могли бы Вы подсказать как таблицу менять, если Вы это уже сделали, или поделиться ну и растолковать слегка. СпасибО!

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

    Добрый день!
    Уточните, пожалуйста, Ваш вопрос. Если он не связан с данной темой, то заведите новую тему.

    #15516
    Seliverstoff.yu
    Участник

    Вопрос по поводу поста#2412 об редактировании содержании таблицы. лучше наверное создать отдельную тему? Думал, кто уже это сделал сможет поделиться опытом, если еще посещает форум.

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

    Да, данная тема не подходит, лучше отдельная.

    #18184
    evg
    Участник

    Всем привет, не могли бы помочь с простыми формулами?

    1) Если 101 канал равен 1 И 102 канал имеет статус 15, то 103 канал будет равен 25.
    2) Если 101 канал равен 1 И 102 канал имеет статус 15, то отослать почтовое уведомление.

    • Этот ответ был изменен 8 месяцев, 3 недели назад от evg.
    #18186
    manjey73
    Участник

    А чтение статуса есть встроенный ? типа Val(103) ??? я просто не помню..

    #18187
    evg
    Участник

    Текущий статус входного канала вычисляемой формулы

    Хм,
    Stat(n) int Текущий статус входного канала n; думаю как-то через это.

    #18188
    vg
    Участник

    gel-dev_it

    1) Если 101 канал равен 1 И 102 канал имеет статус 15, то 103 канал будет равен 25.
    2) Если 101 канал равен 1 И 102 канал имеет статус 15, то отослать почтовое уведомление.

    1) примерно так
    public double GetValueChannel103(double valueCh101, int statCh102)
    {
    double valueCh103 = 0;
    if(valueCh101 == 1 && statCh102 == 15)
    {
    valueCh103 = 25;
    }
    return valueCh103;
    }

    Создаёте дорасчётный канал 103, используете формулу (галочка), в формулу передаёте параметры следующим образом:
    GetValueChannel103(Val(101), Stat(102))

    Соответственно типы параметров должны соответствовать.

    • Этот ответ был изменен 8 месяцев, 3 недели назад от vg.
    • Этот ответ был изменен 8 месяцев, 3 недели назад от vg.
Просмотр 15 сообщений - с 61 по 75 (из 87 всего)
  • Вы должны авторизироваться для ответа в этой теме.