От слов, к делу.Перелопатил кучу информации (по этому, пропал на пару дней), и вот результат – черновой вариант, требований
и некоторых особенностей реализации NC-платы, реализуемой в нашем проекте.
Дополняйте, подправляйте, критикуйте (только конструктивно и с предложениями).*
Три одновременно интерполируемые оси.
*
Точность 0,001 мм (вроде, как бы, столько и не надо, но думаю для современной элементной базы, это абсолютно не проблема)
*
Диапазон перемещений +/- 10 метров. Может, кому и покажется, что 10 меторв многовато,
но периодически люди делают станки даже по 2-3 метра, так, что ограничение вполне разумное.
*
Поддержка стандартного G-кода*
Поддержка управления STEP/DIR (либо CW/CCW). Можно еще добавить аналоговое управление
сервоприводом, но это значительно усложнит реализацию. Кому нужен будет сервопривод
будут использовать сервопривод с шаговым интерфейсом.
*
Частота генерации шагов - мин. 50 кГц, а лучше, до 2-ух МГц, для шаговиков 2 МГц не актуально,
а вот если подключать сервоприводы с импульсных интерфейсом, то это очень актуально. По этому,
думаю надо сразу закладывать 2-3 МГц, потому что, потом переделывать проект наверное уже не получится,
а делать сразу несколько конфигураций, это тоже нереально.
*
Автоматическая смена инструмента (АСИ) – можно и обойтись. Да, это вещь крайне полезная,
но кто замахнулся на смену инструмента (с их непомерными ценами), то думаю,
тот возьмет готовую NC-плату промышленного класса,
и ему наше изделие не интересно. Но если получится реализовать АСИ, то будет очень не плохо.
*
Предпросмотр кадров (технология Look-ahead) У взрослых стоек, глубина предпросмотра до тысячи кадров, думаю, это сложно будет реализовать.
Для хоббистов наверное хватит даже 50-100 кадров.
Вообще отказываться от предпросмотра однозначно нельзя, это принципиальный момент,
т.к. на многих видах обработки используемых хоббистами (например 2D-гравировка, 3D-фрезеровка)
система без поддержки этой технологии, будет давать очень плохие результаты, при этом, значительно падает скорость обработки,
будут вибрации в движении, а учитывая, обычно низкое качество комплектующих станков хобби-уровня,
это будет приводить к значительному снижению качества обработки и к периодической поломке инструмента.
С этим столкнулись все юзеры TurboCNC, не смотря на то, что TurboCNC крайне стабильная система,
можно даже сказать что самая стабильная из всех используемых хоббистами, но отсутствие предпросмотра,
для многих перечеркивает эту стабильность, и многие юзеры вынуждены мириться со снижением надежности и скрепя сердце,
выбирают другие решения у которых есть некоторый предпросмотр. Т.е. еще раз повторю, предпросмотр обязателен,
и сегодня, без него, даже нет смысла делать такой проект.
(А если получится реализовать предпросмотр не 50-100 кадров, а тысячу, то это будет просто супер!)
*
PLC-контроллер, присутствует на всех стойках промышленного класса.
Весчь крайне полезная, но без неё для хобби можно обойтись, но в таком случае,
сразу в прошивке NC-платы должны быть заложены типовые функции PLC-контроллера:
поиск нулевой точки станка, обработка аварийных ситуаций и т.п.
*
В качестве GUI используется PC-компьютер. В таком случае не предъявляется никаких
претензий к его RT-характеристикам, и для такой задачи, подойдет совершенно любой
компьютер. Для многих, наличие компьютера в системе – есть "камень преткновения”,
но думаю, это необходимый компонент, и экономить на нем не стоит (наверное уже у каждого по парочке старых системников валяется
),
так что это вопрос сегодня уже не актуальный.
*
Вся NC-математика делается во внешнем RT-контроллере.
Так делается во всех NC-платах.
Иногда, на некоторых форумах, предлагают делать часть расчетов в ПК, а готовые данные гнать во внешнюю RT-плату.
(такое предлагалось, в т.ч. и в этой ветке, немного выше).
Да, так проще. Вернее не проще, а просто снижаются требования к быстродействию внешней RT-платы.
А математика останется абсолютно та же самая, только часть алгоритмов переносятся из RT-платы в PC,
и еще добавляется коммуникация между разделенными частями алгоритмов, так, что по сложности реализации,
такое решение может даже быть и более сложным.
Из производителей NC-плат и тем более взрослых стоек, никто не делает такого разделения,
там вся NC-математика крутится только в NC-плате.
При запуске проекта по такой разделенной схеме, наверняка вылезут какие-то косяки.
Да и какой смысл так делать? Лучше добавить 5-10 USD, и взять более мощный процессор,
и делать всё по правильному, чтобы он успевал сам обработать всё что ему нужно,
без привлечения вычислительной мощности PC, т.к. такая гибридная схема,
может стать источником периодических проблем (сбои, искажения траектории т.п.)
из-за того, что сам PC тоже не простаивает, и а самый неподходящий момент
он может просто не успеть сделать нужные вычисления (например, из-за свопинга на HDD).
Еще один весомый аргумент в пользу исключения NC-математики из ПК - если вся математика у нас в NC-плате,
то в качестве GUI, нам не обязательно использовать PC, а более удобно будет применить недорогой
планшетник!!! Пока на них цены кусаются, но исключительно потому, что это новое
направление в компьютерной индустрии, а когда NC-проект будет готов,
то планшетники будут стоить копейки, по крайней мере бэушные.
*
Требования к компьютеру для GUI - думаю надо сразу закладывать, мин. под "Семерку"
т.к. когда выйдет этот проект, то все уже будут работать на "Восьмерке".
И Б/У железо под "Семерку" будет стоить копейки. Да и если сравнивать
стабильность работы XP и "Семерки", то у последней стабильность работы
гораздо выше чем у XP, что также немаловажно для управления станком с ЧПУ.
Процессор RT-модуля:Разрядность – 32. Так как при точности 0,001 мм и диапазоне +/- 10 метров, в пределах базовой разрядности,
такие значения может обеспечить только 32-ух разрядный процессор.
Наличие блока FPU (float point модуль). Расчеты динамики, это сплошной флоат-поинт,
и процессор со встроенным модулем FPU гораздо быстрее будет выполнять такие вычисления.
Тип процессора – DSP, ARM или что то другое. Этот вопрос пока обсуждается.
Частота процессора, думаю, мин 100 МГц. Этот параметр неочевиден, и требования к частоте,
более точно определятся при разработке ПО. Но многие производители NC-плат, ставят процессоры с частотой 120-150 МГц.
Вообще-то, можно заложить процессор помедленнее, например – 50 МГц, но только той модели,
для которой есть точно в таком же корпусе более скоростные чипы (100-120 МГц).
Чтобы в случае чего установить более мощный процессор.
ПП – двухслойка. Двух-слойка намного дешевле, и быстрее в производстве чем многослойка.
Но у неё, конечно, гораздо хуже параметры по помехоустойчивости по сравнению с многослойками,
и если возможно, то лучше, конечно заложить четырех-слойку, ну а если это нереально, то обойдемся и двух-слойкой.
* Интерфейс с GUI-компьютером: LPT, COM, USB, Wi-Fi, БлюТус или Ethernet?
LPT и COM уже давно не устанавливаются на новые компы, а через некоторое время, даже Б/У будет сложно найти с этими портами.
Wi-Fi и БлюТус, это оба радио-канальные интерфейсы, что в станочном применении
может привести к проблемам передачи данных из-за помех от шпинделя и приводов.
Остаются всего два – Ethernet либо USB, с этими надо определиться, что надежнее?
Еще какие нюансы? Дополняйте.PS.Голова пухнет.
Практически каждый момент требует отдельной ветки, для независимого обсуждения.
PPS. (Это крайне важно)Вопрос – как лучше вести ТЗ?
В формате форума,
это крайне неудобно, и мне кажется, это вообще невозможно,
т.к. периодически, при обновлении ТЗ, надо практически копипастить весь текст ТЗ с некоторыми небольшими изменениями.
И такие периодические большие копии, будут только засорять форум и снижать его читабельность.
Еще вырисовывалось, что кроме пунктов ТЗ, также, имеются комментарии к каждому пункту,
и описывать это всё в одном сплошном тексте крайне неудобно.
А если учесть что комментарии должны иметь возможность делать все участники форума,
то это еще сильнее усложняет процесс написания ТЗ.
Что предложите?