Можно-ли на 1200 контроллере получить 1000 отсчетов за 20 мс

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
kr1810bm86
Posts: 8
Joined: Tue Dec 21, 2010 10:24 am

Можно-ли на 1200 контроллере получить 1000 отсчетов за 20 мс

Post by kr1810bm86 »

:?:
Есть два события, по времени отделенных друг от друга максимум на 20 мс, можно ли в этом интервале точно измерить время между событиями при помощи 1200 контролера? Хотя бы 1000-1200 отсчетов.
Если можно, то в какую сторону копать ?
Info
Faq & Info
Faq & Info
Posts: 428
Joined: Wed Oct 05, 2005 9:00 am

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by Info »

http://support.automation.siemens.com/W ... 4143537/td
tech.data wrote:for counter/technological functions
Parameterizable Single phase : 3 at 100 kHz, differential: 3 at 80 kHz
manual ru http://support.automation.siemens.com/W ... 32465/0/ru
page 347 wrote:Скоростные счетчики всего 4
Однофазные: 3 при тактовой частоте 100 кГц и 1 при тактовой частоте 30 кГц
Квадратурные: 3 при тактовой частоте 80 кГц и 1 при тактовой частоте 20 кГц
их-то и юзай
kr1810bm86
Posts: 8
Joined: Tue Dec 21, 2010 10:24 am

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by kr1810bm86 »

