Переслал инженеру. Он посмотрит и напишет вам ответ.
Здравствуйте.
Вопрос так-же с энкодерами.
Сделал так как Вы написали. Счета нет.
Если перестраиваю в конфигураторе модуль ввода на подсчет импульсов, то счет идет.
Может для энкодера другой регистр?
ps
Заработало, но при весьма странных обстоятельствах.
На модуле был включен режим энкодера, не работало.
Включил режим счета импульсов, импульсы считает.
Вернул на энкодер, начал считать энкодер с возрастанием и уменьшением кол-ва импульсов.
ps ps
Радость была не долгой. После перегрузки спк и модулей, счета с энкодеров нет.
Повторяю процедуру описанную выше и энкодэры начинают работать.
Что делать? Куда копать?
Добрый день!
Ситуация исправлена в новой прошивке модуля. Прошивку тестируем.
Я могу отправить Вам тестовый вариант прошивки (напишите мне на почту i.masterenko@owen.ru )
Здравствуйте.
Подскажите, как отследить точное значение счетчика энкодера в МВ201-202.
Суть в чем. Мне нужно что-бы на счете энкодера ровно в 5000 импульсов сработал тригер отключающий двигатель. Если я жестко прописываю условия срабатывания знаком равенства, то триггер не срабатывает, СПК просто пропускает нужное мне значение.
Сработка идет при условии Счетчик >= 5000. При этом точность выполнения команды от +5002 до + 5027 импульсов. Значения не приемлемы, так как перебег уже значительный.
Проект прост как грабли. Что сделать что-бы равенство работало жестко?
Прогноз, конечно дело хорошее, но не точное. Будут ситуации, когда сдвиг будет не большим, и данных для прогноза не будет. И снова приехали.
Импульсы идут с частотой 125 в секунду. Не много. Цикл спк 10мс. Опрос модулей по Изернет, через какое время я не знаю. (новичек, не пиннайтесь, если что. ).
Должно работать или нет?
Как мне кажется само наличие в модуле 210-202 быстрых входов которые конфигурируются под чтение энкодера говорит о том, что есть возможность получить точные данные с этих входов. Иначе быть не должно. Энкодер точный датчик и требует соответсвующего съема данных.
ps
Как мне кажется само наличие в модуле 210-202 быстрых входов которые конфигурируются под чтение энкодера говорит о том, что есть возможность получить точные данные с этих входов. Иначе быть не должно. Энкодер точный датчик и требует соответсвующего съема данных.
ну и что, Вам же объясняют что между получателем информации и модулем есть "прокладка", на запрос туда-обратно тратится время, помимо этого у модуля ПО еще требует доработок, происходят задержки в ответе, для меня они не существенны, а для работы с высокочастотными сигналами это не допустимо, по этому на данный момент ни как не получить точность, после новой прошивки возможно что то улучшится
Она исключает саму возможность считать данные энкодера из модуля? Я дилетант в этом всем деле, но логика не вяжется. Возможность читать энкодер есть, а брать результат, нет? Зачем тогда объявлять о работе модуля с энкодером? Ведь это не логично, верно? Объявленные функции должны работать. Интересно, что думает по этому поводу официальная сторона?
не придумывайте отсебятину. Могу другими словами разъяснить, сели к примеру Вы смотреть "Игру престолов", во время рекламы побежали помочиться, но Вас прихватило и остались сделать дела по большому, естественно пропустили часть сериала, Вы будете предъявлять претензии телеканалу, что они не выполняют заявленную возможность посмотреть фильм?
Не корректное сравнение. Скорее я смотрю сериал не отрываясь а мне транслируют с частотой 1 кадр в секунду. Это 100% косяк производителя.
С энкодера нужно иметь актуальные данные в любой момент времени. Иначе смысл энкодера теряется. Он уже и не энкодер совсем, а так, плохо привинченный концевик, который срабатывает как ему вздумается.
отнюдь, мастером является Ваш контроллер, а модуль в роли слейва, он отвечает только когда его попросят. Если Вы просите не часто, позволяете себе задерживаться с запросом то и ответы будете получать соответственно. Вы не озвучивали с каким периодом опрашиваете модуль, называли только количество импульсов и минимальное время цикла спк. Сколько реально занимает время цикла зависит от сложности программы, ну даже пускай укладывается в 10мс, т.е. один цикл мы отправляем запрос, в другой цикл читаем ответ, это в идеале, в итоге ответы будут идти через 20мс. Вы указывали что импульсы идут 125 в секунду это по времени импульс за 8 мс, в этом случае между двумя ответами будет разница в два целых импульса, что подтверждается Вашими словами проПоэтому технически не возможно постоянно ловить ровно 5000Цитата:
от +5002 до
Задержка ответа модуля имеет место быть, по ней техподдержка высказалась сроки появления прошивки пока неизвестны, но это ни как не влияет на Ваши требования к точности, ровно 5000 получить вероятность очень мала
Это я все понимаю. Но ведь завлена поддержка энкодеров. Верно?
Видимо и агоритм работы модуля и спк в режиме энкодера должны быть другими. Я не знаю возможно это или нет, но в данном режиме значения с модуля должны писаться в спк без запросов а в режиме реального времени. Это возможно? Теоретически?
Если возможно, то да, можно говорить о коректной работе режима энкодер. Если нет, то режим энкодера в принципе не рабочий. У меня энкодер слабенький, 125 импульсов , а что если 50000 импульсов? Овен заявляет 100кгц на быстрых входах в режиме энкодер, допустим модуль считает эти данные, но спк не сможет их получить. И какой в этом смысл? Для чего этот режим?
Вы слегка подменяете понятия, энкодер в модуле работает, Вы не можете по приходящим данным совершить ответные действия в нужный момент. Назовете хоть одного производителя, кто справиться с Вашей задачей? У всех быстрые входа интегрированы в контроллер или общую шину с контроллером, который может мгновенно отдать сигнал на исполнительный механизм. Крайне нудачное решение использовать для этого спк
Я понимаю, что в модуле он работает. Вопрос в том, А что дальше? Ничего? Как-то не подходит это к слову работает.
СПК и модули подбирали по тех данным производителя. По данным все работает.
По другим производителям не скажу, нет знаний.
Вообще никакой электропривод не может остановиться по достижению заданного количества импульсов с энкодера. Просто снижается скорость заранее.
Это же механика. Переусердствовав, можно порвать шпонки, срезать зубья шестерен и зубчатых ремней, и даже сорвать ротор двигателя с вала.
Дайте предварительно команду на замедление привода, тогда и будете успевать читать энкодер.
в станке такой возможности не предусмотрено.
Тогда увы. Или ставить частотник на мотор.
У меня сейчас контроллер Elcon. он считает каждый импульс и останавливает ось вовремя.
Вы вообще разбираетесь в том что говорите, да сеть позволяете передавать данные до 100Мб/с и что? Процессор запускает команду отправки запроса с приходом соответствующей строчки машинного кода раз в цикл при выполнении всех условий, как быстро добегут единички-нолики до оконечного устройства можно вообще в расчет не брать. В спк как и в обычных плк нет нескольких ядер, поэтому многозадачность там ни какая, в спк отличии от просто контроллера время в большей степени тратится на выполнение блока визуализации, поэтому и цикл намного больше чем у плк.
Да вы с СПК1хх [M01] с интерфейсом Ethernet я вижу не работали никогда. В этой теме посты 2018 и 2019 прочтите: https://www.owen.ru/forum/showthread...20069&page=202
"не тормозит" как относиться о чем я писал? Ну, ок, предположим у конфигуратора мастера наивысший приоритет и он остановит все выполняемые задачи, тогда вопрос раз Вы так знакомы с "кухней" чему равен квант времени? Может быть здесь где то показан был настроенный период опроса мастера или он не всчет раз есть вытесняющая многозадачность, а если используется библиотека и код идет в одной задаче со всей остальной логикой?
это не последовательный порт, погуглите чему равна длинна кадра Ethernet
В рассматриваемом случае период регулирования составляет 10...20 мс. Ни о каких 10 мкс речь не идет. Частота следования импульсов не превышает 256,23 Гц. Счетчик модуля с этой частотой легко справляется. Если бы состояние счетчика передавалось в СПК раз в 10 мс, то все бы было прекрасно.
вопрос организации модбас мастера, модуль предоставляет данные за 3 мс, проверьте ОРС сервером в логах обмена. что мешает создать отдельный таск именно на критичный кусок кода в 5 мс цикла и в нём поднять соединение на сокетах по MB_TCP - цикл отпрвили, цикл приняли, повторили не закрывая сокет, получите нужные Вам данные с дискретностью 10 мс.