• обязательно заполнить свой профиль на русском языке кириллицей
  • не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему
  • дублирование сообщений приравнивается к спаму
  • за поиск и предложение пиратского ПО - бан без предупреждения
  • рекламу и частные объявления мы не размещаем ни на каких условиях

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

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

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

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

Сообщение volodumur_lv » 16 дек 2017, 20:01

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


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

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

Сообщение Ryzhij » 16 дек 2017, 20:51

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

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

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

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

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

Сообщение volodumur_lv » 16 дек 2017, 21:31

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

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

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

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

Сообщение megavolt86 » 16 дек 2017, 22:53

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

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

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

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

Сообщение volodumur_lv » 16 дек 2017, 22:57

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

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

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

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

Сообщение megavolt86 » 17 дек 2017, 05:27

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

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

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

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

Сообщение hitechnick » 15 май 2018, 14:55

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

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

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


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

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

Сообщение kanadeiar » 16 май 2018, 13:45

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

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

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

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

Сообщение megavolt86 » 16 май 2018, 19:05

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 » 17 май 2018, 08:27

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

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

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

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

Сообщение megavolt86 » 17 май 2018, 10:18

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

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

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

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

Сообщение hitechnick » 17 май 2018, 10:33

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

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

Спасибо!!!


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

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

Сообщение kanadeiar » 18 май 2018, 14:17

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

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

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

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

Сообщение megavolt86 » 18 май 2018, 16:44

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


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

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

Сообщение Yakut » 28 апр 2019, 14:32

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

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

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

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


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

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

Сообщение Yakut » 02 май 2019, 14:54

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

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


POV
осмотрелся
осмотрелся
Сообщения: 157
Зарегистрирован: 12 авг 2008, 10:05
Имя: Патрушев Олег Валерьевич
Благодарил (а): 8 раз
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение POV » 02 май 2019, 17:48

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


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

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

Сообщение Yakut » 02 май 2019, 21:05

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

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

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

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


POV
осмотрелся
осмотрелся
Сообщения: 157
Зарегистрирован: 12 авг 2008, 10:05
Имя: Патрушев Олег Валерьевич
Благодарил (а): 8 раз
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение POV » 02 май 2019, 22:30

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

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


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

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

Сообщение Yakut » 02 май 2019, 22:52

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

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


POV
осмотрелся
осмотрелся
Сообщения: 157
Зарегистрирован: 12 авг 2008, 10:05
Имя: Патрушев Олег Валерьевич
Благодарил (а): 8 раз
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение POV » 02 май 2019, 23:22

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


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

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

Сообщение Yakut » 03 май 2019, 08:14

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

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

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

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

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

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

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

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

Сообщение megavolt86 » 03 май 2019, 17:01

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

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


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

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

Сообщение Yakut » 04 май 2019, 07:42

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
шаман
шаман
Сообщения: 948
Зарегистрирован: 14 ноя 2013, 19:35
Имя: Анатолий Сергеевич
Откуда: Башкортостан
Благодарил (а): 8 раз
Поблагодарили: 36 раз

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

Сообщение megavolt86 » 04 май 2019, 18:11

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)»