Как упралять координатным столом через свою программу?
Имеется координатный стол. Необходимо управлять координатным столом через свою программу (не через Mach3). Все что известно это распайка кабеля LPT, которым соединяется LPT порт компьютера с LPT портом блока управления этим столом:
2-X_DIR,
3-X_STEP,
4-Y_DIR,
5-Y_STEP.
Протокол STEP-DIR. Пытался получить значения, которые Mach3 пишет в LPT через PortMon. PortMon молчит. Пробовал старую досовскую программу lpt_test. Тоже ничего. Пробовал эмулировать нажатия клавиш Up, Down, Left и Right через SendMessage/PostMessage/keybd_event в своей программе. Результат нулевой. Координатный стол нужен для проверки манипулятора. Если кто уже занимался этим, откликнитесь плизз, поделитесь опытом.
1. STEP/DIR- не совсем чтобы "протокол"- логика проста: сигнал DIR задает направление движения(например, при DIR=0 стол едет вперед, соответственно при DIR=1- назазд), STEP- импульс шага (один импульс=один шаг привода, т.е для перемещения на некоторую величину должно быть подано соответствующее число импульсов STEP). Ну и порт блока управления с LPT общего имеет разве что одинаковый разъем и логический уровень сигнала- назначение контактов совершенно иное, поэтому-то lpt_test ничего и не выдает.
2. Чтобы Mach3 что-то выдавал в LPT- его нужно настроить в соответствии с вашей распайкой: ищете в меню настроек вкладку с таблицей соответствия "сигнал-пин порта" и там ставите нужные цифры.
3. Управлять из какой-то своей программы- тут не знаю: как мне кажется нужно свой драйвер для этого писать....
Mach3 в LPT выдает данные, так как стол движется. Попробую LPT 3D Hard Analizer. Может даст результат. А насчет STEP DIR очень похоже на ногодрыганье на микроконтроллерах, только вместо ножек выводы порта.
Алексей Артюшков: А что, собственно, Вы хотите увидеть? LPT 3D Hard Analizer выдаст Вам просто графики изменения уровней на пинах порта (учитывая STEP/DIR- тут все очень предсказуемо: DIR- постоянный уровень в соответствии с направлением, STEP- серия импульсов). Ну можно еще лог состояния регистров посмотреть- но там с высокой вероятностью будет просто чередование нескольких значений. И да- STEP/DIR по сути и есть "ногодрыгание". Собственно задача управления столом сводится к следующему: каким-то образом менять содержимое какого-то регистра порта LPT... Если не ошибаюсь- на системах от WinXP и далее это сделать не так-то просто (операционка не дает прямого доступа к железу- только через драйверы).
А чем Вас не устраивает MAch3, что вы готовы потратить время и силы на написание собственной программы?
GreyPhantom: потому что мне нужно управлять самим столом и получать коды от одной приблуды, которая закреплена на этом столе. Это нужно для автоматизации калибровки.
GreyPhantom: Это некий мем - означает, что нечто плохо потому, что это сделали не мы. Например вы не хотите использовать чей-то софт потому, что надо как-то организовывать взаимодействие с владельцами/разработчиками этого софта - и соответственно пишете свой велосипед.
Мы делали нечто аналогичное - был некий координатник с шаговыми двигателями - который управлялся через LPT неудобной программой - K-cam кажется. Подключили осциллограф (про LPT 3D Hard Analizer не знали), посмотрели, что куда подается когда нажимаем на кнопки в программе.
Дальше составили список команд и на BC++ написали свой интерпретатор, работало все на WinXP как раз через LPT порт - точно не помню - но кажется как раз тот самый inpout32.dll и использовали - свой драйвер не писали 100%.