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

ПЛК / Децентрализованная периферия

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

Сообщение Volodymyr » 16 дек 2017, 21:00

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

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

Сообщение mr_Frodo » 16 дек 2017, 21:37

Вам нужна скорость воды? Каков смысл этого? Чтобы вычислить что? Количество её, мгновенный расход? непонятно...
Скорость = количество делённое на площадь сечения. Если я не верно истолковал вами сказанное, то выразитесь более развернуто. Для себя же сделайте простой арифметический расклад задачи подсчёта того, что вам нужно. Исходя из этого возникшая задача перекладывается в код для Степа.
Вот моя подпись...
Аватара пользователя
mr_Frodo
Специалист
 
Сообщения: 451
Зарегистрирован: 22 июл 2016, 20:38

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

Сообщение Volodymyr » 16 дек 2017, 22:01

Мне нужно вычислить мгновенный расход воды при дозировке.
Арифметика такова: условно за определенный период времени (1сек.) дозируется 0,005 литром воды. Как определять расход воды в потоке?
Аватара пользователя
Volodymyr
Дилетант
 
Сообщения: 8
Зарегистрирован: 11 дек 2017, 23:59

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

Сообщение Михайло » 18 дек 2017, 16:41

Извините, случайно вышла поломка сайта. Пару последних сообщений потерялось.: одно от mr_Frodo, другое от Volodymyr
Михайло
Администратор
 
Сообщения: 3802
Зарегистрирован: 19 сен 2012, 19:16

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

Сообщение mr_Frodo » 18 дек 2017, 16:47

Бывает сайты теряются )))
В общем у меня было простяцкое предложение зная единицу деления 1-го импульса сосчитать их за секунду и умножить на единицу деления. Всё, имеем количество жидкости в секунду - мгновенный расход. Хочешь - используй так, хочешь - плюсуй нарастающим итогом....
Вот моя подпись...
Аватара пользователя
mr_Frodo
Специалист
 
Сообщения: 451
Зарегистрирован: 22 июл 2016, 20:38

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

Сообщение Volodymyr » 19 дек 2017, 00:37

Это вариант, что ты предлагаешь я сделал сам, но не знаю как реализовать код программы, а именно чтобы найденное значение расхода за секунду не начиналось с нуля, а увеличивалось или уменьшалось в зависимости от скорости протока воды. То есть я не знаю как хранить количество импульсов счетчика, которые отчислены за 1 сек .. Мне приходится делать обнуление счетчика и вычисления скорости начинается с нуля.
У нас смонтирована Словацкая дозировочная станция, могу снять видео и отправить в лс, на котором будет видно как меняется скорость при дозировке воды.
Аватара пользователя
Volodymyr
Дилетант
 
Сообщения: 8
Зарегистрирован: 11 дек 2017, 23:59

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

Сообщение Михайло » 19 дек 2017, 00:40

Просто взял с какого-то блога:
Изображение

Надо выставить Type of counting = Frequency и тогда частота импульсов будет прямо в ID1000.
Михайло
Администратор
 
Сообщения: 3802
Зарегистрирован: 19 сен 2012, 19:16

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

Сообщение Volodymyr » 19 дек 2017, 00:49

Скажите пожалуйста в режиме Frequency я смогу считать параллельно импульсы, необходимые для дозирования заданных литров воды?
Аватара пользователя
Volodymyr
Дилетант
 
Сообщения: 8
Зарегистрирован: 11 дек 2017, 23:59

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

Сообщение Михайло » 19 дек 2017, 01:48

А ну так сразу бы и сказали. Если включить Frequency, то тогда трудно будет получить Count. К сожалению Тиа Портал не позволяет один вход использовать на два HSC. Только если физически сигнал расходомера не подключить на два разных входа.
Я бы рассмотрел такой вариант: HSC настроить на Count, а Frequency вычислять самостоятельно. Что собственно Вы и пытаетесь сделать. Ваша ошибка - Вы пытаетесь циклично нарастающий (пилообразный) сигнал представить как расход. Вам нужно организовать таймер, который будет циклически выдавать короткие импульсы на время одного скана/прогона программы. Выход этого таймера сбрасывает тот самый пилообразный сигнал, но перед этим запоминает последнее значение "пилы" - это и будет расход, изменяющийся с определенной периодичностью, задаваемой таймером.

