Здравствуйте! Имеется сверлильный станок с плк Mitsubishi Fx1N. Плк подключен к ПК по rs-232. На ПК имеется китайская программа, которая работает с файлами dxf или с g-code напрямую. Может кто подсказать каким образом ПК передает программу на плк, Плк ведь не может напрямую принимать g-code, значит софт посылает уже какие-то управляющие сигналы?
Каким образом ПК передает программу на плк Mitsubishi Fx1N ?
Автор
Phantom_shade
, 09 Авг 2016 09:34
Сообщений в теме: 7
#1 OFFLINE
Отправлено 09 Август 2016 - 09:34
#2 OFFLINE
Отправлено 09 Август 2016 - 09:55
Как конкретно ваш станок работает НЕ знаю, но обычно станки, управляемые через PS232 порт, получали задание или G-кодах, или в кодах другой системы управления станками (например Роланды в виде кодировки CAMM-2 - специально разработанная кодировка для этих станков)через программу-спулер (DROPOUT или ArtSpool, или иную другую), которые всего-то и делали, что в режиме подкачки данных с определенными настройками порта копировали файл обработки на данный порт, так что с DOC-овских машин или под древними W-95 и W-98 просто в коммандоре копировал на порт: COPY [ИМЯ_ФАЙЛА.РАСШИРЕНИЕ] СОМ1 или иной номер порта...
Поэтому смею предположить, что ваша программа формирует файл в понятном для вашего станка формате, и далее через спулер, или сразу является еще и спулером, как это бывает с программами управления китайскими плоттерами через последовательный порт
Лужу, паяю, станки ЧПУ починяю....
Еще частенько здесь болтаю: Телеграм сообщество ЧПУшников: t.me/cncunion
#3 OFFLINE
Отправлено 09 Август 2016 - 12:19
Плк ведь не может напрямую принимать g-code
Под этим утверждением я бы не подписался. Ничего не скажу насчет вычислительной мощности FX1N (не доводилось мне писать программы для Mitsubishi FX, чтобы ее оценивать), но для многих современных ПЛК состряпать простенький интерпретатор урезанного набора G-кодов (много ли их сверлилке надо? это ж не фрезер) - вполне разрешимая задача, без особой виртуозности в программировании. Так что главные задачи софтины на компе - понятный для оператора "human-machine interface" и спулер.
значит софт посылает уже какие-то управляющие сигналы?
Наиболее вероятно - читает исходный файл и посылает через RS232 управляющие команды в каком-то внутреннем формате, специфичном для данного станка. Этим и "мультиформатность" (DXF, G-code, Excellon) решается - DXF средствами любого, даже самого мощного ПЛК, я бы не взялся обрабатывать...
Если вам стало очень любопытно - можете попытаться навесить на порт "шпиончика" (какую-нибудь подходящую программу мониторинга портов, либо даже отдельный комп, который будет прослушивать весь обмен по шнурку RS232 и записывать его), записать протокол обмена и поизучать/поанализировать его. Предполагаю, что формат будет текстовым, не особо сложным для анализа. Но даже если бинарным - это несущественное усложнение (смотрим записанные файлы в любом hex-viewer'е вместо "Блокнота", только и всего).
#4 OFFLINE
Отправлено 09 Август 2016 - 12:32
Спасибо большое за разъяснения. Уже запустил логгер, попробую ещё в китайской программке поковыряться.
Сообщение отредактировал Phantom_shade: 09 Август 2016 - 12:34
#5 OFFLINE
Отправлено 09 Август 2016 - 12:34
Спасибо за разъяснения. А каким-нибудь образом можно узнать формат команд передаваемых на станок?
Сначала перехватите данные, там видно будет.
Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).
#6 OFFLINE
Отправлено 09 Август 2016 - 14:12
Уже запустил логгер
Ну и замечательно. Теперь кормите станок вручную написанными маленькими (всего на несколько операций) простыми программами в G-коде и анализируйте логи обмена. Почти наверняка в начале каждого лога будет типовая "шапка" (инициализация станка и приведение его механизмов в некое исходное положение), а затем уже "машинные коды", полученные преобразованием исходной программы. При известной усидчивости сможете довести этот реверс-инжиниринг до завершения, получив более-менее вменяемое описание всех команд непосредственного управления станком.
попробую ещё в китайской программке поковыряться
Этот путь, скорее всего, трудоемок и малоперспективен. Увязнете, потратите много времени, а полезной информации очень мало извлечете.
Вот если сумеете как-то добраться до прошивки ПЛК и прочесть ее в виде исходного текста программы - станок полностью в ваших руках будет, без всяких "темных мест". Хорошо, если это удастся - почти наверняка прошивка защищена от чтения паролем. Да и не знаю, можно ли в FX1N "провернуть фарш назад, восстановив мясо из котлет" (прочесть исходный текст прошивки из памяти ПЛК), или туда заливается скомпилированный бинарный код, который невозможно декомпилировать обратно в исходный текст (как это в CODESYS сделано).
#7 OFFLINE
Отправлено 16 Август 2016 - 14:18
Немного разобрался. ПЛК фирмы mitsubishi прошиваются с помощью программы GX Developer. Она зашивает в плк как бинарный код, так и исходник. К сожалению не было схемы подключения станка и комментариев в прошивке, поэтому было затруднительно разбираться с прошивкой (если честно, то до конца так и не разобрался, но главное нашел то что нужно). Далее нашел в мануале формат команд посылаемых по rs232. Считанные с помощью логгера команды никак не согласовывались с мануалом. Оказывается сначала я считывал команды от ПК к высокочастотному преобразователю отправляемые по протоколу Modbus. Когда наконец считал команды к ПЛК выяснилось, что используются только 2 команды: считывание и запись в ячейки памяти контроллера. В память плк записываются координаты отверстий, их количество и ещё 2 каких-то значения (одно из которых плк не использует или я не нашел факт его использования в прошивке). И во время выполнения вшитой программы ПЛК сам управляет сервоприводами, координируя их по считанным значениям из памяти. Из плк на ПК идет поток информации в которой содержатся текущие координаты, состояние всех входов и выходов (без схемы пока не знаю как определить к каким входам что подключено). Как кодируются координаты тоже пока не разобрался - какие-то большие числа, может количество импульсов, если кто-то сталкивался с похожим подскажите.
#8 OFFLINE
Отправлено 16 Август 2016 - 16:43
Как кодируются координаты тоже пока не разобрался - какие-то большие числа, может количество импульсов,
Судя по вашему описанию, протокол - чисто китайское изобретение, не похожее ни на один типовой стандарт. Остается только изучать его дальше.
Для начала определите, в какой системе в память ПЛК передаются координаты - в "абсолютной" (координаты каждой точки сверления задаются от "машинного нуля", либо от "нуля заготовки"), или же в "инкрементальной" (для каждой следующей точки указывается смещение от предыдущей). Ну а когда с этим разберетесь, вычислить коэффициент для пересчета миллиметров в станочные "попугаи" не составит большого труда.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных