Управление ЧП по ModBus RTU

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
1Doc1
Опытный
Сообщения: 162
Зарегистрирован: 01 янв 2014, 20:04
Репутация: 96
Откуда: Подольск
Контактная информация:

Управление ЧП по ModBus RTU

Сообщение 1Doc1 »

Коллеги, Здравствуйте!

Прошу помощи в реализации управления частотным преобразователем посредством MODBUS RTU. Перечитал всю информацию по этой теме, но к положительному результату так и не пришел.
На данный момент научился управлять пуском вперед, пуском назад и остановкой ЧП путем подачи команды напрямую в порт посредством программы COM Port Toolkit.
Командное слово для запуска вперед: 01 0F 00 00 00 10 02 7C 04 C3 23, назад: 01 0F 00 00 00 10 02 7C 84 C2 83, останов: 01 05 00 06 00 00 2D CB
Не совсем уверен в правильности моего подхода, но таким образом хотя-бы получается управлять.
Далее столкнулся с проблемой заставить Mach3 отправлять данные команды при выполнении M3, M4 и M5 соответственно.
Не могли бы объяснить алгоритм по которому надо действовать при настройке?
Мануал к ЧП тут: https://yadi.sk/d/aSL_W3xb3MEqwv ,информация по управлению через Modbus на стр.92-100.
Второй вопрос: каким образом управлять частотой вращения из Mach3?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Управление ЧП по ModBus RTU

Сообщение MX_Master »

Будете писать отдельный плагин для Mach3?
1Doc1
Опытный
Сообщения: 162
Зарегистрирован: 01 янв 2014, 20:04
Репутация: 96
Откуда: Подольск
Контактная информация:

Re: Управление ЧП по ModBus RTU

Сообщение 1Doc1 »

Нет, хотелось бы обойтись штатными возможностями.
На данный момент уже удалось реализовать работу команд M3, M4, M5. Но еще хотелось бы реализовать возможность управления через кнопки в скринсете.
Сейчас бьюсь над реализацией вывода задания частоты вращения.
NikolayUa24
Мастер
Сообщения: 1407
Зарегистрирован: 31 июл 2013, 20:05
Репутация: 256
Настоящее имя: Николай
Контактная информация:

Re: Управление ЧП по ModBus RTU

Сообщение NikolayUa24 »

А частотник случайно не Huanyang ?
Страдания ведут человека к совершенству.
1Doc1
Опытный
Сообщения: 162
Зарегистрирован: 01 янв 2014, 20:04
Репутация: 96
Откуда: Подольск
Контактная информация:

Re: Управление ЧП по ModBus RTU

Сообщение 1Doc1 »

Нет. С хуанянгом все проще - есть готовый плагин для управления.
1Doc1
Опытный
Сообщения: 162
Зарегистрирован: 01 янв 2014, 20:04
Репутация: 96
Откуда: Подольск
Контактная информация:

Re: Управление ЧП по ModBus RTU

Сообщение 1Doc1 »

Ответ на первый вопрос удалось найти самостоятельно. Научил mach3 слать правильные команды в порт как по командам G-кода, так и с кнопок в скринсете.
Для этого пришлось использовать ModBus plugin support и brain:
1.png (3815 просмотров) <a class='original' href='./download/file.php?id=118926&mode=view' target=_blank>Загрузить оригинал (42.32 КБ)</a>
2.png (3815 просмотров) <a class='original' href='./download/file.php?id=118927&mode=view' target=_blank>Загрузить оригинал (65.63 КБ)</a>
При такой схеме работают и коды и кнопки.
Теперь необходимо разобраться с установкой частоты вращения.
в брэйне в последней строке у меня написан алгоритм вывода команды, но проблема в том что мач упорно шлет в порт один и тот же пакет:
3.png (3815 просмотров) <a class='original' href='./download/file.php?id=118928&mode=view' target=_blank>Загрузить оригинал (97.29 КБ)</a>
Подозреваю что проблема кроется в формате передаваемых данных.
В тесте получается такая ситуация: чтобы дать задание 50% мне необходимо отправить в порт &H2000 (&H0000 соответствует минимальному предустановленному заданию, &H4000 - 100%)
Если слать так:
4.png (3815 просмотров) <a class='original' href='./download/file.php?id=118929&mode=view' target=_blank>Загрузить оригинал (86.99 КБ)</a>
то получается фигня, а если так:
5.png (3815 просмотров) <a class='original' href='./download/file.php?id=118930&mode=view' target=_blank>Загрузить оригинал (126.48 КБ)</a>
то получается именно то что надо!

