Об этом звере подробно написано здесь: http://www.owen.ru/forum/showthread.php?t=22169
В.Филоненко об этом торжественно объявил и дело встало. А народ ждет.
Последний раз редактировалось Newcomer; 16.03.2016 в 12:39.
Малость проясню ситуацию. Данный ПЛК берется для модернизации системы управления термоформовочной машины. В машине есть главный двигатель, который крутит редуктор, на выходном валу этого редуктора стоит энкодер. В зависимости от градуса поворота этого энкодера включаются всякие могрушки-хлопушки, а так же в определенный момент включается транспорт материала. Транспорт приводится в действие сервоприводом. С этого сервопривода можно снять "энкодерный" сигнал обратной связи, который и должен считать быстрый счетчик. Минимально я могу выставить "энкодер" в сервоприводе 512 имп\об двигателя. Частота вращения фиксирована и составляет 3000 об\мин. Сам цикл работы транспорта физически занимает 0.4-0.8 сек., за это время отматывается от 100 до 250 мм материала. Важно не абсолютное количество импульсов, а стабильность. Т.е. если стоит уставка, к примеру, мотать 231 мм за цикл, то каждый цикл он должен мотать 231-+0.5мм. Иначе имеем увеличение процента брака. В данный момент импульсы считает старый аппаратный специфический счетчик жутко буржуйского производства.
ЗЫ: Да, я знаю, что есть специальные инверторы с функцией позиционирования и управления по цифре. Но на такую дорогую модернизацию руководство не подпишется.
Последний раз редактировалось Sulfur; 16.03.2016 в 13:44.
(512 х 3000) / 60 = 25 600 Гц = 25,6 кГц. А вы писали про 50 кГц.
Вам надо поддерживать стабильным цикл работы транспорта или что-то другое ?
Последний раз редактировалось Newcomer; 16.03.2016 в 13:56.
0.5мм (на ошибку) / ( 231мм/0.8сек (скорость подачи) ) == 1.7мс
Иными словами, если отключение подачи ошибётся на 2мс, то за нужные вам 0.5мм выйдете.
Судя по тому, что использовать цикл менее 1мс не рекомендуют (со словами "отвалится ethernet и много чего ещё"), то варианта 2:
1) Присоединяться к клубу любителей PRU программирования. У быстрых выходов обещают время реакции 0.02мс, что в 100 раз точнее необходимого вам.
2) Понижать скорость.
3) Использовать стохастическое управление: подавать в программе отключающий сигнал "чуть раньше", чтобы в реальности он происходил "тогда, когда нужно" с учётом задержек транзистора реального ПЛК. По РЭ обещают, что не больше 5мс, и думаю, задержка срабатывания конкретного выхода конкретного экземпляра ПЛК должна быть более-менее стабильной.
В обновленном ПЛК110 можно организовать проверку состояния счетчика, например, каждые 40 мкс (Timer(20mks)). За 40 мкс энкодер выдает 2 импульса. В ПЛК110 есть быстрые выхода, которые срабатывают за 20 мкс. Если отсчитывать на 2...3 импульса меньше положенного (действие с упреждением), то все будет чики-пики.
Последний раз редактировалось Newcomer; 16.03.2016 в 14:17.
Все критичные по времени действия надо делать в прерывающей подпрограмме, которая стабильно вызывается каждые 40 мкс. Все прочие действия можно делать в основном цикле.
PRU - это вещь в себе. Пока В.Филоненко доведет это дело до ума пройдет мноооооооооооого времени. Будет куча всяких прошивок-перепрошивок и прочей головной боли.
Последний раз редактировалось Newcomer; 16.03.2016 в 14:41.