На форуме обязательно:
  1. Заполнить свой профиль НА РУССКОМ ЯЗЫКЕ КИРИЛИЦЕЙ. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Рекламу мы не размещаем ни на каких условиях.

Как найти накопительный расход

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)
Ответить

Автор темы
Soylo
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 02 авг 2017, 14:28
Имя: Александр
Благодарил (а): 1 раз

Как найти накопительный расход

Сообщение Soylo » 14 авг 2017, 12:43

Добрый день.
Имеется расходомер ДРС.М импульсный, с ценой импульса 0,001м3.
Мгновенный расход (воды) я нашел, по формуле: q=3600* K* fвых (м3/ч).
Как мне найти накопительный (общий расход) воды. В TIA Portal v13 (LAD).
Думал сделать так. Посчитать сколько импульсов в секунду, потом умножить на цену импульса, получим сколько кубов в сек.И прибавлять реальное к предыдущему. Но не получается. Подскажите, как правильно сделать?


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 3684
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 111 раз
Поблагодарили: 195 раз

Как найти накопительный расход

Сообщение Ryzhij » 14 авг 2017, 20:03

Не надо определять частоту следования импульсов. Просто считайте импульсы и умножайте на цену импульса.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Автор темы
Soylo
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 02 авг 2017, 14:28
Имя: Александр
Благодарил (а): 1 раз

Как найти накопительный расход

Сообщение Soylo » 15 авг 2017, 07:57

Так найдем мгновенный расход, а накопительный ?


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 3684
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 111 раз
Поблагодарили: 195 раз

Как найти накопительный расход

Сообщение Ryzhij » 15 авг 2017, 08:35

Мгновенный расход (расход за единицу времени) равен количеству импульсов за эту самую единицу времени (за секунду, за час, за сутки), умноженному на вес одного импульса. Фильтрация - по вкусу.

А накопительный - общему количеству импульсов, умноженному на вес одного импульса.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр

Аватара пользователя

megavolt86
авторитет
авторитет
Сообщения: 872
Зарегистрирован: 14 ноя 2013, 19:35
Имя: Анатолий Сергеевич
Откуда: Башкортостан
Благодарил (а): 8 раз
Поблагодарили: 21 раз

Как найти накопительный расход

Сообщение megavolt86 » 15 авг 2017, 09:46

Soylo писал(а): мгновенный расход, а накопительный ?
Выражайтесь правильно!
Что есть накопительный расход? Объем может быть?
Если объем то, товарищ Rizhij дал вам правильный алгоритм!
:ext_secret:


Автор темы
Soylo
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 02 авг 2017, 14:28
Имя: Александр
Благодарил (а): 1 раз

Как найти накопительный расход

Сообщение Soylo » 15 авг 2017, 16:42

Мне нужно найти, общее количество жидкости, прошедшее через расходомер.
Как мне программно реализовать, нахождения количества импульсов в секунду. До меня не доходит.
Не судите строго, я новичок в этом деле. Спасибо за помощь!

Аватара пользователя

megavolt86
авторитет
авторитет
Сообщения: 872
Зарегистрирован: 14 ноя 2013, 19:35
Имя: Анатолий Сергеевич
Откуда: Башкортостан
Благодарил (а): 8 раз
Поблагодарили: 21 раз

Как найти накопительный расход

Сообщение megavolt86 » 15 авг 2017, 17:36

Soylo писал(а): количества импульсов в секунду
Вам сколько раз уже ответили, что в секунду вам не надо считать количество импульсов, только общее количество импульсов. Далее это количество умножаете на цену импульса и получаете общее количество вещества (объем), прошедший через расходомер.
Счетчик можете написать свой, а можете использовать CTU, на вход in заводите дискретный входной сигнал с расходчика. Только надо учесть, чтобы счетчик сбрасывался, допустим при достижении значения 1000 кубов, дабы не было переполнения.

Кстати если сигнал заведен на высокочастотный вход, то счетчик можно настроить в хардваре и оперировать уже значением счетчика в формате int.
Если этот высокочастотный вход настроить на измерение частоты то можете получить как раз таки количество импульсов в секунду так же в формате int.

В любом случае по вашим исходным данным вам дали исчерпывающие рекомендации по решению задачи....
:ext_secret:

Аватара пользователя

Looker
не первый раз у нас
не первый раз у нас
Сообщения: 379
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
Откуда: Донецк
Благодарил (а): 59 раз
Поблагодарили: 23 раза

Как найти накопительный расход

Сообщение Looker » 15 авг 2017, 18:40

Soylo писал(а): Мне нужно найти, общее количество жидкости, прошедшее через расходомер.
Модуль счетчика имеется?
Ryzhij писал(а):
Soylo писал(а): Так найдем мгновенный расход, а накопительный ?=
Просто считайте импульсы и умножайте на цену импульса.
Не забывая про перенос.
В твоем (Soylo) пути стоит иметь ввиду, что Float32 имеет насыщение, если будешь суммировать.
Soylo писал(а): Мгновенный расход (воды) я нашел...
Оставь это для индикации оператору.
Пока отвечал, пришло:
megavolt86 писал(а): Вам сколько раз уже ответили, что в секунду вам не надо считать количество импульсов
Одобрям. (С) Хазанов.
__________________________
Не надо сравнивать стоимость технических средств - сравнивайте стоимость решения.


