1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Вычисления скорости протока воды на s7-1200

Модератор: Глоб.модераторы

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

Автор темы
volodumur_lv
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 21 ноя 2015, 12:19
Имя: Владимир
Страна: Украина
Благодарил (а): 2 раза

Вычисления скорости протока воды на s7-1200

Сообщение volodumur_lv »

Добрый день :ges_help:
Просьба о помощи заключается в следующем:
на производстве стоит проточный дозатор воды собственного изготовления на базе контроллера s7-1200, встал вопрос о добавление
функции вычисления скорости воды при дозировке. Пока мои попытки написать программу без успешны.
Попробую описать, что я делаю для нахождения скорости пролив. В программе я считаю количество импульсов двумя скоростными счетчиками. Каждую секунду я делаю остановку одного из них на 1 сек. , тогда вычисляю разницу двух счетчиков. Но минус этого метода, приходится обнулять один счетчик тогда значение скорости начинается с начала. Как сделать, что значения не обновлялось, а показывало увеличение или уменьшение скорости слива воды.
Заранее благодарен за помощь.

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

Вычисления скорости протока воды на s7-1200

Сообщение Ryzhij »

Не совсем понятен Ваш метод...
Вообще, для измерения частоты следования импульсов используются два способа
1) Подсчёт количества периодов измеряемого сигнала за известный калиброваный отрезок времени;
2) Подсчёт периодов опорной частоты за период измеряемого сигнала.

Для увеличения скорости обработки при первом способе можно применить сторобоскопический метод обработки. Используя несколько счётчиков можно запускать процедуру отсчёта в следующем счётчике не дожидаясь окончания периода счёта в предыдущем. Например, имеем 4 счётчика и запускаем счет в каждом из них на секунду, но со сдвигом в 1/4 секунды для каждого. Таким образом, мы можем иметь результаты чаще, не раз в секунду, а четыре раза в секунду.
Затем помещаем результаты в сдвиговый регистр и обрабатываем для вычисления изменений.
А у Вас что?
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Аватара пользователя

Автор темы
volodumur_lv
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 21 ноя 2015, 12:19
Имя: Владимир
Страна: Украина
Благодарил (а): 2 раза

Вычисления скорости протока воды на s7-1200

Сообщение volodumur_lv »

Я только начинаю заниматься программированием, не понимаю как реализовать ваш вариант расчета. Мне нужно реализовать на LAD или FBD скорость дозирования воды в л/с или л/мин. Как это сделать?
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Вычисления скорости протока воды на s7-1200

Сообщение megavolt86 »

volodumur_lv писал(а): Как это сделать?
Похожую задачурешал так:
Измеряете время между импульсами. Это время умножаете на цену импульса. По пропорции доводите значение до объема в минуту или секунду...
Если скорость большая то замереяете время между, допустим 10 импульсами...или больше.
:ext_secret:
Аватара пользователя

Автор темы
volodumur_lv
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 21 ноя 2015, 12:19
Имя: Владимир
Страна: Украина
Благодарил (а): 2 раза

Вычисления скорости протока воды на s7-1200

Сообщение volodumur_lv »

Большая просьба показать, как должна выглядеть программа для реализации данной задачи.
Спасибо.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Вычисления скорости протока воды на s7-1200

Сообщение megavolt86 »

volodumur_lv писал(а): как должна выглядеть программа для реализации
тут (в самом низу) есть небольшой тестовый пример по реализации скорости двигателя, вам он может пригодиться)))
:ext_secret:
Аватара пользователя

hitechnick
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 11 дек 2017, 10:24
Имя: Максим
Страна: РФ
город/регион: Орск

Вычисления скорости протока воды на s7-1200

Сообщение hitechnick »

Доброго времени суток!
Имею схожую проблему касательно датчика расхода воды.
Из оборудования 1500 Сименс (без скоростного счетчика) и дискретный датчик, посылающий сигнал через каждый литр воды.
Дали задание вывести на экран расход воды в час имея лишь сигналы с этого датчика.
формулу я понимаю: час делим на время между импульсами, но как это реализовать ума не приложу!

Есть ли у кого опыт в конструкции подобного программного блока?

Заранее спасибо!

kanadeiar
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 12 фев 2018, 20:17
Имя: Андрей
Страна: Россия
город/регион: Кузнецк
Поблагодарили: 6 раз

Вычисления скорости протока воды на s7-1200

Сообщение kanadeiar »

volodumur_lv писал(а): 16 дек 2017, 22:57 Большая просьба показать, как должна выглядеть программа для реализации данной задачи.
Спасибо.
В моем старом проекте я вот этим методом делал, только этот код должен выполняться в блоке с вызовом по прерыванию каждую 1 секунду. Еще необходимо учитывать какие у Вас требования к точности, какое сглаживание делать конечной величины.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Вычисления скорости протока воды на s7-1200

