===== Настройка CNC Vision ===== Это руководство предназначено для ознакомления читателя с процессом настройки системы CNC Vision и некоторыми ее применениями. //Обратите внимание, что лицензия Vision System для коррекции G-code с помощью визуальных маркеров является отдельной лицензией, которую необходимо приобрести в дополнение к контроллеру myCNC (лицензия доступна в [[https://shop.pv-automation.com/mycnc/55-1787-cnc-vision-components.html|комплекте Vision Kit]] в нашем [[https://shop.pv-automation.com/mycnc/55-1787-cnc-vision-components.html|Онлайн-магазине]]).// Видео с инструкцией по настройке системы Vision System: {{youtube>TE0sd5bI9vA?large}} Для настройки камеры необходимо перейти в **CNC Settings > Config > Camera**: {{:quickstart:mycnc-quick-start:camera-july2-001.png}} * **Camera Interface** позволяет выбрать между опциями No Camera и камеру, подключенную через LAN. Если камера подключена через локальную сеть, в строке **Initialization** должен быть указан IP-адрес камеры. * **IP Camera Initialization** указывает IP-адрес камеры для устанавливаемого соединения. * **Pattern size** (размер маркера) может быть установлен экспериментально на 30-50% больше, чем сам маркер, чтобы учесть визуальную разницу между маркером и пустым пространством вокруг него. * В случае маркера, используемого в этом примере, его размер был установлен равным 160 пикселям, что соответствует нижнему пределу относительно размера реального маркера - больший размер Pattern Size, как правило, является более безопасным выбором при низкой освещенности рабочего стола. * ПРИМЕЧАНИЕ: Фокус камеры должен быть правильно отрегулирован, чтобы камера могла распознавать маркеры. {{:quickstart:mycnc-quick-start:cnc-vision-003-marker-size.jpg}} * **Region of interest** обозначает область (в пикселях), на которой камера будет искать маркеры. Обычно эта область должна быть установлена ​​равной или немного меньше чем разрешение камеры. Эта область устанавливается автоматически в более новых версиях программного обеспечения при процессе калибровки (версии программного обеспечения после июля 2019 года). * **Pixel to length coefficient** используется для преобразования пройденных пикселей в фактическое физическое расстояние (в мм). Вы можете откалибровать это как для оси X, так и для оси Y. Чтобы установить правильный коэффициент для вашей камеры, используйте кнопку «Калибровка» на вкладке «Камера» или ознакомьтесь с полной инструкцией по ручной настройке, приведенной ниже (используется для более старых версий программного обеспечения). * **Camera Shift** описывает расстояние, на которое машина будет перемещаться, если она не обнаружит маркер после того, как ему было приказано искать его. Это может произойти, когда маркер не полностью находится в интересующей области. В этом случае камера будет продолжать двигаться, пока не найдет маркер или не достигнет конца указанного сдвига камеры. Он устанавливается автоматически в более новых версиях программного обеспечения в процессе калибровки. Если в процессе смены камеры маркер не найден, машина остановится. * **Tool number** (номер инструмента) обычно назначается на №10. * Значения **Camera offset** используются для указания расстояния от камеры до рабочего инструмента в плоскости xy. * **Camera tool length** используется для указания расстояния от камеры до острия рабочего инструмента по оси Z. * **Ignore decoder errors**: по умолчанию установлен флаг OFF. * **Shift Speed** выставляет скорость, с которой машина движется во время поиска маркера. ПРИМЕЧАНИЕ: Не используется на новых версиях программного обеспечения myCNC. * **Pattern Match Level** задает уровень сходности найденного маркера с исходным эталонным маркером. Этот уровень должен иметь каждый новый маркер, чтобы система могла его распознать. Более высокие числа означают меньшую четность (больше различий между маркерами), поэтому во избежание ложных срабатываний рекомендуется выбирать значения как можно ниже (настолько, насколько это является возможным, так как небольшие различия между маркерами будут присутствовать всегда). График ниже показывает уровни сходства во время поиска маркеров - нижние точки графика указывают места, где сходство маркеров наиболее высоко (минимальные различия между новым маркером и эталоном). * Если в программе возникают проблемы с определением местоположения маркеров из-за того, что эти маркеры немного отличаются (из-за несовершенства материала, бликов света и т.д.), рекомендуется повышать уровень Pattern Match Level, пока программа не начнет распознавать маркеры. Однако слишком высокое значение этого параметра приведет к ложным срабатываниям системы. {{:quickstart:mycnc-quick-start:cnc-vision-030-parity-chart.png}} * Используйте **Image sensor correction** если изображение на экране myCNC выглядит искаженным или растянутым при просмотре через вкладку «Камера». ====Коды для CNC Vision==== Система CNC Vision управляется через серию PLC с М-кодом, которые можно найти в меню Settings > Config > PLC > Hardware PLC. {{:quickstart:mycnc-quick-start:cnc-vision-012-macros.png}} Используются следующие процедуры PLC: * M397 - начать работу камеры. ++Показать код M397 | #include common.const.h main() { message=PLCCMD_CAMERA_START; texit=timer+10;do{timer++;}while(timer ++ * M399 - record the image, detect the marker position and store it in a dots array. ++ Show M399 code | #define callback_address var01 #define camera_count var02 #define wait_camera var03 main() { camera_count=0; wait_camera=1; callback_address=3; //delay after motion stopped timer=300; do{timer--;}while (timer>0); message=PLCCMD_WAIT_FOR_CAMERA; timer=2;do{timer--;}while(timer>0); //pause to push the message do { if (wait_camera>1) { timer=100;do{timer--;}while(timer>0); //wait till motion started do { code=gvarget(6060); }while(code!=0x4d); //wait till motion finished timer=300;do{timer--;}while(timer>0); //pause to push the message camera_count=wait_camera; wait_camera=1; message=PLCCMD_WAIT_FOR_CAMERA; timer=2;do{timer--;}while(timer>0); //pause to push the message }; }while (wait_camera>0); exit(99); //normal exit }; ++ * M398 - вычисляет значение для поворота, смещения и искажения и вносит соответствующие поправки для G-code программы, а затем запускает исправленный G-code. ++ Показать M398 | #include src/common.const.h main() { message=PLCCMD_CAMERA_FINISH; texit=timer+10;do{timer++;}while(timer ++ Эти процедуры PLC автоматически добавляются в G-code при импорте файла DXF в myCNC. Чтобы система распознала маркеры, маркеры должны быть нарисованы в виде примерно 6-миллиметровых кружков внутри отдельного слоя с именем «Camera» в файле DXF. Пользователь должен иметь действующую лицензию Vision System, чтобы использовать эту функцию. ====Калибровка системы CNC Vision==== * Перейдите на вкладку Camera в myCNC, открыв панель «Настройки» (Settings) на главном экране. * Выберите подходящий размер маркера (эталона) и нажмите кнопку Record {{:quickstart:mycnc-quick-start:camera-july2-003-record.png}} * Нажмите кнопку Calibrate. Программное обеспечение автоматически переедет на заданное расстояние по осям X и Y, чтобы определить необходимые коэффициенты. {{:quickstart:mycnc-quick-start:camera-july2-004-calibrate.png}} Процесс калибровки должен быть завершен после перемещения камеры в положительном и отрицательном направлениях по обеим осям, и результаты должны быть отмечены в меню Settings > Config > Camera: {{:quickstart:mycnc-quick-start:camera-july2-006.png}} ==== Ручная настройка коэффициентов ==== //Это устаревший метод который используется только в версиях программы старше июля 2019. Во всех последних версиях, коэффициенты автоматически рассчитываются программой при процессе калибровки.// ++++ Нажмите, чтобы развернуть инструкции | Коэффициент pixel-to-length необходим для того, чтобы камера знала, на сколько миллиметров она переместилась после прохождения определенного количества пикселей. Эта процедура выполняется путем нахождения коэффициента для пересчета миллиметров по пикселям. Хотя это автоматизировано в более новых версиях программного обеспечения myCNC, в старых версиях программного обеспечения это также можно сделать вручную. Для этого: 1. Перейдите во вкладку **Камера** (Camera) в myCNC. {{:quickstart:mycnc-quick-start:cnc-vision-upd-004-getting-there.jpg}} {{:quickstart:mycnc-quick-start:cnc-visionupd-005-getting-there2.jpg}} 2. Переместите камеру так, чтобы она находилась над центром маркера и нажмите кнопку **Center** {{:quickstart:mycnc-quick-start:cnc-vision-006-centerpoint.jpg}} 3. Нажмите кнопки **Start** и **Measure** и запомните положение камеры по осям X и Y камеры перед ее перемещением. {{:quickstart:mycnc-quick-start:cnc-vision-007-start-measure.jpg}} 4. Переместите камеру на некоторое расстояние (в мм) и запишите это расстояние. Обратите внимание на изменение исходного положения XY в пикселях и подсчитайте, сколько пикселей камера прошла за этот переезд. Разделите миллиметры на пискели, чтобы получить коэффициент для каждой соответствующей оси. {{:quickstart:mycnc-quick-start:cnc-vision-008-moving.jpg}} Например, в этой ситуации машина переместилась на 12 мм вправо, в то время как значение x-position изменилось с 950 на 482. 950 - 482 = 468 пикселей 12 мм ÷ 468 пикселей = 0,0256 Следовательно, коэффициент равен 0,256 5. Введите новый коэффициент в окне **CNC Settings > Camera > Pixel to length coefficient** и нажмите кнопку **Сохранить** {{:quickstart:mycnc-quick-start:cnc-vision-013.jpg}} 6. Повторите процедуру для другой оси. После того, как обе оси были откалиброваны, у машины теперь будет правильный коэффициент чтобы конвертировать пиксели в реальную дистанцию в миллиметрах. ++++ ==== Использование горячих клавиш для перемещения камеры ==== Чтобы переместить камеру прямо из окна Camera, был разработан набор горячих клавиш. Обратите внимание, что горячие клавиши присутствуют только в более свежих версиях программного обеспечения myCNC. Пожалуйста, обновите приложение myCNC, если горячие клавиши камеры отсутствуют в вашей версии программы. |ГОРЯЧАЯ КЛАВИША|ДЕЙСТВИЕ| | ''Стрелка Вверх'' | Переезд в положительном направлении Y | | ''Стрелка Вправо'' | Переезд в положительном направлении X | | ''Стрелка Вниз'' | Переезд в отрицательном направлении Y | | ''Стрелка Влево'' | Переезд в отрицательном направлении X | | ''Пробел'' | Выбрать шаг (от 00.1 мм до 1 мм) | | Одновременное нажатие''Control'' and ''Стрелка'' | Переехать на выбранный шаг | ===== Пример CNC Vision ===== Коррекция программы с помощью CNC Vision может быть легко выполнена после калибровки маркеров. Чтобы открыть и использовать файл с системой CNC Vision, используйте следующие инструкции: 1. На главном экране программного обеспечения myCNC нажмите кнопку «Открыть файл DXF». {{:quickstart:mycnc-quick-start:camera-j17-open-dxf-001.jpg}} 2. Выберите конкретный файл DXF, который вы хотите открыть. 3. При выборе инструментов включите камеру в качестве одного из инструментов и присвойте ей тот же номер инструмента, который указан в настройках камеры. Назначьте остальные инструменты и их приоритеты (которые будут указывать порядок использования инструментов), необходимые для вашей конкретной программы. {{:quickstart:mycnc-quick-start:camera-j17-assign-tools-001.jpg}} 4. После загрузки файла DXF программа должна вставить макросы M397, M398 и M399, которые относятся к системе CNC Vision, в G-code программы. {{:quickstart:mycnc-quick-start:camera-j17-macros-001.jpg}} 5. Нажмите **Run**. {{:quickstart:mycnc-quick-start:cnc-vision-010-run.png}} Машина будет перемещать камеру в направлении предполагаемых положений маркера, и, если маркеры не будут там найдены, будет перемещаться вокруг этого предполагаемого положения маркера на расстоянии, заданное значением Camera Shift. После выполнения макросов камеры и определения местоположения всех маркеров, программа автоматически отрегулирует смещение или искажение рабочего материала и немедленно начнет запуск основной программы. ПРИМЕЧАНИЕ. Программа не начнет основной процесс резки, пока не будут найдены все маркеры. ===== Устранение неполадок камеры ===== Руководство по поиску и устранению неисправностей камеры: [[troubleshooting:camera_troubleshooting|Camera Troubleshooting]]