- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Замер времени между импульсами
Модератор: Глоб.модераторы
-
- администратор
- Сообщения: 4909
- Зарегистрирован: 25 июл 2008, 07:12
- Имя: Диев Александр Васильевич
- Страна: Россия
- город/регион: г. Сегежа, Карелия
- Благодарил (а): 236 раз
- Поблагодарили: 425 раз
Замер времени между импульсами
Приветствую, коллеги.
Имеем: контролер S7-1200. Конкретную модель и версию софта посмотрю позже, если это критично.
Планируем дополнительно подключить 2 дискретных индукционных датчика (приближение металла). С этих датчиков будут приходить импульсы с периодом 500-1000 мс и длительностью 100-200 мс. Задача - определить разницу между появлением импульсов с первого и второго датчиков с точностью порядка 2-3 мс. Такое в принципе на 1200 возможно? Если, к примеру, запрограммировать OB40 и брать из него время возникновения прерывания (там ведь до 1 мс точность?) - получится?
Физический смысл этой затеи: есть некоторое количество стальных балок, перетаскиваемых за оба конца. Хочется замерить перекос этой конструкции, если он возникнет.
Имеем: контролер S7-1200. Конкретную модель и версию софта посмотрю позже, если это критично.
Планируем дополнительно подключить 2 дискретных индукционных датчика (приближение металла). С этих датчиков будут приходить импульсы с периодом 500-1000 мс и длительностью 100-200 мс. Задача - определить разницу между появлением импульсов с первого и второго датчиков с точностью порядка 2-3 мс. Такое в принципе на 1200 возможно? Если, к примеру, запрограммировать OB40 и брать из него время возникновения прерывания (там ведь до 1 мс точность?) - получится?
Физический смысл этой затеи: есть некоторое количество стальных балок, перетаскиваемых за оба конца. Хочется замерить перекос этой конструкции, если он возникнет.
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
-
- освоился
- Сообщения: 233
- Зарегистрирован: 11 апр 2013, 13:22
- Имя: Вишневский Денис
- Благодарил (а): 11 раз
- Поблагодарили: 13 раз
Замер времени между импульсами
имхо - через встроенные счетные входы, по первому сигналу включать счетчик, по второму выключать, у них заявленное
разрешение 100кГц
разрешение 100кГц
"- Знаешь, дружище, в чем истинный смысл второго закона термодинамики?
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
-
- эксперт
- Сообщения: 1172
- Зарегистрирован: 14 ноя 2013, 20:35
- Имя: Анатолий Сергеевич
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
Замер времени между импульсами
В 1200 циклические прерывания с ов30 сейчас начинаются и время в них выставляется какое необходимо.
Если суть затеи следить чтобы за 2-3 мс сработали оба датчика то все получится.
А вот воздействие какое должно быть при такой скорости?
Если суть затеи следить чтобы за 2-3 мс сработали оба датчика то все получится.
А вот воздействие какое должно быть при такой скорости?
-
- освоился
- Сообщения: 233
- Зарегистрирован: 11 апр 2013, 13:22
- Имя: Вишневский Денис
- Благодарил (а): 11 раз
- Поблагодарили: 13 раз
Замер времени между импульсами
то есть весь плк будет работать на один цикл в 1мс? причем в сам цикл тут уже ничего не напихаешь,megavolt86 писал(а): ↑30 дек 2019, 04:49 В 1200 циклические прерывания с ов30 сейчас начинаются и время в них выставляется какое необходимо.
Если суть затеи следить чтобы за 2-3 мс сработали оба датчика то все получится.
А вот воздействие какое должно быть при такой скорости?
иначе время исполнения цикла превысит 1 мс
"- Знаешь, дружище, в чем истинный смысл второго закона термодинамики?
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Замер времени между импульсами
С версии 4.1 или 4.2 появился новый режим работы высокоскоростных счетчиков Period, который с точностью наносекунд измеряет период между импульсами.
-
- почётный участник форума
- Сообщения: 1073
- Зарегистрирован: 29 апр 2014, 09:57
- Имя: Рыбкин Владимир Геннадьевич
- Страна: Россия
- город/регион: Тверь
- Благодарил (а): 73 раза
- Поблагодарили: 147 раз
Замер времени между импульсами
Точность определения задержки прихода фронта второго импульса относительно первого - 2 времени цикла работы программы контроллера + 2 нестабильности задержки времени между приходом импульса и его фиксацией программой. В сумме при цикличности работы контроллера 1мсек может набраться до 4 мсек и более. Если в коллективе есть какой-нибудь старый рационализатор, проще всего его руками собрать на коленках генератор импульсов например 10 кГц, который включается на время определения задержки и считать эти импульсы на высокочастотном счётном входе контроллера.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Замер времени между импульсами
Это если использовать вызов API из тела цикла программы. Разве после настройки OB40 обработка входа идёт не по прерыванию?rwg писал(а): ↑30 дек 2019, 07:05 Точность определения задержки прихода фронта второго импульса относительно первого - 2 времени цикла работы программы контроллера + 2 нестабильности задержки времени между приходом импульса и его фиксацией программой. В сумме при цикличности работы контроллера 1мсек может набраться до 4 мсек и более.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Замер времени между импульсами
HSC_Period structure element definitions
● ElapsedTime returns the elapsed time in nanoseconds between the last pulse in the current period measurement interval and the last pulse in the previous period measurement interval. If EdgeCount = 0, then the ElapsedTime is the cumulative time since the last pulse. ElapsedTime has a range from 0 to 4,294,967,280 nanoseconds (0x0000 0000 to 0xFFFF FFF0). Period overflow is indicated by the return value 4,294,96,295 (0xFFFF FFFF. The values from 0xFFFF FFF1 to 0xFFFF FFFE are reserved. If ElapsedTime is either 0 (no input pulses received) or 0xFFFF FFFF (Period overflow), then EdgeCount is not valid.
● EdgeCount returns the number of input pulses of the most recent measurement interval. The EdgeCount must be "1" or more in order to be able to calculate the period between pulses. The period is calculated using the forumula: Period = ElapsedTime/EdgeCount.
-
- администратор
- Сообщения: 4909
- Зарегистрирован: 25 июл 2008, 07:12
- Имя: Диев Александр Васильевич
- Страна: Россия
- город/регион: г. Сегежа, Карелия
- Благодарил (а): 236 раз
- Поблагодарили: 425 раз
Замер времени между импульсами
Уточняю: контроллер CPU 1214FC DC/DC/DC, firmware V4.2, 6ES7 214-1AF40-0XB0. Проект под TIA 15.1. Есть запас по дискретным входам на самом контроллере. На дополнительных модулях запаса нет, но при необходимости можно докупить ещё модуль.
Отправлено спустя 15 минут 44 секунды:
Если время между импульсами превысит допустимый предел, значит пошёл перекос и надо тормозить установку.
Отправлено спустя 15 минут 44 секунды:
А этот счётчик можно запускать одним сигналом, а останавливать другим?
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
-
- не первый раз у нас
- Сообщения: 372
- Зарегистрирован: 12 дек 2018, 14:47
- Имя: Влад
- Благодарил (а): 1 раз
- Поблагодарили: 50 раз
Замер времени между импульсами
Я правильно понимаю,что датчики двигаются вместе с балками? Если так, то может лучше использовать датчики которые ловят горизонталь и вертикаль и подавать на аналоговый сигнал или настроить дискретный.
-
- администратор
- Сообщения: 4909
- Зарегистрирован: 25 июл 2008, 07:12
- Имя: Диев Александр Васильевич
- Страна: Россия
- город/регион: г. Сегежа, Карелия
- Благодарил (а): 236 раз
- Поблагодарили: 425 раз
Замер времени между импульсами
Нет. Датчики предполагается ставить на неподвижной конструкции, реагировать они будут на проход балок над ними.
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Замер времени между импульсами
Не могу сообразить, зачем вообще останавливать?
Это высокоскоростной аппаратный счетчик, работает вне ЦПУ. ЦПУ работает медленнее и лишь получает готовый результат работы (в данном случае - период между импульсами) и, да, управляет счетчиком, но в своем ритме (в цикле ЦПУ). Вы должны использовать для работы счетчика свободный вход на самом ЦПУ.
Отправлено спустя 3 минуты 21 секунду:
Но вообще обольщаться не стоит. Да, результат с дискретой 1 наносекунда, но по факту от счетчика прилетают значения, кратные то ли сотням, то ли тысячам наносекунд. Ну по-крайней мере микросекунды он ловит и для организации тахометра это весьма неплохая точность.
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 36 раз
Замер времени между импульсами
Какова скорость движения балок? Датчики индуктивные? Оптические? Какова неровность поверхности или кромки балок?
Может излишне заморачиваетесь точностью?
Может излишне заморачиваетесь точностью?
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Замер времени между импульсами
Я бы взял индуктивники с выходом ИЛИ. НО-контакты подключил параллельно, а НЗ-контакты отдельно. Итого три входа ЦПУ: первый для измерения перекоса, другие два для ловли событий (прерывания).
-
- администратор
- Сообщения: 4909
- Зарегистрирован: 25 июл 2008, 07:12
- Имя: Диев Александр Васильевич
- Страна: Россия
- город/регион: г. Сегежа, Карелия
- Благодарил (а): 236 раз
- Поблагодарили: 425 раз
Замер времени между импульсами
Я имею в виду - по одному сигналу запускать счёт, по другому - остановить. То есть: фронт первого сигнала - начало отсчёта, фронт второго - конец. Хотя, вполне возможно, отключать (в смысле - выводить из работы) счётчик тоже иногда имеет смысл. Например, когда привод отключен, нет смысла измерять перекос.
Этого более, чем достаточно. Я рассчитываю на погрешность порядка 1 мс, более точно вряд ли получится даже по механике: скорость движения балок порядка 1 м/с, разница менее 1 мм (то есть по времени - 1 мс) может быть вызвана не только перекосом, но и точностью установки, и скорее всего допустима (это я у механиков уточню, конечно).
Вот тут уже я не понял, от слова совсем :). Два датчика, на которых НО контакты подключены параллельно. По сработке любого из них - контакт замкнут. То есть замыкается, когда первый по ходу конец балки подходит к своему датчику, размыкается, когда второй уходит от своего. Какой смысл в этом сигнале?
И, кстати: эти самые счётчики монополизируют используемые входные сигналы или нет? То есть (тут у меня уже фантазия начинает играть), если я эти два датчика использую в одном счётчике для измерения перекоса, а во втором один из них - для измерения времени между соседними балками (т.е. скорости движения) - такое будет работать?
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
-
- эксперт
- Сообщения: 1172
- Зарегистрирован: 14 ноя 2013, 20:35
- Имя: Анатолий Сергеевич
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
Замер времени между импульсами
дык у плк ос не реального времени же... Цикл основной программы будет прерываться на время выполнения выполнения циклической программы.
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Замер времени между импульсами
Да, согласен. Но учтите, что функция HSC_Period работает только с одним входом, как ни крути. Там есть новый функционал у счетчиков HSC - Gate, который вроде как раз позволяет быстро отключать счет, но я им не пользовался, не знаю.
К сожалению, монополизируют, да. Придется распараллеливать сигнал, если что, но быстрых входов в ЦПУ, по-моему максимум 6.
-
- освоился
- Сообщения: 233
- Зарегистрирован: 11 апр 2013, 13:22
- Имя: Вишневский Денис
- Благодарил (а): 11 раз
- Поблагодарили: 13 раз
Замер времени между импульсами
"- Знаешь, дружище, в чем истинный смысл второго закона термодинамики?
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
-
- здесь недавно
- Сообщения: 3
- Зарегистрирован: 23 янв 2020, 12:11
- Имя: Дмитрий
Замер времени между импульсами
Добрый день. По рукой ПЛЦ нет опробовать... Настроить на ПЛЦ дискретный выход в режим импульсного выхода, там до 100 кГц. Его же подать на дискретный скоростной вход а сигналы датчиков на входа ГЕЙТ. Разница в показаниях HSC и будет Ваше время.
-
- администратор
- Сообщения: 4909
- Зарегистрирован: 25 июл 2008, 07:12
- Имя: Диев Александр Васильевич
- Страна: Россия
- город/регион: г. Сегежа, Карелия
- Благодарил (а): 236 раз
- Поблагодарили: 425 раз
Замер времени между импульсами
Кстати, вариант интересный. В данном конкретном проекте проблема была бы в том, что скоростные входные каналы (первые 6, которые до 100 кГц) уже все заняты, свободны остальные, а с ними такая скорость не получится. Вторая проблема - из-за того, что счётчики монополизируют используемые каналы, каждый из них пришлось бы сажать на два канала - ведь перекос может быть как в одну сторону, так и в другую, и тогда можно поймать одним датчиком сигнал одной балки, а вторым - уже следующей. Можно, конечно, вычесть из времени между проходами соседних балок, но в таком случае пришлось бы замерять время между проходами соседних балок.
Но в любом случае - вся затея отменилась: хотели измерять перекос из предположения, что он возникает постепенно, до каких-то значений допустим, его можно измерить на нескольких балках подряд. Оказалось (записали видео и анализировали), что всё не так: перекос начинается внезапно и измерять его в каком-то конкретном месте нет смысла.
Но в любом случае - вся затея отменилась: хотели измерять перекос из предположения, что он возникает постепенно, до каких-то значений допустим, его можно измерить на нескольких балках подряд. Оказалось (записали видео и анализировали), что всё не так: перекос начинается внезапно и измерять его в каком-то конкретном месте нет смысла.
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.