Это основа программы. Тут есть ещë нюансы, которые выплывают в случае, если Вы регулярно сбрасываете HSC-Count-счëтчик. Тогда Frequency должен адаптироваться под эти сбросы, ведь "пила" в эти моменты не должна сбрасываться, а должна продолжать нарастать, не глядя на Count.
Михайло
Администратор
 
Сообщения: 3802
Зарегистрирован: 19 сен 2012, 19:16

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

Сообщение Автоматизатор » 19 дек 2017, 05:44

Я бы, скорее всего, стал бы делать программу на основе прерываний по времени. Вызывается прерывание - в нем можно вычислить все, что надо: разницу между текущим значением счетчика и предыдущим, суммировать значение счетчика, обнулять счетчик.. и т.п.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 953
Зарегистрирован: 09 окт 2012, 05:18

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

Сообщение mr_Frodo » 19 дек 2017, 06:59

А разве прерывание цикла не будет добавлять время на исполнение программы?
Вот моя подпись...
Аватара пользователя
mr_Frodo
Специалист
 
Сообщения: 451
Зарегистрирован: 22 июл 2016, 20:38

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

Сообщение Автоматизатор » 19 дек 2017, 10:26

Длительность работы подпрограммы, вызываемой в прерывании небольшая.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 953
Зарегистрирован: 09 окт 2012, 05:18

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

Сообщение Evgeny07 » 11 сен 2018, 10:23

Здравствуйте!

У меня вопрос по HSC в S7 1200! Новую тему создавать не стал, спрошу здесь.

Есть 2 задачи:

1. Вычислять скорость ленты которая проходит через цилиндрические волки
2. Вычислять длину этой же ленты, при поступлении сигнала на дискретный вход

Для это на волке будет установлен энкодер 6FX2001-4QB00 (10-30v, 1000 имульсов на оборот)

Для того, чтобы закрыть первую задачу мне достаточно настроить HSC на Frequency (Type of counting = Frequency) и в ID 1000 я получу частоту, я все правильно понял?
"Нагуглил" пример: https://support.industry.siemens.com/cs/document/109742346/s7-1200%3A-application-examples-for-high-speed-counters-(hsc)?dti=0&lc=en-WW
Почему то Frequency в этом примере вообще не используется, HSC настроен на Period, вызывается инструкция CTRL_HSC_EX, и потом в функциональном блоке "CalsSpeed" происходит вычисление скорости. Почему сделано так сложно, если можно получить частоту настроив HSC на Frequency?

Для того, чтобы закрыть вторую задачу мне нужно настроить HSC на count, но тогда придется вычислять частоту самостоятельно. Как это лучше сделать?
Evgeny07
Профан
 
Сообщения: 3
Зарегистрирован: 02 ноя 2017, 20:01

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

Сообщение Михайло » 11 сен 2018, 16:32

Да, две высокоскоростные задачи счётчик не умеет выполнять, но можно задействовать два счётчика HSC, распараллелив сигнал энкодера электрически. Это как вариант.

Можно также самостоятельно сделать программное вычисление Frequency по Count. Создаёте тег Count0 типа DINT, в котором будете хранить значение счётчика ID1000 за предыдущий период. С помощью таймера TON организуете периодические кратковременные импульсы каждую 1 сек. Выход таймера будет активировать следующий алгоритм:
1. Вычислить разницу (ID1000 - Count)/1 сек = Frequency.
2. Сохранить текущее значение ID1000 в Count0.

Всё.

P.S. Что касается HSC_Period, то это высокоточный тахометрический алгоритм вычисления скорости (Frequency очень груб по сравнению с этим методом). HSC_Period совсем недавно появился у Сименса как дополнительный вариант и однажды сильно помог мне решить одну задачу.

Принцип работы не сильно отличается, Frequency и Period вычисляют значение почти по одной той же формуле:

FREQ = COUNT/TIME

В случае Frequency: TIME = const, COUNT = var (целое число). Измеряется число импульсов за определённый промежуток времени (10 сек, 1 сек, 100 мсек). Точность вычисления FREQ зависит от квантованности COUNT.
В случае Period: COUNT = const = 1, TIME = var. То есть измеряется период времени между последовательными импульсами. Точность вычисления FREQ зависит от точности измерения TIME и не зависит от квантования.
Михайло
Администратор
 
Сообщения: 3802
Зарегистрирован: 19 сен 2012, 19:16


Вернуться в LOGO! / S7-200 / S7-1200 / S7-300/ S7-400 / S7-1500 / ET200

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1