А вот на малыше это возможно, функция SPED, попроще чем PLS2, но минимальный интервал вроде 8 мс.
-------------------
Вы уж определитесь, а то заладили
Ну не рулит он в Вашей задаче, Вы уже не первый день решаете то, что на другом оборудовании как два пальца об асфальт.
Впрос в том, как часто можно вызывать функцию PLS2.
Грубо говоря:
t0: "PLS2, поехали на 10мм".
t1: Вас понял, еду
t3: "ой, нет, я передумал, PLS2 надо было на 7мм ехать, а не на 10"
t4: Кхм. Вообще-то мы находимся на отметке 9мм, но если уж так нужно, то отмотаем назад 2мм.
Каков минимальный временной интервал t3-t0, который позволит вызывать PLS2/SPED?
С одной стороны, пишете "2 цикла управления = 8мс". Я понимаю это так, что PLS2, выполняясь в основном цикле, отдаёт команды на управление обработчику быстрого выхода раз в "основной цикл ПЛК". Если основной цикл ПЛК составляет 4мс, то ПЛК потратит примерно 8мс от осознания того, что нужно запускать ШД до фактического запуска.
С другой стороны, пишете, что есть таймеры на 20мкс. Можно в этом таймере вызывать PLS2? Т.е. можно, условно говоря, каждые 20мкс выдавать новую PLS2 инструкцию? Я, конечно, понимаю, что 20мкс это порядка 50кГц, но всё же.
Т.е. что-то в духе "выполни вот этот код как только счётчик выхода достигнет значения 42"?
Сильно сомневаюсь, что в Омроне одно и то же ядро занимается генерацией импульсов и выполнением инструкций типа PLS2.
Значит, выполнение асинхронное.
Значит, возможно временное запаздывание (ну, импульсы уже накопились, а до обработчика ещё не дошло, что нужно выполнять обрабатывающий код).
Тот же самый вопрос, но с другой стороны: отличается ли эта "обработка входа по прерыванию" от "обработки входа в 20мкс таймере"? Например, мы в нашем 20мкс таймере будем проверять счётчик быстрого выхода и вызывать разнообразные PLS2/SPED команды. Так можно? Оно будет отличаться от "обработки счётчик выхода в прерывании"?
PS. "Начинает выдачу импульсов через 72 мкс" и 20мкс таймер звучит жутковато. Если вычисления траектории занимают 72мкс, то 20мкс таймеру придёт северный лис. У меня на PRU траектория вычисляется где-то за 5мкс. Возможно, более сложные вычисления (совмещение двух движений) действительно выйдут на 36-72мкс.
Последний раз редактировалось Владимир Ситников; 03.03.2017 в 14:20.
Я уже давно определился. Что тут не понятно ?
Для тех кто не понял повторяю - ПЛК110[М02] + Hardella IDE рулят. Повторяйте это как мантру и до вас наконец дойдет.
Быстро, как известно, только кошки родятся. Муки творчества действуют на меня благотворно, без этого жизнь скучна.
Свое подключение к разговору вы начали со слов "Для справки, ни с кем спорить не собираюсь". То что вы изложили лично я принимаю к сведению, но не более того.
Последний раз редактировалось Вольд; 03.03.2017 в 15:28.
Владимир, что за задачи такие, менять задания по нескольку раз в течении милисек?
Обычно любой автомат работает много медленнее.
Я работал с линией по изготовлению сендвич панелей там мультиконтроллерное упр 3шт S300 и примерно 20 осевых приводов S120
плюс ок 40-60 ПЧ. Средний цикл 15-18мс
Работал на роботизированном заводе Мазахенка, весь завод управляется 4-мя S400(в сети) с коммуникациями, цикл 15-20мс
А я откуда знаю? Про задачи нужно не у меня спрашивать.
Вот тащили-тащили клещами из Вольда его задачу. Оказалось, ему нужно PLS2/SPED/ACC.
Попробую угадать, где может пригодиться быстрое управление: "поиск нуля". Т.е. мы движемся-движемся и нужно останавливать ШД при достижении отметки.
С одной стороны, под это дело можно сделать "отдельную инструкцию <<поиск нуля>>", а с другой можно отдельных не делать, а сделать что-то типа PLS2/SPED и вызывать уже их (но из 60мкс таймера).
Я хочу по-нормальному сделать.
C stepper блоком перо попробовали, теперь можно более серьёзные штуки делать. И не хотелось бы тратить время на штуки, которые по факту окажутся непригодными к реальному использованию.
Если 100мкс всех устраивает, то надо пробовать.
Я не говорил, что мне нужно PLS2/SPED/ACC. Пускай этим пользуются адепты забугорного железа. Мой пост о том, что мне понравился документ, который выложил Ветер вы истолковали совершенно не верно. В этом документе я нашел интересные для себя моменты и только. Мне нужен проверенный, работающий быстрый ШИМ, а остальное я сам постараюсь сделать.
Последний раз редактировалось Вольд; 03.03.2017 в 15:17.
такие задачи используют прерывания и цикл не затрагивают
устроит в 99,9% задач.
а для поиска 0 привод движется оч. медленно. Тут нет расчета инерции и торможения. Остановка происходит мгновенно по прерыванию.
Вот выход в координату с заданной скоростью разгона и остановки это другое, для сложных задач делают приводов с высокоскоростной цифровой обратной связью по позиции.
Для этого используют спец моторы, которые к ПЛК не подключить.
Не надо нас за лохов держать. Никто не собирается подключать т.н. спецмоторы напрямую к ПЛК. Если вы о сервоприводах, то они то же бывают с интерфейсом STEP/DIR/EN и их без труда можно подключить к быстрым дискретным выходам ПЛК. Управлять сервоприводом с синхронным двигателем много проще чем драйвером ШД.
Приборист уже подключал сервопривод к ПЛК110[М02] и остался очень доволен.
Последний раз редактировалось Вольд; 03.03.2017 в 15:19.
судя по инструкции, те не совсем понятные мне "2 цикла управления = 8мс" трактовать можно по разному.
Если PLS2 не выполняется, вывод импульсов начнётся через 72 мкс после команды, если нужно изменить команду которая выполняется, то те самые 8мс.С одной стороны, пишете "2 цикла управления = 8мс". Я понимаю это так, что PLS2, выполняясь в основном цикле, отдаёт команды на управление обработчику быстрого выхода раз в "основной цикл ПЛК". Если основной цикл ПЛК составляет 4мс, то ПЛК потратит примерно 8мс от осознания того, что нужно запускать ШД до фактического запуска.
Вы проглядели, я писал 20 мсек, т.е. 20 мс.С другой стороны, пишете, что есть таймеры на 20мкс.
Да, подпрограмму прерывания, а если не торопимся, то можно и в основном цикле отследить счётчик.Т.е. что-то в духе "выполни вот этот код как только счётчик выхода достигнет значения 42"?
Фиг его знает, но у этого малыша один камень от Фуджицу, какой именно смотреть не полезу.Сильно сомневаюсь, что в Омроне одно и то же ядро занимается генерацией импульсов и выполнением инструкций типа PLS2.
Ещё как будет.Тот же самый вопрос, но с другой стороны: отличается ли эта "обработка входа по прерыванию" от "обработки входа в 20мкс таймере"? Например, мы в нашем 20мкс таймере будем проверять счётчик быстрого выхода и вызывать разнообразные PLS2/SPED команды. Так можно? Оно будет отличаться от "обработки счётчик выхода в прерывании"?
В Омроне есть что то похожее на скоростной таймер в ПЛК110, т.е. можно считать и проверить значение счётчика выхода. Называется "Прерывание по расписанию"
Но ещё есть прерывания по событиям: по физическому входу, по уставке счётчика. т.е. нет смысла постоянно гонять код в таймере как у ПЛК110.
-------------------
Вольд, Вы случайно не САМ на ШД пытаетесь организовать?
Последний раз редактировалось BETEP; 03.03.2017 в 15:31.