Кто-нибудь подскажите как заставить Mach3 формировать правильную команду!!!
Аватара пользователя
FLUKE
Мастер
Сообщения: 843
Зарегистрирован: 11 мар 2013, 21:18
Репутация: 187
Настоящее имя: Сергей
Откуда: Смоленск
Контактная информация:

Re: Управление ЧП по ModBus RTU

Сообщение FLUKE »

1Doc1 писал(а):Подозреваю что проблема кроется в формате передаваемых данных.
Последние скриншоты. Когда шлёшь 2000, разве не DEC в маче ставить надо?
1Doc1 писал(а):мач упорно шлет в порт один и тот же пакет
А где ты задаёшь частоту вращения?
1Doc1 писал(а):удалось найти самостоятельно
Кинь ссылку почитать.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Управление ЧП по ModBus RTU

Сообщение Serg »

А зачем все эти исследования, если в мануале всё по русски написано?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
1Doc1
Опытный
Сообщения: 162
Зарегистрирован: 01 янв 2014, 20:04
Репутация: 96
Откуда: Подольск
Контактная информация:

Re: Управление ЧП по ModBus RTU

Сообщение 1Doc1 »

FLUKE писал(а):Последние скриншоты. Когда шлёшь 2000, разве не DEC в маче ставить надо?
Возможно, но ни так ни так не реагирует.
FLUKE писал(а):А где ты задаёшь частоту вращения?
Не совсем понял вопрос. Обычно в G-коде.
FLUKE писал(а):Кинь ссылку почитать.
Внимательнее прочитайте вышестоящее сообщение, или Вам дать на него ссылку?
UAVpilot писал(а):А зачем все эти исследования, если в мануале всё по русски написано?..
Пожалуйста ткните носом! Никак не могу найти.

Попробую конкретизировать свой вопрос:
Как в Brain Editor'е прописать следующий алгоритм:
Необходимо считывать значение DRO 202-Spin RPM -Overden, затем масштабировать это значение в каких-то необходимых пределах, далее отправлять в порт в удобоваримом для частотника виде. Известно что значение задания в частотнике задается состоянием шестнадцати coil'ов (№17-32), которые имеют адреса с 16 по 31. Необходимо чтобы Mach3 формировал такой пакет: 01 0F 00 10 00 10 02 xx xx CRC, где xx xx - это 2 байта определяющие необходимые состояния coil'ов №17-32, их значения должны лежать в диапазоне от 0h до 4000h. Как это реализовать?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Управление ЧП по ModBus RTU

Сообщение Serg »

1Doc1 писал(а):Попробую конкретизировать свой вопрос:
Как в Brain Editor'е прописать следующий алгоритм:
Я не про Brain Editor, а про
1Doc1 писал(а):Подозреваю что проблема кроется в формате передаваемых данных.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
1Doc1
Опытный
Сообщения: 162
Зарегистрирован: 01 янв 2014, 20:04
Репутация: 96
Откуда: Подольск
Контактная информация:

Re: Управление ЧП по ModBus RTU

Сообщение 1Doc1 »

Так и я про это говорю.
При работе с портом вручную я могу формировать правильный пакет, когда из мача я пишу в 1 коил, то он также правильно формирует пакет, но когда требуется прозвести запись в несколько коилов, то мач правильно ставит адрес, код функции, адрес первого коила, количество коилов, количество передаваемых байт, в вот вместо передачи нужных байт данных он упорно отсылает единицу. В тесте если писать в столбик в бине он отправляет все как надо, но задача состоит в том что надо в брэйне взять какое-то число и вставить его в передаваемый пакет в хексе, а на деле происходит следующее - мач видит это число, видит что оно не равно нулю и почему-то считает что это единица за которой по его мнению должно быть еще 15 чисел, но так как их там нет он заполняет все нулями, затем при переводе в хекс получается значение &h0001, он сует его в пакет в перевернутом виде, поэтому в пакете везде вместо нужного числа мы наблюдаем 01 00.
Смущает такая вещь: если в конфиге модбаса указать 1 коил, то в него надо писать &h0000 или &hFF00 чтобы получить 0 или 1 в состоянии коила. Для того что бы получить &hFF00 в составе пакета в брайне необходимо указывать десятичное 65280 - это все работает, мач переводит 65280 в хекс и вставляет в пакет в нужное место в нужном порядке [00] [FF], но когда в конфиге модбас установлено количество коилов больше 1, то неважно какое число я передал в брэйне - мач всегда шлет [01][00]/ Вот эта часть мне непонятна, я не думаю что мач где-то глючит, мне кажется что проблема в моем непонимании алгоритма работы с программой. Поэтому прошу показать хоть какой-нибудь пример или мануал в котором
UAVpilot писал(а): всё по русски написано
Ответить

Вернуться в «Windows / Mach»