Страница 1 из 1

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

Добавлено: 22 авг 2017, 20:18
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?

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

Добавлено: 23 авг 2017, 09:24
MX_Master
Будете писать отдельный плагин для Mach3?

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

Добавлено: 23 авг 2017, 13:20
1Doc1
Нет, хотелось бы обойтись штатными возможностями.
На данный момент уже удалось реализовать работу команд M3, M4, M5. Но еще хотелось бы реализовать возможность управления через кнопки в скринсете.
Сейчас бьюсь над реализацией вывода задания частоты вращения.

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

Добавлено: 23 авг 2017, 14:40
NikolayUa24
А частотник случайно не Huanyang ?

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

Добавлено: 23 авг 2017, 15:45
1Doc1
Нет. С хуанянгом все проще - есть готовый плагин для управления.

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

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

Кто-нибудь подскажите как заставить Mach3 формировать правильную команду!!!

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

Добавлено: 24 авг 2017, 22:42
FLUKE
1Doc1 писал(а):Подозреваю что проблема кроется в формате передаваемых данных.
Последние скриншоты. Когда шлёшь 2000, разве не DEC в маче ставить надо?
1Doc1 писал(а):мач упорно шлет в порт один и тот же пакет
А где ты задаёшь частоту вращения?
1Doc1 писал(а):удалось найти самостоятельно
Кинь ссылку почитать.

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

Добавлено: 25 авг 2017, 01:10
Serg
А зачем все эти исследования, если в мануале всё по русски написано?..

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

Добавлено: 25 авг 2017, 13:11
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. Как это реализовать?

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

Добавлено: 25 авг 2017, 14:21
Serg
1Doc1 писал(а):Попробую конкретизировать свой вопрос:
Как в Brain Editor'е прописать следующий алгоритм:
Я не про Brain Editor, а про
1Doc1 писал(а):Подозреваю что проблема кроется в формате передаваемых данных.

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

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