С другой стороны: USB хватит для того, чтобы подключиться КСД'ом и залить PRU0.prg?
Или нужно RS232/Ethernet провод искать?
1. Для перезаливки модуля ПРУ нужен физический доступ к контроллеру - грубо говоря питание передергивать, ну или рычаг переключать.
2. Дополнительные фокусы возникнут при отладке фазировок сигналов - на драйвер нужно подавать сигналы в вполне определенной последовательности, иначе не будут точно отрабатываться скажем импульсы при смене знака - поэтому весьма рекомендуется осциллограф - двухканальный, желательно с памятью - кроме того он снимет кучу вопросов по частоте.
3. Неплохо бы разобраться пользователям что они называют ШД и что для него надо, и что такое сервопривод, и в чем там особенности. При похожести интерфейса (STEP/DIR) там идеологические отличия.
Ну и главное: то что делает Ситников - он делает для себя!! - он "продает" свою среду разработки, а не "пилит" вам модули на халяву! Эти модули вы не сможете модифицировать без его среды и понимания ее устройства, а он, при всех достоинствах, не знает устройства ПЛК, поэтому и эффективно поддержать его не сможет. Из того что я здесь вижу - его платформа - "малинка" (Raspberry) - вот там его подход вполне оправдан.
Овен, по моему мнению, не будет поддерживать эту штуку - потому что, как я уже писал, она противоречит концепции ПЛК в принципе - в ней не реализован стабильный цикл (и даже наоборот - время цикла спецом меняется в угоду алгоритму) и возможность параллельного, независимого исполнения нескольких модулей. Поднимался уже вопрос, а куда собственно делись быстрые входи и как их получить обратно... ПЛК110 - это все же не АРДУИНА и не универсальный компьютер.
В связи с этим спорным заявлением возникли такие вопросы к В.Ситникову:
1) от чего в ФБ осуществляется синхронизация при формировании выходного сигнала;
2) нет ли джиттера частоты (фазовое дрожание);
3) стабильна ли частота на дискретном выходе ПЛК.
Для проверки всего этого нужен осциллограф. Может ли кто-то из форумчан это проверить ?
Спасение утопающих - дело рук самих утопающих.Надеяться на то, что специалисты фирмы "ОВЕН" в обозримом будущем сделают свой канонический ФБ для управления ШД не приходится. Надо общими усилиями форума решить эту задачу. Есть В.Ситников, который сделал этот самый ФБ. У В.Ситникова кроме ПЛК110[М02] больше ничего нет. Но нашлись уже два человека, у которых есть железо для стендовых испытаний. Есть ли еще заинтересованные лица, готовые подключиться к процессу. Я этим заняться не могу, так как в настоящее время не имею всего необходимого, но могу выложить схему простейшего стенда для проведения испытаний. ШД и драйвер ШД могут быть другими, это не суть важно. При проведении испытаний очень желательно иметь цифровой осциллограф или цифровой частотомер.
Последний раз редактировалось Newcomer; 02.10.2016 в 15:15.
От тактовой частоты PRU.
TI заявляет, что все команды выполняются за 1 такт (работа с памятью дольше, но тоже, якобы, гарантирована длительность).
В процессоре есть регистр -- счётчик выполненных команд. По сути, он и отражает текущее время в виде "количества выполненных тактов".
Если этот регистр врёт, то, конечно, беда-печаль.
Логика моей PRU программы следующая:
1) Вычисляем "какая должна быть длина импульса" <-- это вычисление может занимать разное время, но оно всегда быстрее, чем нужная длина импульса
2) Ждём пока счётчик выполненных команд накрутится до нужного значения <-- в этом же ожидании происходит обмен host-pru-host
3) Обнуляем счётчик выполненных команд (он, собака, перестаёт работать секунд через 20-30 при достижении FFffFFff, поэтому приходится постоянно обнулять)
4) Пишем выход
В итоге, запись выходов происходит в ровно запланированное время.
Тов. Филоненко, конечно, пишет противоположное, но, полагаю, он либо не читал код моей программы, либо читал невнимательно.
Спецификация TI на длительность работы команд памяти немного мутная, поэтому возможны погрешности на 2-4 такта, но это всё ерунда (+-0.03 мкс), и эти погрешности плавать не будут. Да и сами команды работы с памятью редко используются -- в основном мы "сверяемся со счётчиком команд", а он, надеюсь, показывает правду.
И спецификация умалчивает что будет, если обнулить счётчик выполненных команд (учтёт ли он команду обнуления -- фиг знает). Там говорится, что перед обнулением его нужно выключать, но это муторно, и, судя по опытам, работает и без "отключения".
Я показывал насколько стабильна частота импульсов на выходе: http://www.owen.ru/forum/showthread....l=1#post219960
По программной части -- частота абсолютно стабильная и полностью предсказуемая.
Надо фронт каждые 200 тактов --- будет каждые 200 тактов.
Плавает ли аппаратная частота (например, вместо кварца неонка какая-нибудь) -- тут без понятия.
Про "неконцептуальность и запретность ОВЕНом" смены "цикла PRU по ходу работы" процитирую классику:
мне кажется Филоненко не противоположное Вам говорил, а советовал запись входов сделать в начале программы, а всю обработку делать после для следующего такта, так было бы больше гарантий стабильности, не получается верить что у со процессора нет более высоких прерываний, которые внесут незначительную задержку перед записью
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Креститься надо когда кажется. Я гарантирую задержку с точностью до такта PRU. Куда уж точнее? Какая такая волшебная технология сделает "большую гарантию стабильности"?
"не получается верить". Ещё раз: не хотите учиться -- молчите и слушайте умных людей.
Я спецификацию TI AM1808 PRU читал, и знаю, что прерывания в PRU приходят установкой "флага в спец регистре". Никакого насильного перехода на обработчик прерывания там нет. Если PRUграмма не следит за спецфлагом, то она запросто может игнорировать "прерывание".
Вот что писал Владислав:
Владислав пишет, что "возможен сильные джиттер", а я утверждаю, что программа задержку выдерживает ровно, и никакого дрожания там не будет.
Владислав не прав.
Мои утверждения подкрепляются эмулятором PRU. Найдётся осциллограф -- измерим и осциллографом.
Последний раз редактировалось Владимир Ситников; 01.10.2016 в 14:30.
С разгоном ШД в ФБ проблемы. Постоянное ускорение вероятно не катит.
Я подозреваю, что частота импульсов в ФБ генерируется не верно. Может синхронизироваться не от счетчика команд, а по прерываниям таймера. Зарядить таймер на 1мкс и формировать и отсчитывать периоды. Тогда все будет железно.
Что касается возможного джиттера, то он не страшен. ШД небольшое колебание фазы импульсов просто не заметит.
Может сделать два ФБ, один для ШД, другой для сервопривода. Дело в том, что ШД более капризная вещь, его труднее разогнать.
Последний раз редактировалось Newcomer; 02.10.2016 в 13:45.