Добро пожаловать на Форум по станкам с ЧПУ!

Настраиваем контроллер to_pci.

Тема в разделе "Программы исполняющие G-код", создана пользователем gunilla, 5 окт 2017.

  1. gunilla

    gunilla Member

    Регистрация:
    4 май 2012
    Сообщения:
    563
    Симпатии:
    0
    В связи с тем, что были проданы 2 тестовых комплекта контроллеров,


    будет не лишним создать тему для обсуждения подключения и других вопросов, связанных с его применением.



    А тут собственно применение контроллера.


    Итак для того что бы LinuxCNC увидел контроллер необходимы 3 вещи:
    1. Нужен сам контроллер. Его нужно вставить в PCI слот.:)
    2. Необходим драйвер, поддерживающий данный контроллер.
    3. В hal-файле нужно подключить модуль этого драйвера и функцию обновления значений.

    Если это всё правильно сделать, то в меню Linux CNC СТАНОК/Показать установки HAL/Pins
    Должно появиться устройство и те порты и пины которые в него заложены.

    Итак если вы являетесь счастливым обладателем контроллера, то первый пункт есть. Теперь драйвер.

    В текущей версии полноценно доступны 32-in, 16-out, 5-encoder, 5-PWM, WD.

    Новый драйвер, в нём добавлены инверсные входы для удобства.

    Для того что бы драйвер использовать нужно его скачать(ссылка выше), распаковать и скопировать, ну для простоты в папку /home.

    Затем его, при помощи программы halcompile скомпилировать и установить в систему:
    Откройте терминал и наберите следующую команду
    Код:
    sudo halcompile --install to_pci.c
    У кого то может что то не установиться, поэтому вот на этом дистрибутиве я попробовал установить как описал и всё работает.
    http://linuxcnc.org/docs/2.7/html/getti ... uxcnc.html

    Третий пункт: в HAL файле прописать 2 строки:
    Код:
    loadrt to_pci
    addf to_pci.1.update                servo-thread
    
    Быстро подключить контроллер и проверить его помогут конфигурационные файлы по ссылке ниже.



    Потихоньку готовим описание:



    Схемы дочерних плат, для желающих по паять



    На данный момент платы соединяются стандартными FDD шлейфами(ранее их нужно было переделывать)

    На все дочерние платы заводиться питание +5в отдельно от компьютерного блока питания.
    Более подробно в 133 посте этой темы на 7-й странице.

    Входы енкодеров -5в(дифференциальные и можно подключить как не дифференциальные), в последней версии платы IO можно
    на входы подавать 24в, до этого было не больше 12в(фото последней версии платы можно увидеть в 1 посте темы по продаже).

    Инструкциями по копированию файла в следующем посте(№2) пренебречь!!!!!!!!
    [​IMG]
     
  2. gunilla

    gunilla Member

    Регистрация:
    4 май 2012
    Сообщения:
    563
    Симпатии:
    0
    Я думаю с этим пунктиком могут быть проблемы.(Я сам не шибко шарю в LINUX).
    У меня допустим(скорее всего и у всех) эта папка /usr/realtime-2.6..(здесь цифры разные могут быть)-rtai/modules/linuxcnc/
    Проверьте, есть ли такая папка.И в ней куча файлов с расширением .ko

    Копируете файл to_pci.ko в директорию /home

    Открываете командную строку и выполняете команду sudo cp to_pci.ko /usr/realtime-2.6..(здесь цифры разные могут быть)-rtai/modules/linuxcnc/
     
  3. Arhi

    Arhi Active Member

    Регистрация:
    7 май 2012
    Сообщения:
    10.435
    Симпатии:
    0
    Т.е. драйвер поставляется без исходников?
    Я надеюсь ты хорошо представляешь последствия такого варианта, учитывая что LinuxCNC распостраняется под GPL? Обрати внимание, что даже не под LGPL...
     
  4. gunilla

    gunilla Member

    Регистрация:
    4 май 2012
    Сообщения:
    563
    Симпатии:
    0
    Исходники без проблем!!!!
     
  5. rw666

    rw666 Active Member

    Регистрация:
    7 май 2012
    Сообщения:
    20.725
    Симпатии:
    2
    А можно вкратце какие могут быть проблемы?
     
  6. gunilla

    gunilla Member

    Регистрация:
    4 май 2012
    Сообщения:
    563
    Симпатии:
    0
    Исходник в другую тему выложил. В этой теме не место исходникам - здесь тема по настройке.
     
  7. gunilla

    gunilla Member

    Регистрация:
    4 май 2012
    Сообщения:
    563
    Симпатии:
    0
    Да кстати, на дискретные входы(которые на плате io) можно подавать питание не только 5в, но и 12в. Больше не стоит!!!!!!!


    Я вот не проверял может ли PCI плата воткнуться к вверх ногами, оказывается может.
    Поэтому плату нужно вставлять вот так
    [​IMG]
     
  8. korol

    korol Active Member

    Регистрация:
    19 янв 2013
    Сообщения:
    1.626
    Симпатии:
    0
    Зря... Вообще промышленный стандарт - 24, но держать должны и больше...
     
  9. gunilla

    gunilla Member

    Регистрация:
    4 май 2012
    Сообщения:
    563
    Симпатии:
    0
    Да стандарт, не стандарт. Мне кажется сейчас вообще всем плевать.
    Вон пожалуйста mesa 7i77 дохлых у народа уже много!!!!! Типа подключили к 24 вольтам!!!!!
    Ну да ладно лирика.

    Можно и 24 вольта, нужно только резисторы поменять тогда!!!!!!!! Стоят на 1Ком 0.25вт - при 24 вольтах я думаю перегреются, поэтому ну хотя бы 2.7к поставить и будет 24 вольта.
     
  10. korol

    korol Active Member

    Регистрация:
    19 янв 2013
    Сообщения:
    1.626
    Симпатии:
    0
    Большинство промышленных PLC просто имеют самые ходовые I/O как раз на 24 вольта, потому и предложил, хотя тут на вкус и цвет, как говорится...
     
  11. Arhi

    Arhi Active Member

    Регистрация:
    7 май 2012
    Сообщения:
    10.435
    Симпатии:
    0
    Без исходников и полного описания "программирования" платы (API) оно никогда не войдёт в "официально поддерживаемые", а без этого оно никому нафик не надо.
     
  12. gunilla

    gunilla Member

    Регистрация:
    4 май 2012
    Сообщения:
    563
    Симпатии:
    0
    В любом случае в драйвере ничего нового, кроме конкретного распределения адресов данных в устройстве!!!
    Хотя ни в одном драйвере встроенных в linuxCNC я так и не нашёл алгоритм поиска PCI устройства. Даже в HM2. !!!
    Что то вразумительное есть в исходниках mesaflash.
     
  13. egor45

    egor45 Active Member

    Регистрация:
    19 янв 2013
    Сообщения:
    3.220
    Симпатии:
    0
    gunilla, спор между вами и Arhi очень просто, вот вы пишите:
    Какието директории, ko непонятные, помещай сюда, копируй туда.
    И это вы ещё про бинарную совместимость драйвера и ядра не писали (ну может вы наивно об этом не знаете, ну да Arhi
    счас понараскажет про разные способы получения kernel panic)

    А ведь поставь вы драйвер в виде исходника оформленного ввиде *.comp файла, все сложности свелись бы к одному:
    Код:
    sudo halcompile --install ./to_pci.comp
    И ни каких лишних рассуждений.
     
  14. gunilla

    gunilla Member

    Регистрация:
    4 май 2012
    Сообщения:
    563
    Симпатии:
    0
    И вот опять...
    1.Итак если честно, то я даже не знаю что такое comp файл. Буду признателен если ткнете носом где почитать про это. И как это связанно с сишным файлом.
    Я конечно по названию могу себе представить что это исходник на языке, который понимает HALCOMPAIL, но это догадки, а не знания...
    Точнее не шарю совсем.....
    2. Я сам порядком попотел, когда обнаружил, что HALCOMPAIL в моей сборке отсутствует, и потребовалось массу времени что бы его поставить.
    Я даже не смогу объяснить человеку как его установить(это на случай если у него в сборке тоже нет HALCOMPAIL), потому что сам не шарю....
    А вы говорите проще......
    А для начала надо ещё комп с линуксом подключить к интернету через МТС-й свисток(у сергея тоже свисток). Я думаю тут тоже придётся попотеть!!!!

    Ну и какой вариант проще???????????????
    Мне вот допустим на плисине просто что нибудь забацать, вам я думаю это покажется тоже непростой задачей!!!!! Правда?
    Да может на его Ядре не пойдёт этот драйвер, ну тогда я попрошу что бы он установил сборку, на которой я компилировал драйвер( 2.6 ). А после того как всё у него заработает будем дальше думать как лучше.
    Буду признателен за помощь.
    Если можно egor45 , ответ в параллельной теме.http://www.cnc-club.ru/forum/viewtopic. ... &start=160
     
  15. egor45

    egor45 Active Member

    Регистрация:
    19 янв 2013
    Сообщения:
    3.220
    Симпатии:
    0
    Где прочитать не знаю, я это просто нащёл когда захотел посмотреть, как сделан компонент time.
    Вот ссылка на его код: https://github.com/LinuxCNC/linuxcnc/bl ... /time.comp
    Как можно видеть, он оформлен в виде comp файла.
    Как мне потом пояснили, может даже сам Arhi, написан он на языке С, а вид он такой имеет благодаря всяким макросам разработанными авторами формата.
    И вообще говоря утилита halcompile умеет работать и нормальными С файлами, собственно они есть промежуточное звено
    компиляции comp файла в бинарник и их можно получить запустив halcompile с опцией --preprocess.
    Впрочем в мануальнике LinuxCNC этой утилите и правилам написания файлов для неё посвещена целая страница,
    но её содержимое мне пока не понятно.
    Вот вам на эту страницу ссылка, надеюсь что вы как более опытный человек сможете с ней разобраться.
    http://linuxcnc.org/docs/2.7/html/hal/comp.html
    Впрочем, если не разберётесь не страшно, я в нужном для себя объёме освоил comp формат методом научного тыка без чтения подробных мануальников.
    Хотя конечно потом их хотя бы посмотрел.

    Вот ещё линк, может пригодится:
    http://linuxcnc.org/docs/2.7/html/hal/halmodule.html
     
  16. egor45

    egor45 Active Member

    Регистрация:
    19 янв 2013
    Сообщения:
    3.220
    Симпатии:
    0
    Это надо было постараться, halcompile входит в поставку LinuxCNC как одна из стандартных утилит.
    Хотя может он находится в отдельном -dev пакете?
    Как ставить LinuxCNC можно примерно почитать здесь, мануальник, как и все мои проекты брошен на пол дороге, но даже в таком виде собирает подписчиков,
    по этому видимо людям полезен и надеюсь поможет и вам.
    https://vk.com/topic-77252290_30466944
     
  17. egor45

    egor45 Active Member

    Регистрация:
    19 янв 2013
    Сообщения:
    3.220
    Симпатии:
    0
    Вот чтобы этого не было, драйвер в исходниках поставлять и нужно.
    Вообще нормально оформленные исходники ставятся буквально вот так(ну конечно есть вариации, но от вкусов, а не необходимости)
    make clean
    ./configur
    make compile
    sudo make install
    И пользователи линукса, да и винды потихоньку привыкают к такому.
    Ещё как пример можно привести BlenderCAM, который просто закачивается из гита в готовом виде так как написан на питоне.
    И всё это рядовые пользователи умеют делать.
     
  18. gunilla

    gunilla Member

    Регистрация:
    4 май 2012
    Сообщения:
    563
    Симпатии:
    0
    По конструкции:
    Линии связи Main и дочек


    Плата IO:


    На плате два независимых узла _ Входы и выходы.
    На плату подаётся стабилизированное питание +5в.
    Входы: 32 опторазвязанных входа переключаются по 2 группы в 16 каналов мультиплексорами 74HC257.
    На входы можно подавать напряжение от 4в до 12в.

    Выходы: 8 опторазвязанных каналов с транзисторными выходами (общий коллектор). У последнего канала вывод AGND не связан с остальными.(при необходимости замкнуть)
    8 не опторазвязанных каналов с TTL выходом.
    [​IMG]
    [​IMG]
     
  19. gunilla

    gunilla Member

    Регистрация:
    4 май 2012
    Сообщения:
    563
    Симпатии:
    0
    Плата PWM:


    На плате разведено 5 каналов фильтров низких частот 4-го порядка.
    Частота шим 12.5Кгц.
    сигналы UP DOWN приходят с платы MAIN, проходят через элемент И, затем подаются на фильтр.
    Питание +-15в берется с интегрального преобразователя 5to+-15.
    Его мощность 2вт, поэтому ток нагрузки(входной ток привода) должен быть в среднем не более 5ма.
    [​IMG]
     
  20. gunilla

    gunilla Member

    Регистрация:
    4 май 2012
    Сообщения:
    563
    Симпатии:
    0
    Плата encoders:


    Ну тут просто на каждый енкодер по три типовых дифференциальных усилителей шины.
    У всех разъёмов энкодеров 8-контакт(Upp) соеденены вместе.
    [​IMG]