
Есть два события, по времени отделенных друг от друга максимум на 20 мс, можно ли в этом интервале точно измерить время между событиями при помощи 1200 контролера? Хотя бы 1000-1200 отсчетов.
Если можно, то в какую сторону копать ?
manual ru http://support.automation.siemens.com/W ... 32465/0/rutech.data wrote:for counter/technological functions
Parameterizable Single phase : 3 at 100 kHz, differential: 3 at 80 kHz
их-то и юзайpage 347 wrote:Скоростные счетчики всего 4
Однофазные: 3 при тактовой частоте 100 кГц и 1 при тактовой частоте 30 кГц
Квадратурные: 3 при тактовой частоте 80 кГц и 1 при тактовой частоте 20 кГц
Спасибо! Буду пробовать.sania wrote:а причём генератор?
у тебя есть датчик,который регистрирует событие раз в 20 мс
вот его выход заводится на быстрый вход ПЛК,поэтому событию вызывается ОВ в нём есть время вызова(время события),от него отнимаешь время предыдущего события-вот тебе и интервал между событиями
Нет. Событий в период 20м нету. Вернее может быть 1-3 штуки. Тут два диска стоят на двух связанных пружиной осях. Надо мерить угол сдвига между осями. Оси вращаются с частотой 500-600 об./мин. Максимальный угол сдвига 50 градусов. Идея - просверлить по одной дырке в диске и мерить время между срабатываниями оптических датчиков.sania wrote:может за 20 мс есть 1000-1200 событий? чёт не совсем понятно...
тогда, счётчик считает,а по событию раз в 20 мс сохраняется значение счётчика для своих рассчётов,обнуляется и считает по-новой.
таким образом получается 50-60 кГц вполне достаточно встроенного...
А зачем быстрые счетчики в этом случае? Если использовать внешний генератор на 50-100кГц, тогда понятно. Если внутренний таймер - то они, по моему не нужны.sania wrote:ага малость проясняется...
для точности надо юзать хардвар-прерывания (2датчика=2 прерывания) и быстрые входа(от счётчиков)
Точность в 1мс меня не устраивает. Надо получить хотя-бы 0.5% точность в измерении угла между валами, в интервале 50 градусов. В принципе, если вешать оба датчика на прерывания и быстро посчитать разность таймеров, то может все и получится. После измерения интервала, у меня остается 80-100 мс на фильтрацию, обработку и т.п. Тут должно все получится. А вот что будет считываться с таймера по прерываниям - не совсем понятно. Вернее какие там будут погрешности.sania wrote:теперь: 600 об./мин= 10 об./сек=1 об/100миллисек.
т.е. 360 градусов за 100 мсек.(откуда 1-3 события в 20мсек?)
50град за 13 мсек
3.6 градуса за 1 миллисекунду ...
стандартный таймер имеет базу счёта в 1 мсек,т.е.если ошибка в +-3.6 градуса некритична,то можно юзать стандартный таймер
если надо точнее,то может попробовать считывать рантайм время проца и оттуда плясать...хотя на считывание тоже время теряется..
CNC - это что? А вообще-то это модернизация концентратомера (1965г разработки, 1974г выпускаsania wrote:20-50 мксек??? этож 0.18 градуса точность....случаем не CNC изобретаем?
Может с энкодерами и точнее, только во первых, те энкодеры что у меня есть туда не влезут, во вторых - не совсем понятно, как на двух энкодерах можно получить угол сдвига, не следя за количеством импульсов одного и второго. А подсчет импульсов это довольно гиморно. Пропустил один - получил ошибку, да и направление надо учитывать. В общем если делать с нуля - может и оправданно, а для ремонта - по моему слишком сложно. Внешний генератор (в крайнем случае) - на порядок дешевле да и в обработке проще.Владимир wrote:Я бы попробовал так...
Установить два многооборотных абсолютных энкодера на эти диски... по ним можно знать и точную скорость вращения и "рассогласование углов" единовременно... не забывайте, что у обычных датчиков тоже есть "время включения" и оно может плыть от температуры и т.д. на замере до 20мс это будет заметно...
А с энкодерами будет точнее и производительнее, мне кажется. скорость исполнения арифметической команды у 1200-го около 18-ти мкс... расчет рассогласования можно "уложить" в десяток функций... за 0,18мс вы можете узнать точный угол рассогласования.
хотя может быть я не совсем правильно понял задачу...
Если вариант бюджетный, то можно приспособить что-то микроконтроллерное - например 16 МГц Атмел ATmega32U4-AU с USB интерфейсом для программирования и интерфейса с компом за 96 рублейkr1810bm86 wrote:А вообще-то это модернизация концентратомера (1965г разработки, 1974г выпуска).
Есть сам датчик, а плата управления сгорела. Повторять плату - пол года НИОКОР )).
Вот думаю приспособить контроллер.
Амтел - вещь хорошая (так говорят). Но я их не знаю вообщеCoMod wrote: Если вариант бюджетный, то можно приспособить что-то микроконтроллерное - например 16 МГц Атмел ATmega32U4-AU с USB интерфейсом для программирования и интерфейса с компом за 96 рублей
или АРМ STM32F100C4T6B за 33 р..
viewtopic.php?f=7&t=16529
Теоретически это получится уровень концентрации массы. После р_ас_ крутки основного вала, момент действующий на пробный вал пропорционален концентрации, ну а угол отклонения между двумя валами пропорционален моменту. Имея значение концентрации в реальном времени можно управлять клапаном и поддерживать заданное значение. Так что нужен будет ПИ или ПИД регулятор и выход на 4-20мА. Затем калибровка нуля в воде, калибровка в воздухе, калибровка по образцовому, учет температуры (желательно), индикация на главном пульте, и сохранение журнала. В общем для Амтела, по моему многовато писать придется, оно того не стоит.CoMod wrote: Подсчитаешь разницу и что с ней дальше делать ? Кому и как передавать или какие оргвыводы делать ?
Спасибо! Не знал про такие. Я знаком только с синусно-косинусными трансформаторами, которые стояли в "Шилке"Владимир wrote:Энкодеры нужно пользовать не инкрементальные, а абсолютные. с них не надо считать импульсы, они всегда показывают угол... есть всякие габариты, разрешение и интерфейс...
http://www.posital.com/us/products/POSI ... _base.html