Tools


«Сименс» в России

«Сименс» в России

Помогите посчитать 23 импульса в секунду

Промышленные Логические Контроллеры SIMATIC S7-300/-400, SIMATIC S7-1500, C7, WinAC, S5, станции распределенной периферии ET 200

Модераторы: gulenok_andrey, Кухаренко Сергей, pavel_puchkov

Fed
Сообщения: 24
Зарегистрирован: 31 июл 2018, 10:36

Сообщение Fed » 02 мар 2020, 11:51

Добрый день!

Имеется мигающий бит (в производстве это будет дискретный вход I3.3 на контроллере S7-1511) порядка 23 раз в секунду.
По характеристикам дискретный вход воспринимает частоту до 1кГц, нас вполне устраивает.

Но проблема посчитать эти импульсы в программе. Видимо из-за цикличности программы вместо 23 раз в секунду получается программе посчитать около 20 импульсов. :(
Чтобы просиммулировать, в качестве мигающего бита был написан нетворк, в котором участвуют два таймера (один за ноль: T#22ms, а другой за единицу: T#22ms)
Изображение

Изображение

Программа была написана в OB30 и в свойствах выставил параметр Cyclic time: 500
Изображение


Подскажите как посчитать более 20 импульсов в секунду?
Спасибо.

POV
Сообщения: 84
Зарегистрирован: 16 апр 2018, 16:37
Откуда: Нижний Новгород

Сообщение POV » 02 мар 2020, 13:08

А вы количество импульсов, период, частоту не путаете в одну кучу?
22мс+23мс = период 50 мс, Это и будет 20 импульсов в с секунду? То есть частота 50 Гц?
Что тогда не так?
Когда перейдете к реальному входу, учтите, что обращение пойдет к таблице, а не реальному входу, и ее надо как то обновить со скоростью в 0,5 мс. Сама по себе она обновляется с указанной в настройках частотой.

Fed
Сообщения: 24
Зарегистрирован: 31 июл 2018, 10:36

Сообщение Fed » 02 мар 2020, 14:49

POV писал(а):
02 мар 2020, 13:08
А вы количество импульсов, период, частоту не путаете в одну кучу?
22мс+23мс = период 50 мс, Это и будет 20 импульсов в с секунду? То есть частота 50 Гц?
Что тогда не так?
Когда перейдете к реальному входу, учтите, что обращение пойдет к таблице, а не реальному входу, и ее надо как то обновить со скоростью в 0,5 мс. Сама по себе она обновляется с указанной в настройках частотой.
Читайте внимательно чтобы не быть глупым.
Я же написал, что мне нужно 23раза в секунду, значит 23Гц. Для этого я и сделал, чтобы импульс был раз в 22ms.

В минуту должно придти 1364 импульса, а приходит 1200. Следовательно часть импульсов программа не успевает считывать. Поэтому и создал данную тему, чтобы разобраться и сделать так, чтобы программа успевала обрабатывать все импульсы.

POV
Сообщения: 84
Зарегистрирован: 16 апр 2018, 16:37
Откуда: Нижний Новгород

Сообщение POV » 02 мар 2020, 15:19

Fed писал(а):
02 мар 2020, 14:49
Читайте внимательно чтобы не быть глупым.
ОК, я то прочитал и скриншоты посмотрел. Ухожу, пока не передумаете.

Негатив
Сообщения: 70
Зарегистрирован: 30 май 2019, 08:25

Сообщение Негатив » 02 мар 2020, 15:25

Fed писал(а):
02 мар 2020, 14:49
разобраться и сделать так, чтобы программа успевала обрабатывать все импульсы.
Теорема Котельникова в помощь. Умный дальше разберётся сам. Можете попробовать нарисовать график уровня сигнала от времени.

Fed
Сообщения: 24
Зарегистрирован: 31 июл 2018, 10:36

Сообщение Fed » 02 мар 2020, 16:10

Негатив писал(а):
02 мар 2020, 15:25
Fed писал(а):
02 мар 2020, 14:49
разобраться и сделать так, чтобы программа успевала обрабатывать все импульсы.
Теорема Котельникова в помощь. Умный дальше разберётся сам. Можете попробовать нарисовать график уровня сигнала от времени.
POV обвинил меня, что я напутал все в кучу, хотя сам не разобрался и написал про какие то 50Гц
Вы тоже втираете какую-то теорему. Это никак не относится к делу. Умничаете только, по факту ничего полезного не говорите.

Max
Сообщения: 26
Зарегистрирован: 30 сен 2018, 15:18

Сообщение Max » 03 мар 2020, 21:05

Попробуйте в качестве симуляции взять другой сигнал с какого-нибудь генератора. Возможно у Вас все работает.
Подозреваю что Ваш генератор не лучшее решение т.к. при отработке времени первого таймера он подает команду второму, но второй запустится лишь во время опроса в цикле. Что прибавит к его времени часть времени цикла, то-же и со вторым таймером. В итоге получится что этот генератор и выдает около 20 импульсов в секунду вместо 23.

Potapov
Сообщения: 435
Зарегистрирован: 16 апр 2018, 16:32

Сообщение Potapov » 04 мар 2020, 20:10

использую счётчики для подсчёта событий
Изображение

largin3
Сообщения: 7
Зарегистрирован: 01 авг 2018, 08:41

Сообщение largin3 » 20 окт 2020, 13:10

а что нельзя это в OB1 вызывать? он ведь намного чаще выполняется, чем OB30 намного меньше вероятность пропустить импульс

Негатив
Сообщения: 70
Зарегистрирован: 30 май 2019, 08:25

Сообщение Негатив » 20 окт 2020, 16:09

largin3 писал(а):
20 окт 2020, 13:10
а что нельзя это в OB1 вызывать? он ведь намного чаще выполняется, чем OB30 намного меньше вероятность пропустить импульс
Или пропустить. Или посчитать два раза. Как повезёт. Вот только для производства такое неприемлемо.

cron