Сообщение megavolt86 »

kanadeiar, не совсем понятен ваш пример.
1. Где вход у вас, импульсы которого вы считаете? Ведется подсчет импульсов тактового бита 1Гц.
2.зачем ловите фронт этого тактового бита? Счетчик сам отлавливает фронт.
3. Уставка счетчика всегда 0 - выход постоянный всегда.
4. Отсутствует событие для сброса счетчика.
5 для чего конвертируете в real формат значение количества импульсов?
6. Для чего необходимо знать разницу предыдущего и нового значения импульсов?
Больше вопросов ваш пример родил у меня чем ответов😅

Если можно то я бы поправил так:
1. вход с расходомера заводим на вход счетчика.
2. Импульс по отрицательному ИЛИ положительному фронту тактового бита завести на сброс счетчика.
3. Уставку счетчика ставите какую нравится, я бы ставил как можно больше😉
Тем самым счетчик будет вести счет количества импульсов в секунду.
Далее масштабируете так как реализовано в 3 нетворке.
Получаете мгновенный расход в л/ч.
:ext_secret:
Аватара пользователя

hitechnick
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 11 дек 2017, 10:24
Имя: Максим
Страна: РФ
город/регион: Орск

Вычисления скорости протока воды на s7-1200

Сообщение hitechnick »

Для дискретного датчика расхода воды сделал простенький блок с расчетом на час времени, если интересно можете посмотреть, буду рад если внесете свои правки или если кому поможет.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Вычисления скорости протока воды на s7-1200

Сообщение megavolt86 »

hitechnick писал(а): 17 май 2018, 08:27 внесете свои правки
Работать то будет😉
По мне так не оптимизировано по памяти...много ненужных промежуточных переменных. Вместо таймера можно использовать тактовые биты.
Если измерять расход таким методом для регулирования то 5 секунд очень много, а если для того чтобы посмотреть персоналу на циферку - нормально😏
:ext_secret:
Аватара пользователя

hitechnick
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 11 дек 2017, 10:24
Имя: Максим
Страна: РФ
город/регион: Орск

Вычисления скорости протока воды на s7-1200

Сообщение hitechnick »

Насчет оптимизации согласен, еще буду доводить до ума, касательно времени буду обкатывать на месте.

Только вопрос что такое тактовые биты и где можно прочитать информацию?

Спасибо!!!

kanadeiar
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 12 фев 2018, 20:17
Имя: Андрей
Страна: Россия
город/регион: Кузнецк
Поблагодарили: 6 раз

Вычисления скорости протока воды на s7-1200

Сообщение kanadeiar »

megavolt86 писал(а): 16 май 2018, 19:05 kanadeiar, не совсем понятен ваш пример.
Если можно то я бы поправил так:
1. вход с расходомера заводим на вход счетчика.
2. Импульс по отрицательному ИЛИ положительному фронту тактового бита завести на сброс счетчика.
3. Уставку счетчика ставите какую нравится, я бы ставил как можно больше😉
Тем самым счетчик будет вести счет количества импульсов в секунду.
Далее масштабируете так как реализовано в 3 нетворке.
Получаете мгновенный расход в л/ч.
Спасибо за разбор моего примера!
Обожаю рисовать схемки. Собрал по Вашим поправкам. Вход со счетчика ставить вместо переменной "Clock_10Hz". По этой схеме (ниже) работает прекрасно если количество поступающих импульсов в секунду на входе больше чем 3-10. Если же к примеру 1 импульс в минуту или час? Поправьте если ошибся.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Вычисления скорости протока воды на s7-1200

Сообщение megavolt86 »

kanadeiar писал(а): 18 май 2018, 14:17 Вход со счетчика ставить вместо переменной "Clock_10Hz"
Да может работать, но если ставить на сброс счетчика просто %м0.5, тобудет вестись подсчет за 2 секунды. Лучше поставить р-контакт %м0.4(2 Гц)...тогда сброс будет раз в секунду.
kanadeiar писал(а): 18 май 2018, 14:17 если количество поступающих импульсов в секунду на входе больше чем 3-10
Для этого необходимо добавить дополнительное условие и все таки ввести в программу таймер, уставка которого будет меняться от того каксоблюдается это условие...
Был бы софт под рукой, показал бы...😉
:ext_secret:

Yakut
осмотрелся
осмотрелся
Сообщения: 101
Зарегистрирован: 24 апр 2019, 23:07
Имя: Алик
Благодарил (а): 55 раз
Поблагодарили: 4 раза

Вычисления скорости протока воды на s7-1200

Сообщение Yakut »

Доброго времени суток всем.

