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

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

Древовидный режим

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

    По умолчанию

    Разгони свой ПЛК110 М02 бесплатно и без S M S.

    10-ая версия pru_stepper_v10.zip
    Теперь-то уж наверняка должны заработать 2 ШД: выходы осциллографом не смотрел, но в КДС блоки работают как надо.

    * Помним, что одновременно могут работать следующие комбинации выходов: 1 и 3, 1 и 4, 2 и 3, 2 и 4.
    * За частоту PRU взята 200MHz (совпадает с тестами dima64)
    * Убран выходной параметр "READY". Вместо него стоит проверять STATE=STOP_STEPPER.
    * Добавлен выходной параметр "CURRENT_SPEED : REAL"
    * Изменён тип параметра "STATE" на enum PRU_STEPPER_STATE


    Спасибо прибористу за ПЛК -- нашёл причину неработоспособности прошлых версий программы.
    Причин несколько:
    1) Похоже, PRU0.prg/PRU1.prg не поддерживают программы более 2048 байт. Это большая печаль, т.к. в спецификации TI написано, что процессор поддерживает программы до 4096 байт. Как я добавил в программу обсчёт минимальной скорости, то программа стала чуть больше 2048 и, соответственно, работать не работала.

    Можно смеяться, можно плакать, но если в *.prg формате действительно ограничение на 2048 байт, то это ещё одна грабля, про которую Владислав ничего не сказал.
    Блин. Ну был бы описан формат *.prg -- было бы наверняка понятно, что "больше 2048 в него не влезет".
    А так получается, я методом тыка исследую и догадываюсь, что всё дело в размере программы.

    Я немного упростил программу, добавил небольшую оптимизацию в компилятор, и программа стала занимать 1964 байта.

    2) Как оказалось, в PRU1 регистр счётчика выполненных команд находится по адресу 0x780C, а не по адресу 0x7800.
    Я про эту догадку уже говорил:

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    И, да, если покажете пример хоть какой-нибудь программы для PRU1, то скажу большое спасибо. Я пробовал читать "регистр счётчика выполненных команд по адресу 0x7800+0xC", но почему-то не работает. У PRU0 счётчик команд находится по адресу 0x7000 + 0xC, а у PRU1 должен (вроде как) быть в 0x7800+0xC.
    но потом Владислав уверил меня, что в документации TI ошибка, а регистр у каждого PRU находится по адресу 0x7800

    Как оказалось, документация TI говорит правду, и регистр находится по своему адресу у каждого PRU.
    Т.е. для PRU0 и PRU1 должны быть разные программы.



    После того, как разобрались с проблемами, давайте разгоним наш ПЛК.
    Осциллографом до прибориста я не дотянусь, но я сделал замер "средней скорости генерации импульсов" через TIME().
    PRU программа возвращает количество сделанных импульсов, а мы делим на "время генерации" и получаем фактическую частоту.
    Вот демонстрация: http://recordit.co/XLaOe3LOYE (то же самое в виде анимированного gif: http://g.recordit.co/XLaOe3LOYE.gif )

    По факту, частота немного отличается от заданной. Например, вместо 500'000 показывает где-то 495'126 Гц. Но тут, возможно у меня ошибка. Например я могу неправильно учитывать то, сколько тактов работают команды с памятью. Ещё, возможно, задержки в самом TIME() или чём-то таком.

    За частоту PRU я выбрал 200МГц. Надо всё-таки перепроверить это хозяйство осциллографом.

    По факту, ПЛК разогнался до 2'200'000 Гц, что, на мой взгляд, хорошее достижение, с учётом того, что ОВЕН пишет 100кГц.
    Сколько из этих 2МГц смогут передаться через быстрые выходы, конечно, вопрос открытый.
    Последний раз редактировалось Владимир Ситников; 02.10.2016 в 13:41.

Похожие темы

  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

Ваши права

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