Автор темы
Soylo
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 02 авг 2017, 14:28
Имя: Александр
Благодарил (а): 1 раз

Как найти накопительный расход

Сообщение Soylo » 15 авг 2017, 20:10

Под модулем вы (Looker) подразумеваете вторичку?Вторички нет, индикации тоже нет, цепляю сразу на DI контроллера. Спасибо за ответы. Попробую сделать , как советуете.

Аватара пользователя

Looker
не первый раз у нас
не первый раз у нас
Сообщения: 379
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
Откуда: Донецк
Благодарил (а): 59 раз
Поблагодарили: 23 раза

Как найти накопительный расход

Сообщение Looker » 15 авг 2017, 22:11

Soylo писал(а): Под модулем вы (Looker) подразумеваете вторичку?
Подразумеваю возможность аппаратного подсчета (прикладная программа считывает готовое число): модуль устанавливаемый в контроллер или специальный вход контроллера.
Soylo писал(а): цепляю сразу на DI контроллера
Какую максимальную частоту может обработать этот вход? Можно не отвечать.
__________________________
Не надо сравнивать стоимость технических средств - сравнивайте стоимость решения.


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 3684
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 111 раз
Поблагодарили: 195 раз

Как найти накопительный расход

Сообщение Ryzhij » 16 авг 2017, 05:44

Looker писал(а): стоит иметь ввиду, что Float32 имеет насыщение, если будешь суммировать.
Эффект насыщения при инкременте имеет ЛЮБОЙ тип Float (Real), не только Float32.
Счетчик, действительно, должен быть целочисленным.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр

Аватара пользователя

Looker
не первый раз у нас
не первый раз у нас
Сообщения: 379
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
Откуда: Донецк
Благодарил (а): 59 раз
Поблагодарили: 23 раза

Как найти накопительный расход

Сообщение Looker » 16 авг 2017, 18:37

Ryzhij писал(а): Эффект насыщения при инкременте имеет ЛЮБОЙ тип Float (Real), не только Float32.
Правильно, только при 64-х разрядах это произойдет гораздо позже.

PS. " Вчера на улице ко мне подошла старуха и предложила купить вечную иглу для примуса. Вы знаете, Адам, я не купил. Мне не нужна вечная игла, я не хочу жить вечно."
__________________________
Не надо сравнивать стоимость технических средств - сравнивайте стоимость решения.


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 3684
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 111 раз
Поблагодарили: 195 раз

Как найти накопительный расход

Сообщение Ryzhij » 16 авг 2017, 20:26

Прикол в том, что при инкрементальном счёте (постоянном увеличении счетчика на единицу) использование формата Float не выгодно по-любому. Так, мантиса во Float64 занимает 52 бита, и насыщение инкрементального счётчика с Float64 произойдёт гораздо раньше, чем возникнет перенос в том же 64-разрядном целочисленном регистре (знак и 63 бита числа).
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр

Аватара пользователя

Looker
не первый раз у нас
не первый раз у нас
Сообщения: 379
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
Откуда: Донецк
Благодарил (а): 59 раз
Поблагодарили: 23 раза

Как найти накопительный расход

Сообщение Looker » 16 авг 2017, 23:10

Ryzhij писал(а): насыщение инкрементального счётчика с Float64 произойдёт гораздо раньше, чем возникнет перенос в том же 64-разрядном
Мое предупреждение было про Float32 и добавление про Float64. А подходить к этим делам надо разумно, иначе будет:
- что хотим иметь?
- Точность до XXXXXX после запятой.
- какой у вас расход?
- YYYYYYY в час.
- сколько знаков отображать?
- все: YYYYYYY.XXXXXX
- За сколько лет (или на каком интервале времени)?
- Более 10.
:ext_hooray:

PS. Количество X и Y указано отфонарно, чтобы показать...

Вячеслав (Ryzhij), у Rockwell в Logix есть команда TOT, применял? Хочу услышать отзыв от практиков.
__________________________
Не надо сравнивать стоимость технических средств - сравнивайте стоимость решения.


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2605
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 74 раза
Контактная информация:

Как найти накопительный расход

Сообщение Михайло » 17 авг 2017, 16:13

Прикол в том, что вещественные типы (real,float) абсолютно непригодны для суммирования больших чисел с маленькими приращениями.

Что касается S7-1200, то тут лучше:
1. использовать аппаратный счетчик HSC (желательно, но надо разбираться, с чем его едят), потому что обычный способ имеет ограничение по частоте - импульсы должны поступать не чаще примерно 10 Гц, иначе программа не будет успевать считать их, будут пропуски.
2. использовать тип UDINT для хранения накопленного объема
3. для приращения использовать команду INC, которая вроде сама обнулит объем при переполнении
4. Затем UDINT можно пересчитать в REAL с помощью функций NORM_X и SCALE_X


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 3684
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 111 раз
Поблагодарили: 195 раз

Как найти накопительный расход

Сообщение Ryzhij » 18 авг 2017, 06:32

Looker писал(а): Вячеслав (Ryzhij), у Rockwell в Logix есть команда TOT, применял? Хочу услышать отзыв от практиков.
Нет, не сподобил Господь. В наших системах от Rockwell такого нет.

Знаете, я бы различал работоспособность и точность. Так-то и сломанные часы показывают точное время чаще идущих.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр

Ответить

Вернуться в «Simatic TIA Portal»