У меня как раз задача с расходомеров снимать показания 4...20 мА и пересчитывать в л/мин или м3/час.
Понимаю мозгом что нужен генератор импульсов, который будет отсчитывать 1 секунду и при получении значения скажем 20 мА складывать последнее значение с новым.(конвертацию не принимаем пока в расчёт).

В ОВЕНЕ такую задачу решал, там язык программирования FBD на много проще чем тут. (зрительно комфортно воспринимаются блоки и линии). А тут даже генератор импульсов найти не могу, короче полный ламер :oops:
И да, в Овене просто есть блок BLINK, в котором задаём 0,5 секунды импульса и 0,5 секунды паузы, что бы был период в 1 секунду, а тут где это взять???

Если кто-нибудь скинет скрин или если не лень фрагмент програмки, то буду очень благодарен. У меня на руках 1215С DC/DC/RLY.

Yakut
осмотрелся
осмотрелся
Сообщения: 101
Зарегистрирован: 24 апр 2019, 23:07
Имя: Алик
Благодарил (а): 55 раз
Поблагодарили: 4 раза

Вычисления скорости протока воды на s7-1200

Сообщение Yakut »

Короче нашёл где этот часовой бит включается.
Но с ним не всё так просто, он почему-то не работает.
Вставил его в OB1, таблицу Тегов приложил.

Так что нужна помощь самых умных и продвинутых. :affliction:
У вас нет необходимых прав для просмотра вложений в этом сообщении.

POV
авторитет
авторитет
Сообщения: 802
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 110 раз
Поблагодарили: 158 раз

Вычисления скорости протока воды на s7-1200

Сообщение POV »

В отладчике можно увидеть импульс может от полсекунды, я обычно считаю, что менее 2х секунд не факт, что будет отображаться.
Если в свойствах ЦПУ настроено правильно, то работает. Что там у вас за симулятор для mw0 еще заведен. Вы случайно не переписываете MW0 еще где-нибудь?

Yakut
осмотрелся
осмотрелся
Сообщения: 101
Зарегистрирован: 24 апр 2019, 23:07
Имя: Алик
Благодарил (а): 55 раз
Поблагодарили: 4 раза

Вычисления скорости протока воды на s7-1200

Сообщение Yakut »

Благодарю за ответ.
Да, там ошибку нашёл именно в этом MW0.
Бит из нулевого байта был занят, потому и не работало, точнее работало, но очень криво и через раз. Невнимательность.

У меня ситуация вообще патовая. Хотел обмануть судьбу и сделать через генератор импульсов, что бы в 1 секунду происходило суммирование значений. А он в 1 секунду столько на суммировал, что волосы дыбом.

Вот думаю уже может попробовать поставить ТР таймер и поставить сумматор со значениями 1+1, что бы подсчитать сколько за 1 секунду он насчитает :lol: А потом это значение минусовать при подсчёте расхода. Понимаю что через Жэ...но пока не знаю что и придумать. :ges_help:

Был бы счётчик импульсный, а не 4..20 мА, то вообще улыбался бы, а тут :affliction:
У вас нет необходимых прав для просмотра вложений в этом сообщении.

POV
авторитет
авторитет
Сообщения: 802
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 110 раз
Поблагодарили: 158 раз

Вычисления скорости протока воды на s7-1200

Сообщение POV »

Нутро не обмануло, фронт от 1гц сигнала надо брать, а не сам сигнал.

Отправлено спустя 2 минуты 32 секунды:
Ну так вам всего лишь нужен интеграл от мгновенного расхода. Встроенной функции я не помню, но реализаций туча. Да и самому написать не проблема. Или поищите готовый код в интернете.

Yakut
осмотрелся
осмотрелся
Сообщения: 101
Зарегистрирован: 24 апр 2019, 23:07
Имя: Алик
Благодарил (а): 55 раз
Поблагодарили: 4 раза

Вычисления скорости протока воды на s7-1200

Сообщение Yakut »

POV писал(а): 02 май 2019, 22:32 Нутро не обмануло, фронт от 1гц сигнала надо брать, а не сам сигнал.
В STEP 7 я видел брали следующий меркер за "clock memory bits", т.е. у меня в примере все "клоки" в MW5, а мне нужно тогда брать MW6. В TIA Portal аналогично?

Про интеграл не очень понял. Вообще как я планирую - переводить реалы в интеджеры и наеборот ( с учётом констант расходомеров), а потом последнее значение расходомера суммировать с новым. Или я что-то не верно мыслю?

POV
авторитет
авторитет
Сообщения: 802
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 110 раз
Поблагодарили: 158 раз

Вычисления скорости протока воды на s7-1200

Сообщение POV »

