Показано с 1 по 10 из 688

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

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

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

    По умолчанию

    Можно, конечно, о такого типа PRU программирования помечтать pru_fbd.png

    Но:
    1) Сначала я хотел бы хоть несколько реальных программ увидеть, чтобы понять какие по сути функции требуются от PRU
    Переводя с русского на русский, сначала ШД с разгоном, а потом уже FBD и т.п.

    2) Кучу времени потратили на выяснение "можно ли из Hardella генерировать PRU0.prg и PRU1.prg". Это прямо реально вопрос тысячелетия. Сначала заставляют договор о неразглашении подписывать, а потом удивление, что я его добросовестно соблюдаю.

    3) Пока неясно ясно как на FBD скрещивать "два блока ШД, которые разгоняют каждый свой выход, и каждый хочет разный интервал цикла".
    Простой вариант, конечно, просто сделать фиксированную гранулярность цикла с делителями
    Что-нибудь в духе "PRU цикл по 1мкс". Но на частотах 100кГц гранулярность "каждую микросекунду" может быть маловато.

    4) Очень может оказаться, что ШД это единственное для чего нужен PRU. Ну, возможно, что-нибудь с энкодерами будет. Для ШД, как уже было видно, достаточно просто сделать PRU0.prg и соответствующую библиотеку. Народ будет просто заливать PRU0.prg и всего делов. Т.е. блок ШД как блок никому не нужен. Нужна законченная программа.

    Кстати, тут вопрос про обновление прошивки самого ПЛК.
    Если я правильно понимаю, то мою PRU программу (ШД) можно встроить в прошивку ПЛК, и прямо в КДС конфигураторе вместо fast output выбирать "stepper motor". Ну, по крайней мере, наверняка технически есть такая возможность, и вопрос переходит в организационную плоскость.
    Последний раз редактировалось Владимир Ситников; 21.09.2016 в 16:53.

  2. #2

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    4) Очень может оказаться, что ШД это единственное для чего нужен PRU. Ну, возможно, что-нибудь с энкодерами будет. Для ШД, как уже было видно, достаточно просто сделать PRU0.prg и соответствующую библиотеку. Народ будет просто заливать PRU0.prg и всего делов. Т.е. блок ШД как блок никому не нужен. Нужна законченная программа.
    Можно еще ФБ BLINK сделать. Штатный более 500 Гц не выдает.

    Что там программисты "ОВЕН" говорят о дальнейших перспективах ?

    ФБ для обработки сигналов энкодера то же надо сделать. На форуме кто-то выкладывал отлаженный код на ST, вызываемой по таймеру 20 мкс.

    Переживать не надо, работа по написанию ФБ для PRU найдется. Надо программистов "ОВЕН" расшевелить. Пусть дадут добро на разработку нормальной среды для написания ФБ для PRU.
    Последний раз редактировалось Newcomer; 21.09.2016 в 19:01.

  3. #3

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    Можно еще ФБ BLINK сделать. Штатный более 500 Гц не выдает.
    Чем не подходит штатный PWM режим для быстрых выходов?

  4. #4

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Чем не подходит штатный PWM режим для быстрых выходов?
    Там на выходе меандр, а у BLINK можно отдельно задавать длительность импульса и паузы.

  5. #5

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Там на выходе меандр, а у BLINK можно отдельно задавать длительность импульса и паузы.
    Так у PWM тоже можно указывать какую часть времени единица, а какую ноль.

    Процитирю:
    Код:
    PWM [Slot] (* *) { 
      channels: 
        <no variable> AT %QW2.0 WORD (* PWM 1 power *) 
        <no variable> AT %QW2.1 WORD (* PWM 2 power *) 
        <no variable> AT %QW2.2 WORD (* PWM 3 power *) 
        <no variable> AT %QW2.3 WORD (* PWM 4 power *) 
        <no variable> AT %QD2.4 DWORD (* PWM 1 period, in mks *) 
        <no variable> AT %QD2.5 DWORD (* PWM 2 period, in mks *) 
        <no variable> AT %QD2.6 DWORD (* PWM 3 period, in mks *) 
        <no variable> AT %QD2.7 DWORD (* PWM 4 period, in mks *) 
    }
    Т.е. в режиме PWM, каждый выход управляется двумя параметрами.

  6. #6
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    884

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Так у PWM тоже можно указывать какую часть времени единица, а какую ноль.

    Процитирю:
    Код:
    PWM [Slot] (* *) { 
      channels: 
        <no variable=""> AT %QW2.0 WORD (* PWM 1 power *) 
        <no variable=""> AT %QW2.1 WORD (* PWM 2 power *) 
        <no variable=""> AT %QW2.2 WORD (* PWM 3 power *) 
        <no variable=""> AT %QW2.3 WORD (* PWM 4 power *) 
        <no variable=""> AT %QD2.4 DWORD (* PWM 1 period, in mks *) 
        <no variable=""> AT %QD2.5 DWORD (* PWM 2 period, in mks *) 
        <no variable=""> AT %QD2.6 DWORD (* PWM 3 period, in mks *) 
        <no variable=""> AT %QD2.7 DWORD (* PWM 4 period, in mks *) 
    }
    Т.е. в режиме PWM, каждый выход управляется двумя параметрами.
    Этот режим работает медленнее чем обычный CLK_PULSE от OSCAT.</no></no></no></no></no></no></no></no>

  7. #7

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Так у PWM тоже можно указывать какую часть времени единица, а какую ноль.

    Процитирю:
    Код:
    PWM [Slot] (* *) { 
      channels: 
        <no variable> AT %QW2.0 WORD (* PWM 1 power *) 
        <no variable> AT %QW2.1 WORD (* PWM 2 power *) 
        <no variable> AT %QW2.2 WORD (* PWM 3 power *) 
        <no variable> AT %QW2.3 WORD (* PWM 4 power *) 
        <no variable> AT %QD2.4 DWORD (* PWM 1 period, in mks *) 
        <no variable> AT %QD2.5 DWORD (* PWM 2 period, in mks *) 
        <no variable> AT %QD2.6 DWORD (* PWM 3 period, in mks *) 
        <no variable> AT %QD2.7 DWORD (* PWM 4 period, in mks *) 
    }
    Т.е. в режиме PWM, каждый выход управляется двумя параметрами.
    А какую максимальную частоту в режиме PWM можно получить ? Прерываться по таймеру 20 мкс не очень хорошо для основной программы. Могут возникнуть проблемы при обмене по последовательному порту.

  8. #8
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    884

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Если я правильно понимаю, то этот модуль работает на основе PRU программы, т.е. он не имеет никакого отношения к 20мкс.

    Судя по комментарию, "period in mks". Можно попробовать поставить power=50 (или 32767 -- возможно, под power понимается число от 0 до 65535), period=2 мкс и посмотреть сможет ли оно выдать меандр с шириной 1мкс.
    У меня максимальная скорость работы сервопривода при настройках power 500 и period 6000
    При значениях 499 6000
    Либо 501 6000 уже не работает.

    Пробовал делать 50 и 60000, вообще рывками медленно двигается.

  9. #9

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    А какая нужна?

    Если делать на PRU программе, то можно сделать импульсы шириной до 0.3..0.7 мкс
    Сможет ли схемотехника пропустить эти мегагерцы -- не знаю, но должно получиться.
    Где-то видел картинку, как TI показывает снимок осциллографа "переключение входа-выхода за 5нс".
    Я думаю 1 мГц вполне хватит.

Похожие темы

  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

Ваши права

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