Страница 113 из 117 ПерваяПервая ... 1363103111112113114115 ... ПоследняяПоследняя
Показано с 1,121 по 1,130 из 1349

Тема: Hardella IDE

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

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

    По умолчанию

    Lexey-ru
    можно 4 шд запустить.
    Да, можно. Но только в одно направление. Харделле доступно только четыре быстрых выхода. Для полноценного командования четырмя ШД требуется минимум восемь. Да, можно в качестве ДИР использовать обычные выходы, однако следует принимать во внимание возможный лаг между работой обычных и быстрых выходов. Например начинать махать Степом после некоей задержки после смены Дира.

  2. #2

    По умолчанию

    Мне конечно же необходимо крутить в обои направления.
    Можно дополнительные модули расширения установить высокоскоростные. В таком случае не будет дефицита с количеством быстрых выходов.

  3. #3

    По умолчанию

    Цитата Сообщение от Lexey-ru Посмотреть сообщение
    Мне конечно же необходимо крутить в обои направления.
    Можно дополнительные модули расширения установить высокоскоростные. В таком случае не будет дефицита с количеством быстрых выходов.
    Правильно. Модуль называется ПЛК110-М02

    На других модулях ОВЕН (вроде как) нет возможности точного управления количеством импульсов.

  4. #4

    По умолчанию

    Я имел в виду модули расширения :
    https://owen.ru/product/moduli_diskr...rfejsom_rs_485

  5. #5

    По умолчанию

    Цитата Сообщение от Lexey-ru Посмотреть сообщение
    Я имел в виду модули расширения :
    https://owen.ru/product/moduli_diskr...rfejsom_rs_485
    Это я понимаю, но чтобы на выходе МУ что-либо поменялось оно должно получить команду по modbus.
    Ну и в МУ нет возможности "генерировать указанное количество импульсов".

    В целом, конечно, можно управлять ШД в режиме ШИМ выхода, но точность позиционировать будет плавать (т.к. сигналы по modbus ходят непонятно как)

  6. #6

    По умолчанию частотомер

    Доброго времени!
    Нужен частотомер на быстрых вх. ПЛК110М02. (от 100 до 10100 Гц)
    Решил что надо писать прогу для PRU
    но раньше ничего подобного на таких языках не делал.
    Наваял вот что:
    А как из харделлы скопировать код? )))
    прикрепил проект.
    если расширение сменить на msd то проект откроется в Hardella?

    Идея такова: измеряем длительность паузы между импульсами. И исходя из полученного значения высчитываем частоту.
    Если считать что время цикла 1 мкСек.

    Но у меня на втором канале IDE подсвечивает переменные красным.
    Его, 2 к***** я просто скопировал. И не могу понять что не так сделал.
    Изображения Изображения
    Вложения Вложения
    Последний раз редактировалось TV13M; 06.07.2020 в 10:03.

  7. #7

    По умолчанию

    Цитата Сообщение от TV13M Посмотреть сообщение
    Доброго времени!
    Нужен частотомер на быстрых вх. ПЛК110М02. (от 100 до 10100 Гц)
    Решил что надо писать прогу для PRU
    но раньше ничего подобного на таких языках не делал.
    Наваял вот что:
    Это плюс. Вроде, в ПЛК110М02 быстрые входы могут работать в режиме счётчика.
    Тогда можно в обычной КДС программе считывать показатель этого счётчика, смотреть сколько оно намотало "за секунду" и усреднять, если нужно.

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

    Я не к тому, что Hardella не работает, а, скорее, к тому, что простой частотомер на fast counter'ах (из обычного КДС) может оказаться проще и понятнее.
    Так сказать, не стрелять из пушки по воробьям.


    Цитата Сообщение от TV13M Посмотреть сообщение
    А как из харделлы скопировать код? )))
    Да, это непросто. Либо выделять всё и ctrl+c/v, либо папку с проектом сохранить в zip архив.


    Цитата Сообщение от TV13M Посмотреть сообщение
    Но у меня на втором канале IDE подсвечивает переменные красным.
    Переменные объявлены? Нет проблем в духе "русская буква C в названии переменной"?
    По-хорошему, если переменные объявлены, то ctrl+пробел в Hardella должно показывать автодополнение и там эти переменные должны быть.
    Если перейти на красную переменную (напр CounterCH2), и нажать ctrl+пробел, то что-нибудь будет?

  8. #8

    По умолчанию

    ctrl+пробел = успех.
    Хотя переменные объявлены... ну да ладно.
    В идеале я пытаюсь добавить управление быстрыми выходами. по достижении заданной частоты. (материал сыпится, время идёт... С кодесис тут наверняка будут мСек плясать не предсказуемо)
    ctrl+c/v не получается. Перемешиваются строки...
    PROGRAM FAST_COUNTER
    variables:
    @Export
    @Export
    inputs : FAST_INPUTS;
    CounterCH1 : WORD; (* счётчик для первого канала *)
    CounterCH2 : WORD; (* счётчик для второго канала *)
    StartCounter1 : BOOL; (* начался отсчёт по первому каналу *)
    StartCounter2 : BOOL; (* начался отсчёт по 2 каналу *)

    body:
    (* первый канал *)
    (* проверка флага начатого отсчёта *)
    IF StartCounter1 THEN (* если флаг установлен *)
    IF R_TRIG(CLK := inputs.in1).Q THEN (* ждём передний фронт второго импульса *)
    (* если импульс пришёл *)
    counter1 := CounterCH1; (* записываем значение на выход *)
    CounterCH1 := 0; (* обнуляем счётчик *)
    (* иначе, если флаг начала установлен, но пока нет переднего фронта второго импульса *)
    ELSE
    CounterCH1 := CounterCH1 + 1; (* считаем циклы *)
    END_IF;
    (* иначе, если флаг первого импульса не установлен *)
    ELSE
    IF F_TRIG(CLK := inputs.in1).Q THEN (* ждём заднего фронта первого импульса *)
    StartCounter1 := TRUE; (* если импульс пришёл, устанавливаем флаг начала счёта *)
    CounterCH1 := CounterCH1 + 1; (* и начинаем счёт циклов *)
    END_IF;
    END_IF;
    (* второй канал *)
    (* проверка флага начатого отсчёта *)
    IF StartCounter2 THEN (* если флаг установлен *)
    IF R_TRIG(CLK := inputs.in2).Q THEN (* ждём передний фронт второго импульса *)
    (* если импульс пришёл *)
    counter2 := CounterCH2; (* записываем значение на выход *)
    CounterCH2 := 0; (* обнуляем счётчик *)
    (* иначе, если флаг начала установлен, но пока нет переднего фронта второго импульса *)
    ELSE
    CounterCH2 := CounterCH2 + 1; (* считаем циклы *)
    END_IF;
    (* иначе, если флаг первого импульса не установлен *)
    ELSE
    IF F_TRIG(CLK := inputs.in2).Q THEN (* ждём заднего фронта первого импульса *)
    StartCounter2 := TRUE; (* если импульс пришёл, устанавливаем флаг начала счёта *)
    CounterCH2 := CounterCH2 + 1; (* и начинаем счёт циклов *)
    END_IF;
    END_IF;

    END_PROGRAM
    output counter1 : WORD; (* This variable will be visible in CoDeSys program *) output counter2 : WORD; (* период между импульсами в мкСек Канал ном.2 *)
    Хотя вроде ничего. А в блокнот, - так безобразие....
    Последний раз редактировалось TV13M; 06.07.2020 в 10:34.

  9. #9

    По умолчанию

    Цитата Сообщение от TV13M Посмотреть сообщение
    В идеале я пытаюсь добавить управление быстрыми выходами. по достижении заданной частоты.
    Да, если управление, тогда действительно можно и в Hardella сделать PRU программу.

  10. #10

    По умолчанию

    Подскажите пожалуйста:
    Если я пишу программу для получения информации с быстрых входов (1 и 2) и воздействия на быстрые выходы (с 1-го по 4-ый), мне нужно писать 2 программы? Одна для PRU0, вторая для PRU1. Так?
    Где почитать как взаимодействовать между PRU0 и PRU1?. (то есть, - если из пру0 я читаю входы и в зависимости от полученного результата воздействую на выходы 3 и 4, то как посылать данные о текущем состоянии входов на пру1?)

    Такая программа для PRU1 корректа?
    IF counter1 = FinalValueCH1 AND counter2 = FinalValueCH2 THEN
    portion_ready := TRUE;
    CASE CurrentOutputs OF
    1: FAST_OUTPUTS(out1 := FALSE);
    2: FAST_OUTPUTS(out2 := FALSE);
    3: FAST_OUTPUTS(out3 := FALSE);
    4: FAST_OUTPUTS(out4 := FALSE);
    END_CASE;
    ELSE
    CASE CurrentOutputs OF
    1: FAST_OUTPUTS(out1 := TRUE);
    2: FAST_OUTPUTS(out2 := TRUE);
    3: FAST_OUTPUTS(out3 := TRUE);
    4: FAST_OUTPUTS(out4 := TRUE);
    END_CASE;
    END_IF;
    Последний раз редактировалось TV13M; 07.07.2020 в 11:13.

Страница 113 из 117 ПерваяПервая ... 1363103111112113114115 ... ПоследняяПоследняя

Ваши права

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