Фронт это инструкция -I P I- или -I N I- для заднего фронта на LAD. А уж какие меркеры использовать и их распределение - ваше решение. И среда программирования значения не имеет.
Расход за время, это интеграл (сумма) мгновенных расходов. У вас сигнал аналоговый, я так понял, его интеграл и будет расходом за час, сутки и т.д. А уж в каких числах считать - вам решать.

Yakut
осмотрелся
осмотрелся
Сообщения: 101
Зарегистрирован: 24 апр 2019, 23:07
Имя: Алик
Благодарил (а): 55 раз
Поблагодарили: 4 раза

Вычисления скорости протока воды на s7-1200

Сообщение Yakut »

Благодарю за ответ.
В мануале нашёл такую функцию, а в самом TIA Portale найти не могу. Может кто подскажет где она? :ges_help:

Отправлено спустя 41 минуту 51 секунду:
А вот и не сработало по переднему фронту.
За пару десятков щелчков с 1 единицей улетело аж в минус. :affliction:

Отправлено спустя 1 минуту 19 секунд:
Генератор стоит на 1 секунду, сравнение по переднему фронту с меркером "всегда 0"

Отправлено спустя 1 час 38 минут 48 секунд:
Так, ну вроде с импульсами победил, через функцию P_trig.

А с "интрегалами" пока вопрос не закрыт))
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Вычисления скорости протока воды на s7-1200

Сообщение megavolt86 »

Yakut писал(а): 03 май 2019, 10:36 вроде с импульсами победил
ничего сложного было. В lad тоже нормально получается, просто на вашем приложенном скриншоте вместо бита памяти используется область ди.
Только для чего вам это не совсем пойму... :ges_hmm:
Yakut писал(а): 28 апр 2019, 14:32 задача с расходомеров снимать показания 4...20 мА и пересчитывать в л/мин или м3/час.
обычно расходомер и выводит показания расхода в стандартных единицах, вам просто масштабировать полученный код ацп в значение расхода нужно.
Если вам необходим счетчик то полученное значение делите на 3600 и каждую секунду суммируете.

P. S. : на некоректно заданный вопрос не ждите правильного ответа.
:ext_secret:

Yakut
осмотрелся
осмотрелся
Сообщения: 101
Зарегистрирован: 24 апр 2019, 23:07
Имя: Алик
Благодарил (а): 55 раз
Поблагодарили: 4 раза

Вычисления скорости протока воды на s7-1200

Сообщение Yakut »

megavolt86 писал(а): 03 май 2019, 17:01 ничего сложного было. В lad тоже нормально получается, просто на вашем приложенном скриншоте вместо бита памяти используется область ди.
Только для чего вам это не совсем пойму... :ges_hmm:
Да это просто для удобства понимания 1 раз вообще "смотрю" на эти контроллеры.
Сделал физический вход, что бы на нервах не щёлкало на столе. А выход что бы было понятно - работает или нет. Кстати, столкнулся ещё с одной особенностью, генератор не работал после включения в контроллере. нужно обязательно прогрузить в контроллер изменения, а тоже вначале понять не мог, почему у других работает, а у меня нет.
megavolt86 писал(а): 03 май 2019, 17:01 вам просто масштабировать полученный код ацп в значение расхода нужно.
Если вам необходим счетчик то полученное значение делите на 3600 и каждую секунду суммируете.
Правильно понял вначале NORMAL_X там от 0 до 27648 из INT в REAL, а потом SCAL_X указываю диапазон измерений конкретного расходомера, для примера 0 литров мин и 50 литров макс?

Вот только не понял зачем делить на 3600 - это потому что расходомер выдаёт показания в часах и нам нужно перевести это значение в секунды?
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Вычисления скорости протока воды на s7-1200

Сообщение megavolt86 »

Yakut писал(а): 04 май 2019, 07:42 вначале NORMAL_X там от 0 до 27648 из INT в REAL, а потом SCAL_X указываю диапазон измерений конкретного расходомера
можете и так для начала. Я этими блоками не пользуюсь, есть свои рукописные с большим функционалом.
Можете сами написать FC с функцией масштабирования на языке SCL:

Код: Выделить всё

(*это показал как обьявить переменные
Var input
Input, min_adc, max_adc:int;
Max_scale, min_scale:real;
End_var;
Var output
Out:real;
End_var;*) 
Out:=(int_to_real(input-min_adc) /int_to_real(max_adc-min_adc) )*(max_scale-min_scale)-min_scale;
Вместо min_adc и max_adc можете оставить константы 0 и 27648.
Yakut писал(а): 04 май 2019, 07:42 расходомер выдаёт показания в часах
Да получаем мгновенное значение расхода за секунду и его же прибавляем к значению счетчика.

P. S. : еще вы не сказали расходомер имеет квадратичную шкалу или линейную, советую этот момент уточнить, чтобы потом не было сюрпризов.
Ответить

Вернуться в «ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)»