Для использования скоростных счетчиков в качестве секундомера похоже понадобится внешний генератор?
А внешний генератор 100кГц, да еще и и со стабильностью +-100Гц - весьма незаурядная штука получится :(

В DTL есть наносекунды, может можно использовать внутренний таймер?
sania
Site Admin
Posts: 1387
Joined: Sat Aug 13, 2005 6:15 am

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by sania »

а причём генератор?
у тебя есть датчик,который регистрирует событие раз в 20 мс
вот его выход заводится на быстрый вход ПЛК,поэтому событию вызывается ОВ в нём есть время вызова(время события),от него отнимаешь время предыдущего события-вот тебе и интервал между событиями
kr1810bm86
Posts: 8
Joined: Tue Dec 21, 2010 10:24 am

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by kr1810bm86 »

sania wrote:а причём генератор?
у тебя есть датчик,который регистрирует событие раз в 20 мс
вот его выход заводится на быстрый вход ПЛК,поэтому событию вызывается ОВ в нём есть время вызова(время события),от него отнимаешь время предыдущего события-вот тебе и интервал между событиями
Спасибо! Буду пробовать.
sania
Site Admin
Posts: 1387
Joined: Sat Aug 13, 2005 6:15 am

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by sania »

может за 20 мс есть 1000-1200 событий? чёт не совсем понятно...
тогда, счётчик считает,а по событию раз в 20 мс сохраняется значение счётчика для своих рассчётов,обнуляется и считает по-новой.
таким образом получается 50-60 кГц вполне достаточно встроенного...
kr1810bm86
Posts: 8
Joined: Tue Dec 21, 2010 10:24 am

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by kr1810bm86 »

sania wrote:может за 20 мс есть 1000-1200 событий? чёт не совсем понятно...
тогда, счётчик считает,а по событию раз в 20 мс сохраняется значение счётчика для своих рассчётов,обнуляется и считает по-новой.
таким образом получается 50-60 кГц вполне достаточно встроенного...
Нет. Событий в период 20м нету. Вернее может быть 1-3 штуки. Тут два диска стоят на двух связанных пружиной осях. Надо мерить угол сдвига между осями. Оси вращаются с частотой 500-600 об./мин. Максимальный угол сдвига 50 градусов. Идея - просверлить по одной дырке в диске и мерить время между срабатываниями оптических датчиков.

Если с контроллера можно получить отсчеты времени с точностью 20-50 мкс, то этого вполне достаточно и без внешнего генератора. В общем надо пробовать.
sania
Site Admin
Posts: 1387
Joined: Sat Aug 13, 2005 6:15 am

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by sania »

ага малость проясняется...
для точности надо юзать хардвар-прерывания (2датчика=2 прерывания) и быстрые входа(от счётчиков)

теперь: 600 об./мин= 10 об./сек=1 об/100миллисек.
т.е. 360 градусов за 100 мсек.(откуда 1-3 события в 20мсек?)
50град за 13 мсек
3.6 градуса за 1 миллисекунду ...
стандартный таймер имеет базу счёта в 1 мсек,т.е.если ошибка в +-3.6 градуса некритична,то можно юзать стандартный таймер
если надо точнее,то может попробовать считывать рантайм время проца и оттуда плясать...хотя на считывание тоже время теряется..


20-50 мксек??? этож 0.18 градуса точность....случаем не CNC изобретаем?
Владимир
Posts: 298
Joined: Wed Sep 21, 2005 12:24 pm
Location: Russia, Saint-Petersburg

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by Владимир »

Я бы попробовал так...
Установить два многооборотных абсолютных энкодера на эти диски... по ним можно знать и точную скорость вращения и "рассогласование углов" единовременно... не забывайте, что у обычных датчиков тоже есть "время включения" и оно может плыть от температуры и т.д. на замере до 20мс это будет заметно...
А с энкодерами будет точнее и производительнее, мне кажется. скорость исполнения арифметической команды у 1200-го около 18-ти мкс... расчет рассогласования можно "уложить" в десяток функций... за 0,18мс вы можете узнать точный угол рассогласования.
хотя может быть я не совсем правильно понял задачу...
kr1810bm86
Posts: 8
Joined: Tue Dec 21, 2010 10:24 am

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by kr1810bm86 »

sania wrote:ага малость проясняется...
для точности надо юзать хардвар-прерывания (2датчика=2 прерывания) и быстрые входа(от счётчиков)
А зачем быстрые счетчики в этом случае? Если использовать внешний генератор на 50-100кГц, тогда понятно. Если внутренний таймер - то они, по моему не нужны.

sania wrote:теперь: 600 об./мин= 10 об./сек=1 об/100миллисек.
т.е. 360 градусов за 100 мсек.(откуда 1-3 события в 20мсек?)
50град за 13 мсек
3.6 градуса за 1 миллисекунду ...
стандартный таймер имеет базу счёта в 1 мсек,т.е.если ошибка в +-3.6 градуса некритична,то можно юзать стандартный таймер
если надо точнее,то может попробовать считывать рантайм время проца и оттуда плясать...хотя на считывание тоже время теряется..
Точность в 1мс меня не устраивает. Надо получить хотя-бы 0.5% точность в измерении угла между валами, в интервале 50 градусов. В принципе, если вешать оба датчика на прерывания и быстро посчитать разность таймеров, то может все и получится. После измерения интервала, у меня остается 80-100 мс на фильтрацию, обработку и т.п. Тут должно все получится. А вот что будет считываться с таймера по прерываниям - не совсем понятно. Вернее какие там будут погрешности.

sania wrote:20-50 мксек??? этож 0.18 градуса точность....случаем не CNC изобретаем?
CNC - это что? А вообще-то это модернизация концентратомера (1965г разработки, 1974г выпуска (wow) ). Есть сам датчик, а плата управления сгорела. Повторять плату - пол года НИОКОР )). Вот думаю приспособить контроллер.
Last edited by kr1810bm86 on Sat Oct 01, 2011 10:50 am, edited 1 time in total.
kr1810bm86
Posts: 8
Joined: Tue Dec 21, 2010 10:24 am

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by kr1810bm86 »

