slooter писал(а):N1X: +10 за героев!
sinys: что значит не классический? (компоновка осей? механика?) опиши свой станок.
Станок тут описывал
http://www.cnc-club.ru/forum/viewtopic. ... 15#p298915
по сути это координатный стол + надо уметь принимать сигналы от щелевых датчиков и через реле пару устройств включать / выключать.
N1X писал(а):
Не знаю только зачем тебе это, если ты тип концевика выбираешь? Как уже сказали - главное, чтобы он сигнал выдал.
Тип концевика тут уже не причем, тут врубиться в какой последовательности отрабатывает программа и сигналы от физ устройств.
N1X писал(а):
Ты просто сам придумал свою логику, которая не имеет ничего общего с реальностью, отсюда проблемы

ЧПУ ничего не говорит движку. ЧПУ состоит из интерпретатора кода, планировщика траектории, генератора шагов, может я еще чего-то пропустил. Так вот это планировщик скажет генератору, что "я хочу туда". Генератор не дурак, он знает текущую координату, знает текущую скорость, знает допустимое ускорение, знает, да дохера он знает. Запускается модуль генератора как и все в системе реального времени по очереди, каждому модулю отведен квант времени. И когда генератору отдается процессорное время он считает все свои входные данные и решит, пора уже шагать, или не пора. Если пора и можно (а можно - это значит есть сигнал разрешения работы), то он выдаст сигнал на шаг. Один шаг (у нас же как в героях меча и магии - за один квант времени нелзя шагнуть два раза (да, там бывает можно, но упростим), можно только либо шагнуть, либо нет). Квант времени -миллисекунда, может чутка больше, вот простому тормозному человеку и кажется, что станок "едет далеко", на самом деле он двигается мааааленькими шажочками. Если в очередной квант времени генератор шагов увидит, что разрешение работы для него отсутствуют - суши весла. Ему уже плевать что говорит планировщик траектории. Дальше никуда не поедем. Даже если не доехали - генераация шагов прекращается.
Кое-где упростил, но суть на пальцах...
Я конечно попробую, хотелось бы теорию понять.
Я привык так: есть общий ход выполнения программы, если тебе нужно чтобы несколько процессов обрабатывались одновременно, то в основной программе создаешь эти потоки и потом возможны всякие варианты по синхронизации / завершению, обработке результатов и т. д.
В общем спасибо за ответы, буду практиковать чтобы понять.