Страница 26 из 135 ПерваяПервая ... 1624252627283676126 ... ПоследняяПоследняя
Показано с 251 по 260 из 1349

Тема: Hardella IDE

  1. #251

    По умолчанию

    Цитата Сообщение от murdemon Посмотреть сообщение
    ну там все функции и есть уже готовый вставляешь те что в бибке (те что надо по технологии движения) задаешь параметры и поехали , + эти блоки должны работать на уровне (процесса управления PRU) + передавать свои основные параметры на уровень выше в кодезис, так например мы делаем в PRU программу бесконечное движение оси с параметром скорости, а параметр скорости берем из процесса кодезиса. Это как обычно это делают, в той же Дельте.
    Мы друг друга не понимаем.
    Кто будет указывать *куда именно* будут передаваться данные в PRU?

    Грубо говоря, у одного ШД висит на fast out1, а у другого на fast out4.
    Кто будет КДС библиотеку перенастраивать на разные выхода?

  2. #252
    Пользователь Аватар для murdemon
    Регистрация
    03.02.2014
    Адрес
    Санкт-Петербург
    Сообщений
    844

    По умолчанию

    ну это должно быть возможно делать в виде конфигуратора ШД. Что куда подключено + тут же должны добавляться и настраиваться функции PLCOpen motion, и прописываться mapping между PRU и PLC Codesys
    Dmitriy Murashov
    SPS Software Engineer Automation Engineering RUS

  3. #253
    Пользователь
    Регистрация
    28.01.2011
    Адрес
    Новосибирск
    Сообщений
    79

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Из работ по 1.6.0 осталась проверка и документация (чтобы по много раз одно и то же не писать в этой теме)
    Документация будет на русском (родном) языке?

  4. #254

    По умолчанию

    выкладываю свой вариант кода для управления одним ШГ. У меня подключены 4 ШГ у контроллеру - работают нормально. по 2шт одновременно.

    (* 1-й верхний*)
    IF (state1=STOP_STEPPER OR state1=INIT_STEPPER) AND rungen1=FALSE THEN SetPos_1presHig1:=SetPos_1presHig; oldpos2:=Pos_1presHig; END_IF
    IF SetPos_1presHig1<>Pos_1presHig AND rungen1=FALSE THEN
    Way1PresHig:=SetPos_1presHig1>Pos_1presHig;
    IF SetPos_1presHig>Pos_1presHig AND (state1=INIT_STEPPER OR state1=STOP_STEPPER) THEN
    difpos1:=SetPos_1presHig1-Pos_1presHig;
    ELSIF SetPos_1presHig1<Pos_1presHig AND (state1=INIT_STEPPER OR state1=STOP_STEPPER) THEN
    difpos1:=Pos_1presHig-SetPos_1presHig;
    END_IF
    Way1PresHigOut:=NOT Way1PresHig;
    IF state1=run_stepper OR state1=ACCEL_STEPPER OR state1=DECEL_STEPPER THEN Pos_1presHig:=oldpos2+pos1*BOOL_TO_WORD(Way1Preshi g)-pos1*(BOOL_TO_WORD(NOT Way1PresHig)); END_IF
    IF state1=init_STEPPER THEN
    rungen2:=TRUE;
    END_IF
    out1:=4;
    ELSE
    Way1PresHigout:=FALSE;
    END_IF
    IF state1=stop_stepper THEN rungen1:=FALSE; rungen2:=FALSE; END_IF
    Gen1Hig( ENABLE:=rungen1 OR rungen2 , MIN_SPEED:=0 , MAX_SPEED:=Speed1PresHig , QUANTITY:= difpos1 , ACCEL_RAMP:=2000 , DECEL_RAMP:=2000, OUT_NUM:=out1 , STATE=>state1 , CURRENT_SPEED=> , PULSES_GENERATED=>pos1 );

  5. #255

    По умолчанию

    Вариант использования PRU_Stepper для управления ШГ.


    IF (state1=STOP_STEPPER OR state1=INIT_STEPPER) AND rungen1=FALSE THEN SetPos_1presHig1:=SetPos_1presHig; oldpos2:=Pos_1presHig; END_IF
    IF SetPos_1presHig1<>Pos_1presHig AND rungen1=FALSE THEN
    Way1PresHig:=SetPos_1presHig1>Pos_1presHig;
    IF SetPos_1presHig>Pos_1presHig AND (state1=INIT_STEPPER OR state1=STOP_STEPPER) THEN
    difpos1:=SetPos_1presHig1-Pos_1presHig;
    ELSIF SetPos_1presHig1<Pos_1presHig AND (state1=INIT_STEPPER OR state1=STOP_STEPPER) THEN
    difpos1:=Pos_1presHig-SetPos_1presHig;
    END_IF
    Way1PresHigOut:=NOT Way1PresHig;
    IF state1=run_stepper OR state1=ACCEL_STEPPER OR state1=DECEL_STEPPER THEN Pos_1presHig:=oldpos2+pos1*BOOL_TO_WORD(Way1Preshi g)-pos1*(BOOL_TO_WORD(NOT Way1PresHig)); END_IF
    IF state1=init_STEPPER THEN
    rungen2:=TRUE;
    END_IF
    out1:=4;
    Speed1PresHig:=3000;
    Ramp:=2000;
    ELSE
    Way1PresHigout:=FALSE;
    do4:=TRUE;
    END_IF
    IF state1=stop_stepper THEN rungen1:=FALSE; rungen2:=FALSE; END_IF
    IF AlarmAktivGen THEN
    Speed1PresHig:=0;
    Ramp:=0;
    Difpos1:=0;
    IF State1=run_stepper OR state1=ACCEL_STEPPER OR state1=DECEL_STEPPER THEN
    Rungen1:=NOT rungen1;
    Rungen2:=FALSE;
    ELSE
    rungen1:=FALSE;
    Rungen2:=FALSE;
    END_IF
    END_IF

    Gen1Hig( ENABLE:=rungen1 OR rungen2 , MIN_SPEED:=0 , MAX_SPEED:=Speed1PresHig , QUANTITY:= difpos1 , ACCEL_RAMP:=ramp, DECEL_RAMP:=ramp, OUT_NUM:=out1 , STATE=>state1 , CURRENT_SPEED=> , PULSES_GENERATED=>pos1 );

  6. #256

    По умолчанию

    Выпустил Hardella 1.6.0 (см https://hardella.com/download/) и запустил сайт: https://hardella.com/

    В очередной версии:
    - можно программировать оба PRU ядра, и полностью управлять 4 выходами и 2 входами
    - встроен блок ШД

    Если что-то не описал -- пишите в комментариях.
    Если опечатки (или, например, непонятно написано), то можно выделить фрагмент на сайте и нажать ctrl+enter.

    Цитата Сообщение от dima64 Посмотреть сообщение
    Документация будет на русском (родном) языке?
    В основном да (см пример https://hardella.com/docs/pru/exampl...linkning-leds/ ), но я продублирую на английский.

    Цитата Сообщение от murdemon Посмотреть сообщение
    а PRU ввиде таска к Codesys прикрутить нельзя? (по типу как функции прерывания 20mks) Или там язык совсем другой? или как этот процесс заливки PRU вообще проходит ?
    PRU выполняется на другом процессоре. С точки зрения Codesys, заливка PRU программы выглядит как "запись байт по определённому адресу".
    Программируется-то на языке ST, но с точки зрения КДС это выглядит как филькина грамота (т.е. как один массив байт)

    Постарался тут описать: https://hardella.com/docs/pru/codesys-setup/


    Ура, товарищи!
    Последний раз редактировалось Владимир Ситников; 19.12.2016 в 16:26.

  7. #257

    По умолчанию

    Возвращаясь к теме: в 1.6.0 я добавил блок управления ШД, который работает с постоянной длительностью цикла.
    Грубо говоря, если длительность PRU цикла 1 мкс, то импульс может быть либо 1 мкс, либо 2 мкс, либо 3 мкс, ну вы поняли?

    Казалось бы 1 мкс это довольно хорошо, но нет.
    Например, если нужна частота 50кГц, то это будет 20 1мкс циклов.
    21 цикл это 47619Гц, а 19 циклов это 52631 Гц.

    Чтобы в таких условиях выполнять "плавный разгон", блок делает размазывание ошибки.
    Если частота не попадает в "точное значение микросекунд", то блок выдаёт смесь (задержка становится то 19 то 20 мкс)

    С математической точки зрения, конечно, всё хорошо.


    Но интересно проверить работает ли это на практике
    Внимание, вопрос: кто-нибудь может проверить работу ШД на реальном ШД?
    На частотах до 10кГц вряд ли что-нибудь изменится, а вот на более высоких уже интереснее.

    PS. Инструкция по ШД программе тут: https://hardella.com/docs/pru/examples/step-motor/

  8. #258

    По умолчанию

    Запустил сайт, на котором буду размещать новые версии и документацию: https://hardella.com/

    Цитата Сообщение от Вольд Посмотреть сообщение
    Сам удивляюсь. Может В.Ситников меня в черный список включил.
    Если во всех браузерах не работает и браузеры обновлены, то проверьтесь на вирусы. Сайт работает под управлением cloudflare.com с их стандартными настройками безопасности. Если что-то не работает, то практически наверняка проблема на стороне браузера.

  9. #259

    По умолчанию

    Уважаемые форумчане, в связи с тем, что в данной теме идет обсуждение Hardella IDE, название будет переименовано.
    Посты по обсуждению Hardella IDE будут переноситься в данную тему.
    Прошу также обсуждение данной среды вести на сайте разработчика hardella.com на форуме.

  10. #260

    По умолчанию

    Цитата Сообщение от Евгений Багаев Посмотреть сообщение
    Уважаемые форумчане, в связи с тем, что в данной теме идет обсуждение Hardella IDE, название будет переименовано.
    Посты по обсуждению Hardella IDE будут переноситься в данную тему.
    Прошу также обсуждение данной среды вести на сайте разработчика hardella.com на форуме.
    Замечательно. Может теперь "цензоры" поумерят свой пыл. Это пример цивилизованного решения проблемы.

    Вот могут же в фирме "ОВЕН" когда захотят.
    Последний раз редактировалось Вольд; 21.12.2016 в 16:41.

Страница 26 из 135 ПерваяПервая ... 1624252627283676126 ... ПоследняяПоследняя

Ваши права

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