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

Тема: Hardella IDE

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

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

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    наверное в первом случае просто присваиваете одной переменной выход ПОУ, а во втором выполняете ПОУ
    Да, верно. Переменные обновляются только после вызова. Сами по себе, разумеется, не обновляются.

    Т.е. такой вариант должен работать:

    Код:
    ENCODER_AND_COUNTER_Pru0MemoryTransfer(
    ...
    );
    Enc:=ENCODER_AND_COUNTER_Pru0MemoryTransfer.PRU_ENCOER_COUNTER_Enc_Position;
    Последний раз редактировалось Владимир Ситников; 18.01.2017 в 13:23.

  2. #2

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Да, верно. Переменные обновляются только после вызова. Сами по себе, разумеется, не обновляются.

    Т.е. такой вариант должен работать:

    ENCODER_AND_COUNTER_Pru0MemoryTransfer(
    ...
    );
    Enc:=ENCODER_AND_COUNTER_Pru0MemoryTransfer.PRU_EN COER_COUNTER_Enc_Position;
    Владимир, а у меня та же самая история ?

    Так не работает.

    SteppersConfig_Pru0MemoryTransfer(
    STEPPER2_Enc_PRU0_dir := TRUE,
    STEPPER2_Enc_PRU0_stepper_accel_ramp := 2000,
    STEPPER2_Enc_PRU0_stepper_decel_ramp := 2000,
    STEPPER2_Enc_PRU0_stepper_max_speed := 20000,
    STEPPER2_Enc_PRU0_stepper_min_speed := 0,
    STEPPER2_Enc_PRU0_stepper_quantity := 16#FFFFFFFF,
    STEPPER2_Enc_PRU0_stepper_enable := TRUE
    );
    ENC := SteppersConfig_Pru0MemoryTransfer.STEPPER2_Enc_PRU 0_encoder_position;


    Если сделать так, то энкодер будет опрашиваться ?

    SteppersConfig_Pru0MemoryTransfer(
    STEPPER2_Enc_PRU0_dir := TRUE,
    STEPPER2_Enc_PRU0_stepper_accel_ramp := 2000,
    STEPPER2_Enc_PRU0_stepper_decel_ramp := 2000,
    STEPPER2_Enc_PRU0_stepper_max_speed := 20000,
    STEPPER2_Enc_PRU0_stepper_min_speed := 0,
    STEPPER2_Enc_PRU0_stepper_quantity := 16#FFFFFFFF,
    STEPPER2_Enc_PRU0_encoder_position => ENC,
    STEPPER2_Enc_PRU0_stepper_enable := TRUE
    );
    Последний раз редактировалось Newcomer; 18.01.2017 в 13:34.

  3. #3

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    Если сделать так, то энкодер будет опрашиваться ?
    По-моему, это эквивалентные варианты записи и работать они должны одинаково.

    Если работают по-разному, значит я чего-то не понимаю в ST (что не исключено).

  4. #4
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,405

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Да, верно. Переменные обновляются только после вызова. Сами по себе, разумеется, не обновляются.

    Т.е. такой вариант должен работать:

    Код:
    ENCODER_AND_COUNTER_Pru0MemoryTransfer(
    ...
    );
    Enc:=ENCODER_AND_COUNTER_Pru0MemoryTransfer.PRU_ENCOER_COUNTER_Enc_Position;
    Насколько я понял, нужно в начале цикла ПЛЦ_ПРГ сделать вызов ПРУ-ПОУ (ENCODER_AND_COUNTER_Pru0MemoryTransfer в моем случае) с пустыми параметрами, и после этого должно заработать непосредственное обращение к любой переменной ПРУ-ПОУ?

    В принципе, то, как сейчас работает устраивает. Однако для большей понятности программы (в первую очередь для себя, ибо "с памятью моей что-то стало") хотелось бы иметь возможность обращаться к нужным переменным обмена из любого места ПЛЦ-ПРГ.

  5. #5

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Насколько я понял, нужно в начале цикла ПЛЦ_ПРГ сделать вызов ПРУ-ПОУ (ENCODER_AND_COUNTER_Pru0MemoryTransfer в моем случае) с пустыми параметрами, и после этого должно заработать непосредственное обращение к любой переменной ПРУ-ПОУ?
    Да, можно так.



    Цитата Сообщение от Sulfur Посмотреть сообщение
    В принципе, то, как сейчас работает устраивает. Однако для большей понятности программы (в первую очередь для себя, ибо "с памятью моей что-то стало") хотелось бы иметь возможность обращаться к нужным переменным обмена из любого места ПЛЦ-ПРГ.
    Как вариант, можно добавить в начало и в конец вызовы MemoryTransfer без параметров (как бы для чтения и для записи).
    А между делом (в любом месте программы обращаться к ENCODER_AND_COUNTER_Pru0MemoryTransfer.PRU_ENCOER_ COUNTER_Enc_Position и подобным)

    Так устраивает? Или я чего-то не понял?

  6. #6
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,405

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Да, можно так.
    Буду пробовать.

Ваши права

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