Владимир wrote:Я бы попробовал так...
Установить два многооборотных абсолютных энкодера на эти диски... по ним можно знать и точную скорость вращения и "рассогласование углов" единовременно... не забывайте, что у обычных датчиков тоже есть "время включения" и оно может плыть от температуры и т.д. на замере до 20мс это будет заметно...
А с энкодерами будет точнее и производительнее, мне кажется. скорость исполнения арифметической команды у 1200-го около 18-ти мкс... расчет рассогласования можно "уложить" в десяток функций... за 0,18мс вы можете узнать точный угол рассогласования.
хотя может быть я не совсем правильно понял задачу...
Может с энкодерами и точнее, только во первых, те энкодеры что у меня есть туда не влезут, во вторых - не совсем понятно, как на двух энкодерах можно получить угол сдвига, не следя за количеством импульсов одного и второго. А подсчет импульсов это довольно гиморно. Пропустил один - получил ошибку, да и направление надо учитывать. В общем если делать с нуля - может и оправданно, а для ремонта - по моему слишком сложно. Внешний генератор (в крайнем случае) - на порядок дешевле да и в обработке проще.
У энкодеров есть огромный плюс, в данном случае. Нету необходимости закончить расчет угла за 20мс, вполне можно обрабатывать сигнал в течении 100-800 мс, т.к. мне не обязательно получать угол сдвига на каждый оборот, хватит и 1-2 измерения в секунду. Но вот как определить угол сдвига между фазами двух энкодеров..... ловить и писать в память все 1024 отсчета? И по меткам начала-конца? это грустно. (Хотя может я неправильно понимаю методику сьема данных с энкодера)
CoMod
Site Admin
Posts: 3992
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by CoMod »

kr1810bm86 wrote:А вообще-то это модернизация концентратомера (1965г разработки, 1974г выпуска (wow) ).
Есть сам датчик, а плата управления сгорела. Повторять плату - пол года НИОКОР )).
Вот думаю приспособить контроллер.
Если вариант бюджетный, то можно приспособить что-то микроконтроллерное - например 16 МГц Атмел ATmega32U4-AU с USB интерфейсом для программирования и интерфейса с компом за 96 рублей
или АРМ STM32F100C4T6B за 33 р..
viewtopic.php?f=7&t=16529

Подсчитаешь разницу и что с ней дальше делать ? Кому м как передавать или какие оргвыводы делать ?
kr1810bm86
Posts: 8
Joined: Tue Dec 21, 2010 10:24 am

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by kr1810bm86 »

CoMod wrote: Если вариант бюджетный, то можно приспособить что-то микроконтроллерное - например 16 МГц Атмел ATmega32U4-AU с USB интерфейсом для программирования и интерфейса с компом за 96 рублей
или АРМ STM32F100C4T6B за 33 р..
viewtopic.php?f=7&t=16529
Амтел - вещь хорошая (так говорят). Но я их не знаю вообще :) Это надо будет месяца 2-3 на учебу потратить. (А метод изготовления плат - мне понравился, надо будет попробовать).
CoMod wrote: Подсчитаешь разницу и что с ней дальше делать ? Кому и как передавать или какие оргвыводы делать ?
Теоретически это получится уровень концентрации массы. После р_ас_ крутки основного вала, момент действующий на пробный вал пропорционален концентрации, ну а угол отклонения между двумя валами пропорционален моменту. Имея значение концентрации в реальном времени можно управлять клапаном и поддерживать заданное значение. Так что нужен будет ПИ или ПИД регулятор и выход на 4-20мА. Затем калибровка нуля в воде, калибровка в воздухе, калибровка по образцовому, учет температуры (желательно), индикация на главном пульте, и сохранение журнала. В общем для Амтела, по моему многовато писать придется, оно того не стоит.
Владимир
Posts: 298
Joined: Wed Sep 21, 2005 12:24 pm
Location: Russia, Saint-Petersburg

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by Владимир »

Энкодеры нужно пользовать не инкрементальные, а абсолютные. с них не надо считать импульсы, они всегда показывают угол... есть всякие габариты, разрешение и интерфейс...
http://www.posital.com/us/products/POSI ... _base.html
или SICK... доки на русском... да сейчас только ленивый их не делает... Та же Дельта китайская...
http://www.sick-automation.ru/images/Fi ... _AFM60.pdf
Last edited by Владимир on Mon Oct 03, 2011 8:39 pm, edited 1 time in total.
kr1810bm86
Posts: 8
Joined: Tue Dec 21, 2010 10:24 am

Re: Можно-ли на 1200 контроллере получить 1000 отсчетов за 2

Post by kr1810bm86 »

Владимир wrote:Энкодеры нужно пользовать не инкрементальные, а абсолютные. с них не надо считать импульсы, они всегда показывают угол... есть всякие габариты, разрешение и интерфейс...
http://www.posital.com/us/products/POSI ... _base.html
Спасибо! Не знал про такие. Я знаком только с синусно-косинусными трансформаторами, которые стояли в "Шилке" :)