- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Как найти накопительный расход
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 6
- Зарегистрирован: 02 авг 2017, 14:28
- Имя: Александр
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 1 раз
Как найти накопительный расход
Добрый день.
Имеется расходомер ДРС.М импульсный, с ценой импульса 0,001м3.
Мгновенный расход (воды) я нашел, по формуле: q=3600* K* fвых (м3/ч).
Как мне найти накопительный (общий расход) воды. В TIA Portal v13 (LAD).
Думал сделать так. Посчитать сколько импульсов в секунду, потом умножить на цену импульса, получим сколько кубов в сек.И прибавлять реальное к предыдущему. Но не получается. Подскажите, как правильно сделать?
Имеется расходомер ДРС.М импульсный, с ценой импульса 0,001м3.
Мгновенный расход (воды) я нашел, по формуле: q=3600* K* fвых (м3/ч).
Как мне найти накопительный (общий расход) воды. В TIA Portal v13 (LAD).
Думал сделать так. Посчитать сколько импульсов в секунду, потом умножить на цену импульса, получим сколько кубов в сек.И прибавлять реальное к предыдущему. Но не получается. Подскажите, как правильно сделать?
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 840 раз
Как найти накопительный расход
Не надо определять частоту следования импульсов. Просто считайте импульсы и умножайте на цену импульса.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 840 раз
Как найти накопительный расход
Мгновенный расход (расход за единицу времени) равен количеству импульсов за эту самую единицу времени (за секунду, за час, за сутки), умноженному на вес одного импульса. Фильтрация - по вкусу.
А накопительный - общему количеству импульсов, умноженному на вес одного импульса.
А накопительный - общему количеству импульсов, умноженному на вес одного импульса.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- эксперт
- Сообщения: 1172
- Зарегистрирован: 14 ноя 2013, 20:35
- Имя: Анатолий Сергеевич
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
Как найти накопительный расход
Выражайтесь правильно!
Что есть накопительный расход? Объем может быть?
Если объем то, товарищ Rizhij дал вам правильный алгоритм!
-
- здесь недавно
- Сообщения: 6
- Зарегистрирован: 02 авг 2017, 14:28
- Имя: Александр
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 1 раз
Как найти накопительный расход
Мне нужно найти, общее количество жидкости, прошедшее через расходомер.
Как мне программно реализовать, нахождения количества импульсов в секунду. До меня не доходит.
Не судите строго, я новичок в этом деле. Спасибо за помощь!
Как мне программно реализовать, нахождения количества импульсов в секунду. До меня не доходит.
Не судите строго, я новичок в этом деле. Спасибо за помощь!
-
- эксперт
- Сообщения: 1172
- Зарегистрирован: 14 ноя 2013, 20:35
- Имя: Анатолий Сергеевич
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
Как найти накопительный расход
Вам сколько раз уже ответили, что в секунду вам не надо считать количество импульсов, только общее количество импульсов. Далее это количество умножаете на цену импульса и получаете общее количество вещества (объем), прошедший через расходомер.
Счетчик можете написать свой, а можете использовать CTU, на вход in заводите дискретный входной сигнал с расходчика. Только надо учесть, чтобы счетчик сбрасывался, допустим при достижении значения 1000 кубов, дабы не было переполнения.
Кстати если сигнал заведен на высокочастотный вход, то счетчик можно настроить в хардваре и оперировать уже значением счетчика в формате int.
Если этот высокочастотный вход настроить на измерение частоты то можете получить как раз таки количество импульсов в секунду так же в формате int.
В любом случае по вашим исходным данным вам дали исчерпывающие рекомендации по решению задачи....
-
- почётный участник форума
- Сообщения: 1181
- Зарегистрирован: 09 фев 2011, 11:32
- Имя: Дитрих Евгений Линусович
- город/регион: Донецк
- Благодарил (а): 351 раз
- Поблагодарили: 241 раз
Как найти накопительный расход
Модуль счетчика имеется?
Не забывая про перенос.
В твоем (Soylo) пути стоит иметь ввиду, что Float32 имеет насыщение, если будешь суммировать.
Оставь это для индикации оператору.
Пока отвечал, пришло:
Одобрям. (С) Хазанов.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
-
- здесь недавно
- Сообщения: 6
- Зарегистрирован: 02 авг 2017, 14:28
- Имя: Александр
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 1 раз
Как найти накопительный расход
Под модулем вы (Looker) подразумеваете вторичку?Вторички нет, индикации тоже нет, цепляю сразу на DI контроллера. Спасибо за ответы. Попробую сделать , как советуете.
-
- почётный участник форума
- Сообщения: 1181
- Зарегистрирован: 09 фев 2011, 11:32
- Имя: Дитрих Евгений Линусович
- город/регион: Донецк
- Благодарил (а): 351 раз
- Поблагодарили: 241 раз
Как найти накопительный расход
Подразумеваю возможность аппаратного подсчета (прикладная программа считывает готовое число): модуль устанавливаемый в контроллер или специальный вход контроллера.
Какую максимальную частоту может обработать этот вход? Можно не отвечать.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 840 раз
Как найти накопительный расход
Эффект насыщения при инкременте имеет ЛЮБОЙ тип Float (Real), не только Float32.
Счетчик, действительно, должен быть целочисленным.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- почётный участник форума
- Сообщения: 1181
- Зарегистрирован: 09 фев 2011, 11:32
- Имя: Дитрих Евгений Линусович
- город/регион: Донецк
- Благодарил (а): 351 раз
- Поблагодарили: 241 раз
Как найти накопительный расход
Правильно, только при 64-х разрядах это произойдет гораздо позже.
PS. " Вчера на улице ко мне подошла старуха и предложила купить вечную иглу для примуса. Вы знаете, Адам, я не купил. Мне не нужна вечная игла, я не хочу жить вечно."
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 840 раз
Как найти накопительный расход
Прикол в том, что при инкрементальном счёте (постоянном увеличении счетчика на единицу) использование формата Float не выгодно по-любому. Так, мантиса во Float64 занимает 52 бита, и насыщение инкрементального счётчика с Float64 произойдёт гораздо раньше, чем возникнет перенос в том же 64-разрядном целочисленном регистре (знак и 63 бита числа).
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- почётный участник форума
- Сообщения: 1181
- Зарегистрирован: 09 фев 2011, 11:32
- Имя: Дитрих Евгений Линусович
- город/регион: Донецк
- Благодарил (а): 351 раз
- Поблагодарили: 241 раз
Как найти накопительный расход
Мое предупреждение было про Float32 и добавление про Float64. А подходить к этим делам надо разумно, иначе будет:
- что хотим иметь?
- Точность до XXXXXX после запятой.
- какой у вас расход?
- YYYYYYY в час.
- сколько знаков отображать?
- все: YYYYYYY.XXXXXX
- За сколько лет (или на каком интервале времени)?
- Более 10.
PS. Количество X и Y указано отфонарно, чтобы показать...
Вячеслав (Ryzhij), у Rockwell в Logix есть команда TOT, применял? Хочу услышать отзыв от практиков.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Как найти накопительный расход
Прикол в том, что вещественные типы (real,float) абсолютно непригодны для суммирования больших чисел с маленькими приращениями.
Что касается S7-1200, то тут лучше:
1. использовать аппаратный счетчик HSC (желательно, но надо разбираться, с чем его едят), потому что обычный способ имеет ограничение по частоте - импульсы должны поступать не чаще примерно 10 Гц, иначе программа не будет успевать считать их, будут пропуски.
2. использовать тип UDINT для хранения накопленного объема
3. для приращения использовать команду INC, которая вроде сама обнулит объем при переполнении
4. Затем UDINT можно пересчитать в REAL с помощью функций NORM_X и SCALE_X
Что касается S7-1200, то тут лучше:
1. использовать аппаратный счетчик HSC (желательно, но надо разбираться, с чем его едят), потому что обычный способ имеет ограничение по частоте - импульсы должны поступать не чаще примерно 10 Гц, иначе программа не будет успевать считать их, будут пропуски.
2. использовать тип UDINT для хранения накопленного объема
3. для приращения использовать команду INC, которая вроде сама обнулит объем при переполнении
4. Затем UDINT можно пересчитать в REAL с помощью функций NORM_X и SCALE_X
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 840 раз
Как найти накопительный расход
Нет, не сподобил Господь. В наших системах от Rockwell такого нет.
Знаете, я бы различал работоспособность и точность. Так-то и сломанные часы показывают точное время чаще идущих.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)