Как я искал полушаг ,и что нашел.
В субботу провел анализ работы программы у себя на работе.
Сделаю отступление: полученные результаты возможно могут отличатся
при работе программы на РС с другой тактовой частотой процессора и
с другой операционной системой.
Анализ проводился на РС с 2 операционными системами установленными
за день до этого(с форматированием диска).Первой установлена WIN 98.
второй WIN 2000 PR(SP4).Программа покупалась под код полученный
в системе WIN 2000 PR(SP4) и после форматирования диска в ней
зарегистрировалась без проблем, в WIN 98 программа показала код
комп-ра для регистрации совсем другой, по этому проверка велась
только в среде WIN 2000 PR(SP4).
Железо на борту РС : ПЕНЬ-133, память 64 МГб ,остальное не важно.
Для испытания в программном режиме использовался файл формата dfx
созданный в AutoCAD2004 с изображением горизонтальной линии.
Схема для испытаний: оставлена только ось Х , драйвер двигателя с двигателем
отброшен,на каждый выход ТМ7,который шел к драйверу припаян резистор на 1 КОм,
дальше светодиод.Свободные катоды всех светодиодов обьеденены и подключены
к "-" питания.
Испытания проводились на таких скоростях программы, на которых еще можно
уследить за временем включения светодиода.
В качестве таймера использовать пришлось внутренние биологические часы,
т.к. глаза заняты светодиодами , в тишине могу посоветовать в качестве метронома
тиканье часов. Я на работе этот вариант использовать не смог т.к. хоть и ночь,но
это суббота и за стеной машинное отделения 12 дорожек боулинга,все играют,
не подготовленный человек уходит при таком шуме из-за машин с широко открытыми
глазами и обвисшими ушами.
Напомню,что включение фаз: 1 0 0 0 - считаем полушагом,
1 1 0 0
0 1 0 0
0 1 1 0
0 0 1 0
0 0 1 1
0 0 0 1
1 0 0 0 - считаем полным шагом, но есть еще вариант полного шага : 1 1 0 0
0 1 0 0 0 1 1 0
0 0 1 0 0 0 1 1
0 0 0 1 1 0 0 1
Меня порадовало в испытаниях то,что программа работает устойчиво,т.е. полная
повторяемость результатов при одних и тех же режимах, хотя WINDOWS
можно сравнивать с чертом,который за спиной может делать разные пакости .
Должен сказать,что версия 7.3 DEMO во всех режимах (ручном и програмном)показала,
что работа идет только в полном шаге,по этому дальше не рассматривается мной.
Версия 7.2 (регистрированная) в ручном режиме работала только в полном шаге,
но при необходимости в конце делала полушаг. Честно отрабатывала закладываемое
расстояние.По этому поводу я думаю,что это не глюк, просто Роман наверно запамятовал
(все же программе 1,5 года) и скорее всего в этот блок программы заложил
ускоренное движение инструмента в ручном режиме ,за счет полного шага,при реальной
работе на станке это наиболее выгодный вариант.
Приведу только 3 таблицы нескольких замеров длительности горения светодиодов :
Еще раз ,в таблице сек условные.
Знак "-" означает ,что визуально горение светодиода не замечено.
Знак "->0" означает ,что идет постепенное уменьшение длительности горения светодиода
с переходом из полушагового в полношаговый режим .
При передаточном:-2 При передаточном:-20
скорость ! одиночный бит, ! двойной бит, скорость ! одиночный бит, ! двойной бит,
________!_____сек _______!_____сек ____ ________!_____сек _______!_____сек ____
0,1 ! 10 ! 2 0,01 ! 2 ! 12
0,15 ! 2 ! 8 0,025 ! 2 ! 5
0,20 ! 6 ! 2 0,05 ! 2 ! 2
0,25 ! 2 ! 5 0.07 ! 1 -> 0 ! 2
0,3 ! 4 ! 2 0.08 ! 0.5 -> 0 ! 3
0,35 ! 2 ! 3
0,4 ! 2 ! 3
0,45 ! 2 ! 2
0,5 ! 2 ! 2 При передаточном:-10
0,55 ! 2 ! 2
0,6 ! ~2 ! ~2 скорость ! одиночный бит, ! двойной бит,
0,65 ! ~1.5 ! ~1.5 ________!_____сек _______!_____сек ____
0,7 ! ~1.5 ! ~1.5 0,1 ! 2 ! 2
0,75 ! ~1.5 ! ~1.5 0,15 ! 0.5 ->0 ! 2
0,85 ! ~1.2 ! ~1 0,2 ! 0.1 -> ! 2
0,9 ! ~1 ! ~0.5 0,25 ! - ! 1.5
1,0 ! ~1 ! 0,3 ->0 0,3 ! - ! 2
1,5 ! ~1 ! - 0,35 ! - ! 2
0.4 ! - ! ~ 2
0.45 ! - ! 2
В результате я выявил, что существует диапазон скоростей в пределах которого,
длительность горения светодиодов одиночного бита близка к длительности
горения светодиодов двойного бита, почти симметрична.
Получилась формула для этого диапазона : скорость(мм/с) = 0,7 / Х ......1,2 / Х
где Х-передаточное отношение (шагов на мм)
Проверил на разных передаточных отношениях.
Думаю этот диапазон имеет цикличность,вопрос с каким периодом.
Если его знать то,установив скорость в этом диапазоне,можно быть спокойным,
что скорость двигателя будет равномерной и он не будет скакать, как мустанг.
Читая форум вижу,что кто-то поменял скорость в установках и не поймет,
по-чему изменилась работа двигателя.А причина в том,что он ушел из диапазона
симметричой работы двигателя и он может даже стать работать в полношаговом
режиме.
Если моя версия о существовании диапазона подтвердится,то наиболее опасным
является один из пограничных краев диапазона(видно из таблиц),т.к. при работе
только по одной оси через несколько десятков шагов двигателя происходит переход
из полушагового в полношаговый режим,что звучит ,как двойное увеличение
скорости подачи инструмента.При недостаточных оборотах инструмента,это
грозит его поломкой.
На краях диапазона даже ШИМ может не помочь,настолько импульсы могут
быть короткими.
Попробуйте при програмной обработке по горизонтальной или вертикальной линии из
файла установить: передаточное -2 мм на шаг,скорость 1мм/с понаблюдать
за индикатором положения инструмента.У меня он показал где то,ч.з. 40 мм
переход из полушаго режима в полношаговый т.е. суммирование не по 0,5мм,
а по 1,0мм. На скоростях моих испытаний, индикатор положения успевал
честно показывать изменения.
Нужен человек с 4 канальным осцилографом или цифровым регистратором
который мог снять циклограммы при разных режимах, но уже на скоростях
которых работают двигатели и тогда станет ясно ест ли такой диапазон
который я обнаружил.
Причиной всего считаю работу или WINDOWS или транслятора DELPHI
при работе таймеров.
Вряд ли Роман сможет что-то изменить,но в душе очень хочется.
Пример из жизни:у меня в боулинге центральный серверный комп
работает в системе операционной Юникс ,а вспомогательные консоли
под ДОС так время игры на консолях отстает от сервера.
Американцы за 7 лет не смогли решить эту проблему.
Работая сообщя мы сделаем прогу Романа лучшей.
Всем удачи!