Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 688

Тема: Программирование ПЛК110 [М02] для задач реального времени

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Надо 300 импульсов -- блок сделает 300, вычислив сколько нужно разгоняться и сколько тормозить. Блок поймёт успеваем ли выйти на макс скорость или нет.
    Каким это образом блок вычислит сколько времени надо ускоряться что бы не было пропусков импульсов. Что блок знает момент инерции конкретной механической системы ? Для каждой механической системы время разгона будет свое.
    Последний раз редактировалось Newcomer; 25.09.2016 в 22:28.

  2. #2

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    Каким это образом блок вычислит сколько времени надо ускоряться что бы не было пропусков импульсов. Что блок знает момент инерции конкретной механической системы ?
    Я же говорю: допустимое ускорение подаётся на вход блоку.
    Ему передаётся:
    enable
    количество импульсов
    ускорение при разгоне
    ускорение при замедлении

    Если вопрос только "в пропусках импульсов", то указываем "допустимое ускорение" и радуемся.
    Блок будет правильно отрабатывать все движения, понимая пределы для данной установки.

  3. #3

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Я же говорю: допустимое ускорение подаётся на вход блоку.
    Ему передаётся:
    enable
    количество импульсов
    ускорение при разгоне
    ускорение при замедлении

    Если вопрос только "в пропусках импульсов", то указываем "допустимое ускорение" и радуемся.
    Блок будет правильно отрабатывать все движения, понимая пределы для данной установки.
    Можно задать 10 как говорю я, а можно задать 10000/10 = 1000 как говорите вы и на выходе ФБ получится одинаковый результат. Только в моем случае не надо ничего делить.
    Последний раз редактировалось Newcomer; 25.09.2016 в 22:35.

  4. #4

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    Можно задать 10 как говорю я, а можно задать 10000/10 = 1000 как говорите вы и не будет никакой разницы. Только в моем случае не надо ничего делить.
    Друг мой (или не друг). Вы хотите странного. Я уже сказал, что само по себе "время разгона" не несёт в себе достаточной информации.
    Нужна ещё информация о том "какая скорость будет достигнута при этом разгоне".

    Если очень уж хочется играться со временами, то можете потом сделать обёртку, которая вычисляет времена и всё такое.

    Но, с точки зрения физики процесса, ускорение является основополагающей величиной, поэтому сам блок будет работать именно с ускорением.
    Тащить лишнее преобразование "времени в ускорение" внутрь блока я не буду -- это лишь осложнит сам блок, и не принесёт абсолютно никакой пользы.
    Тут не только "в физике" дело, а ещё и в том, что в фактических формулах время не фигурирует. Либо скорость, либо ускорение. Время -- нет.



    Более того, если говорить об S кривых, то вы никогда не сможете вычислить "время разгона" для случая S кривой. Ну, даже если вы и сможете (вдруг?), то среднестатистический пользователь -- точно нет.
    Поэтому вынесение параметра "время разгона" будет мешать дальнейшим улучшениям блока. S-кривую уже просто так не получится добавить, т.к. у S-кривой понятие "время разгона" весьма относительно.
    Последний раз редактировалось Владимир Ситников; 25.09.2016 в 22:42.

  5. #5

    По умолчанию

    По вашему предельную частоту и время разгона надо держать в голове чтобы вычислить предельное ускорение. По моему ничего в голове держать и вычислять не надо, а надо тупо на входе блока задать предельную частоту и время разгона.
    Последний раз редактировалось Newcomer; 25.09.2016 в 22:43.

  6. #6

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    По вашему предельную частоту и время разгона надо держать в голове чтобы вычислить предельное ускорение. По моему ничего в голове держать и вычислять не надо, а надо тупо на входе блока задать предельную частоту и время разгона.
    А?
    Кто запрещает в коде указать:
    stepper(quantity := 300, max_speed := 60, accel_ramp := 10000/10, decel_ramp := 10000/20, enable:=...) ?
    Надо 400 импульсов? Вот 400:
    stepper(quantity := 400, max_speed := 60, accel_ramp := 10000/10, decel_ramp := 10000/20, enable:=...) ?
    Надо 10? Вот 10:
    stepper(quantity := 10, max_speed := 60, accel_ramp := 10000/10, decel_ramp := 10000/20, enable:=...) ?

    Надо просто раскрутить до 60 имп/сек и пусть фигачит?
    stepper(quantity := -1, max_speed := 60, accel_ramp := 10000/10, decel_ramp := 10000/20, enable:=...) ?
    Надо раскрутить до 5000имп/сек?
    stepper(quantity := -1, max_speed := 5000, accel_ramp := 10000/10, decel_ramp := 10000/20, enable:=...) ?

    Надо просто сделать 100 импульсов на частоте 60Гц?
    stepper(quantity := 100, max_speed := 60, accel_ramp := 0, decel_ramp := 0, enable:=...) ?


    В таком коде можно без проблем менять max_speed, можно без проблем менять quantity.
    И никаких вычислений "времени разгона" делать не нужно.
    Числа 10000/10, как я говорил, берутся "из пальца, что установка без проблем разгоняется до 10000 за 10 секунд". Хотите того или нет, но подобные числа в любом случае придётся откуда-то брать.
    Вы ШД как выбираете? Не по цвету же?

    А теперь покажите, как будет выглядеть предлагаемый вами вариант. Хотя бы для случая 300/400 импульсов.
    Последний раз редактировалось Владимир Ситников; 25.09.2016 в 22:53.

  7. #7

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    А теперь покажите, как будет выглядеть предлагаемый вами вариант. Хотя бы для случая 300/400 импульсов.
    А что такое 300/400 импульсов ?

  8. #8

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    А что такое 300/400 импульсов ?
    Я привёл варианты кода, которые решают задачи управления ШД.
    Есть установка, у которой предельное ускорение 10'000Гц/10сек, предельное замедление предельное ускорение 10'000Гц/20сек
    1) Сделать 300 импульсов, максимальная скорость 60 Гц
    2) Сделать 400 импульсов, максимальная скорость 60 Гц
    3) Сделать 10 импульсов, максимальная скорость 60 Гц
    4) Раскрутиться до 60 имп/сек и продолжить вращение бесконечно
    5) Раскрутиться до 5000 имп/сек и продолжить вращение бесконечно
    5) Просто сделать 100 импульсов на частоте 60 имп/сек.

    Покажите как хотя бы первые 1-2-3 задачи будут решаться, если у ФБ будут такие аргументы, как вы предлагаете:
    enable, period, quantity, accel_time, decel_time

    Я к тому, что "accel_time" и "decel_time" совершенно непонятно как вычислять.


    Реально, приведите пару строк, как будет выглядеть использование блока, если аргументы такие, как вы предлагаете. По факту -- аргументов "enable, period, quantity, accel_time, decel_time" недостаточно. Как минимум, нужен аргумент "какая по факту скорость достигается в конце разгона".
    Последний раз редактировалось Владимир Ситников; 25.09.2016 в 23:07.

  9. #9

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Я привёл варианты кода, которые решают задачи управления ШД.
    Есть установка, у которой предельное ускорение 10'000Гц/10сек, предельное замедление предельное ускорение 10'000Гц/20сек
    1) Сделать 300 импульсов
    2) Сделать 400 импульсов
    3) Сделать 10 импульсов
    4) Раскрутиться до 60 имп/сек и продолжить вращение бесконечно
    5) Раскрутиться до 5000 имп/сек и продолжить вращение бесконечно
    5) Просто сделать 100 импульсов на частоте 60 имп/сек.

    Покажите как хотя бы первые 1-2-3 задачи будут решаться, если у ФБ будут такие аргументы, как вы предлагаете:
    enable, period, quantity, accel_time, decel_time

    Я к тому, что "accel_time" и "decel_time" совершенно непонятно как вычислять.
    Никто на практике не будет вычислять предельное ускорение установки и время разгона/торможения. Пусконаладкой не профессора занимаются. Будут для заданной частоты тупо подбирать время разгона/торможения.
    Последний раз редактировалось Newcomer; 25.09.2016 в 23:15.

  10. #10

    По умолчанию

    Если надо сделать 300 шагов за определенное время, то я прикину какая частота импульсов должна быть чтобы уложиться в заданное время. Далее буду подбирать время разгона и торможения чтобы вал ШД повернулся на заданный угол без пропуска импульсов. И так для любого количества импульсов. Задача вашего ФБ просто, без всякого думоства, исполнить то, что задано на входе.
    Последний раз редактировалось Newcomer; 25.09.2016 в 23:23.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 38
    Последнее сообщение: 24.01.2022, 11:56
  2. Ответов: 10
    Последнее сообщение: 11.06.2021, 14:55
  3. часы реального времени
    от vetaly в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 28.08.2015, 16:21
  4. Таймер реального времени УТ1-РiС
    от ser10 в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 16.09.2010, 11:24

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •