Mach3, команда SendSerial
Добавлено: 12 май 2019, 10:31
Mach3 умеет из VBA скриптов работать с COM портом без обратной связи, т.е. тупо отправлять команды, меня это устраивает. Есть некий девайс, который управляется по USB через ch340 преобразователь. Команда на старт выглядит как "p150,1500", команда на стоп - "x".
Было написано два скрипта, M100 и M110
Скрипт M100
Скрипт M110
И если запускать эти команды из окна редактора скриптов, то всё работает как надо. Но если пробовать запускать через MDI или через само тело программы, то включаться то оно включается, но выключить нельзя - M110 тупо не работает. Только через редактор нужно заходить, и запускать M110 из редактора скриптов, тогда всё ок.
Проблема решилась одним скриптом - код по памяти не выложу, но он проверяет статус шпинделя, если шпиндель работает то выполняется код M100, если остановлен - то M110 (обычный If/Else), т.е. прописывание одного и того же скрипта после старта шпинделя и после команды M05 решает проблему, и оно работает
Почему тогда оно не работает с логической точки зрения через два скрипта? В мануалах Mach3 не нашел никаких особенностей работы с COM, только описание процедуры SendSerial, т.е. это видимо особенности VBA о которых я естественно не знаю.
Было написано два скрипта, M100 и M110
Скрипт M100
Код: Выделить всё
Call SendSerial ("p150,1500")
End
Код: Выделить всё
Call SendSerial ("x")
End
Проблема решилась одним скриптом - код по памяти не выложу, но он проверяет статус шпинделя, если шпиндель работает то выполняется код M100, если остановлен - то M110 (обычный If/Else), т.е. прописывание одного и того же скрипта после старта шпинделя и после команды M05 решает проблему, и оно работает
Почему тогда оно не работает с логической точки зрения через два скрипта? В мануалах Mach3 не нашел никаких особенностей работы с COM, только описание процедуры SendSerial, т.е. это видимо особенности VBA о которых я естественно не знаю.