Об этом уже думали - в случае дуги или угла упремся в край реза. Надо отходить именно по траектории.vmarkiv писал(а):Nick , А может по сигналу КЗ менять значение , к примеру net Xvel-cmd pid.0.output на противоположное , типа net Xvel + cmd pid.0.output ?
Да, внутри LinuxCNC есть компонент motion который выдает задания другим компонентам в том числе и stepgen (который генерирует шаги для ШД). Так вот, если мы подменим это задание, то это будет более универсально, т.к. таким образом мы записываем траекторию на более высоком уровне и сможем использовать алгоритм не только с шаговиками, но и с любыми другими двигателями.Dmitriy писал(а):Не понял, что значит универсальнее, на шаговых двигателях работать будет?
Буфер будет записываться циклично, т.е. как только доходим до конца буфера, начинаем писать в начало. И читаться он будет также. Поэтому, в самом начале в буфере могут быть вообще любые значения. В общем это нужно, чтобы потом не словить баг.Dmitriy писал(а):Так если буфер(траектории), то какая разница что было до КЗ. Что программа, что подпрограмма, все равно отъезд по записанной в буфер траектории?
Точно. Просто будет 3 состояния:Dmitriy писал(а):Наверное так - как только пропало КЗ проигрываем буфер вперед до сохраненного pointer. И если нет КЗ врубаем подачу, а если снова КЗ, то снова проигрываем буфер назад.
1. нет кз, и буфер на последней точке - записываем новую точку.
2. есть кз - едем назад по буферу
3. нет кз и не в последней точке - едем вперед по буферу.
