Без аппаратной поддержки считывать положение энкодера с SSI не сможет не только Овен, но и любой другой ПЛК общего применения. Как вы собираетесь программно считывать сигнал, имеющий частоту не менее 100 кГц?
Без аппаратной поддержки считывать положение энкодера с SSI не сможет не только Овен, но и любой другой ПЛК общего применения. Как вы собираетесь программно считывать сигнал, имеющий частоту не менее 100 кГц?
усреднением значения
Ничего не понял. Что вы собрались усреднять? Вам, прежде чем работать с значением, предстоит его прочитать из энкодера в уже "оцифрованном" виде. В случае выбранной вами модели энкодера - по высокоскоростному последовательному интерфейсу (SSI).
Вот я и спросил, как вы одними лишь программными средствами собираетесь общаться с SSI - то есть генерировать пакет тактовых импульсов с частотой в сотню килогерц и считывать биты, поступающие с линии связи с той же скоростью? Без "железяки", которая все это проделает и предоставит вам готовенькое значение в своем регистре, не обойтись. Либо ищите энкодер с параллельным интерфейсом...
с опросом пока не определился , но пока вырисовывается такая картина: С периодом в три секунды производить опрос.
Вы, видимо, так и не поняли. Периодичность опроса энкодера (считывания текущего положения) никакого значения не имеет - хоть сто раз в секунду, хоть раз в сутки опрашивайте. Важна скорость выполнения процедуры одиночного опроса.
Интерфейс SSI рассчитан на минимально допустимую частоту тактирования 100kHz. Первый тактовый импульс "защелкивает" слово данных в сдвиговом регистре энкодера, все последующие побитно выталкивают содержимое регистра в линию связи. Если тактовые импульсы следуют слишком медленно, энкодер прервет незавершенную операцию передачи данных по таймауту (по истечению "monoflop time").
То есть вам, считывая каждый бит данных, не более чем за 10 микросекунд нужно успеть выставить тактовый импульс, прочитать один бит с линии данных, запомнить его, сбросить тактовый импульс. И с той же скоростью повторять эту процедуру до тех пор, пока не прочтете по битам все слово данных. Программными средствами вы не сможете достигнуть такой высокой скорости выполнения операций (работы с портами ПЛК), для общения с SSI нужна аппаратно реализованная "читалка".
Как вы считаете, если использовать преобразователь интерфейсов SSI в RS485, смогу ли я в этом случаи считать корректно?
Думаю, что сможете. Тем более, что в вашей задаче не стоит вопрос о быстроте реакции на положение... Вы используете энкодер как прецизионный индикатор размера - углового перемещения под воздействием рычага на который что то давит или его перемещает. Вам нужно видеть сам процесс с высокой точностью за достаточно длительный отрезок времени. Но без аппаратного средства реализации протокола SSI не обойтись.
Спасибо! Можете по советовать преобразователь интерфейсов SSI/RS485
Желательно не дорогой.
Сегодня узнал цену преобразователя IV 251
Signal Converter
SSI => Analogue and SSI => Serial
и не много ужаснулся, стоит он в Москве 16000руб. Может есть аналоги по дешевле?
http://www.skbis.ru/index.php?p=3
подберите здесь подходящий энкодер, абсолютные с параллельным есть, но хватит ли Вам разрешения...
внизу странички разнообразные преобразователи сигналов от энкодеров.
а чем инкрементальный не подходит? неужели нельзя при включении вашего прибора рычаг рукой крутануть, чтобы контроллер нулевую метку поймал?
или может проще такую штуку поставить? http://www.skbis.ru/index.php?p=3&c=2
Последний раз редактировалось BETEP; 16.01.2013 в 09:53.
К сожалению там нет нужной разрешающей способности. Энкрементальный энкодер не подходит из за своей способности к пропуску шагов. До запуска оборудования обнулить не проблема, но когда оно запускается, то оно работает в круглосуточном режиме, и может не выключатся несколько дней, а за это время обязательно возникнет накопительная погрешность.