Управление ЧП по ModBus RTU
-
1Doc1
- Опытный
- Сообщения: 162
- Зарегистрирован: 01 янв 2014, 20:04
- Репутация: 96
- Откуда: Подольск
- Контактная информация:
Управление ЧП по ModBus RTU
Коллеги, Здравствуйте!
Прошу помощи в реализации управления частотным преобразователем посредством 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?
Прошу помощи в реализации управления частотным преобразователем посредством 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
Будете писать отдельный плагин для Mach3?
-
1Doc1
- Опытный
- Сообщения: 162
- Зарегистрирован: 01 янв 2014, 20:04
- Репутация: 96
- Откуда: Подольск
- Контактная информация:
Re: Управление ЧП по ModBus RTU
Нет, хотелось бы обойтись штатными возможностями.
На данный момент уже удалось реализовать работу команд M3, M4, M5. Но еще хотелось бы реализовать возможность управления через кнопки в скринсете.
Сейчас бьюсь над реализацией вывода задания частоты вращения.
На данный момент уже удалось реализовать работу команд M3, M4, M5. Но еще хотелось бы реализовать возможность управления через кнопки в скринсете.
Сейчас бьюсь над реализацией вывода задания частоты вращения.
-
NikolayUa24
- Мастер
- Сообщения: 1407
- Зарегистрирован: 31 июл 2013, 20:05
- Репутация: 256
- Настоящее имя: Николай
- Контактная информация:
Re: Управление ЧП по ModBus RTU
А частотник случайно не Huanyang ?
Страдания ведут человека к совершенству.
-
1Doc1
- Опытный
- Сообщения: 162
- Зарегистрирован: 01 янв 2014, 20:04
- Репутация: 96
- Откуда: Подольск
- Контактная информация:
Re: Управление ЧП по ModBus RTU
Нет. С хуанянгом все проще - есть готовый плагин для управления.
-
1Doc1
- Опытный
- Сообщения: 162
- Зарегистрирован: 01 янв 2014, 20:04
- Репутация: 96
- Откуда: Подольск
- Контактная информация:
Re: Управление ЧП по ModBus RTU
Ответ на первый вопрос удалось найти самостоятельно. Научил mach3 слать правильные команды в порт как по командам G-кода, так и с кнопок в скринсете.
Для этого пришлось использовать ModBus plugin support и brain: При такой схеме работают и коды и кнопки.
Теперь необходимо разобраться с установкой частоты вращения.
в брэйне в последней строке у меня написан алгоритм вывода команды, но проблема в том что мач упорно шлет в порт один и тот же пакет: Подозреваю что проблема кроется в формате передаваемых данных.
В тесте получается такая ситуация: чтобы дать задание 50% мне необходимо отправить в порт &H2000 (&H0000 соответствует минимальному предустановленному заданию, &H4000 - 100%)
Если слать так: то получается фигня, а если так: то получается именно то что надо!
Кто-нибудь подскажите как заставить Mach3 формировать правильную команду!!!
Для этого пришлось использовать ModBus plugin support и brain: При такой схеме работают и коды и кнопки.
Теперь необходимо разобраться с установкой частоты вращения.
в брэйне в последней строке у меня написан алгоритм вывода команды, но проблема в том что мач упорно шлет в порт один и тот же пакет: Подозреваю что проблема кроется в формате передаваемых данных.
В тесте получается такая ситуация: чтобы дать задание 50% мне необходимо отправить в порт &H2000 (&H0000 соответствует минимальному предустановленному заданию, &H4000 - 100%)
Если слать так: то получается фигня, а если так: то получается именно то что надо!
Кто-нибудь подскажите как заставить Mach3 формировать правильную команду!!!
- FLUKE
- Мастер
- Сообщения: 843
- Зарегистрирован: 11 мар 2013, 21:18
- Репутация: 187
- Настоящее имя: Сергей
- Откуда: Смоленск
- Контактная информация:
Re: Управление ЧП по ModBus RTU
Последние скриншоты. Когда шлёшь 2000, разве не DEC в маче ставить надо?1Doc1 писал(а):Подозреваю что проблема кроется в формате передаваемых данных.
А где ты задаёшь частоту вращения?1Doc1 писал(а):мач упорно шлет в порт один и тот же пакет
Кинь ссылку почитать.1Doc1 писал(а):удалось найти самостоятельно
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Управление ЧП по ModBus RTU
А зачем все эти исследования, если в мануале всё по русски написано?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
1Doc1
- Опытный
- Сообщения: 162
- Зарегистрирован: 01 янв 2014, 20:04
- Репутация: 96
- Откуда: Подольск
- Контактная информация:
Re: Управление ЧП по ModBus RTU
Возможно, но ни так ни так не реагирует.FLUKE писал(а):Последние скриншоты. Когда шлёшь 2000, разве не DEC в маче ставить надо?
Не совсем понял вопрос. Обычно в G-коде.FLUKE писал(а):А где ты задаёшь частоту вращения?
Внимательнее прочитайте вышестоящее сообщение, или Вам дать на него ссылку?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
Я не про Brain Editor, а про1Doc1 писал(а):Попробую конкретизировать свой вопрос:
Как в Brain Editor'е прописать следующий алгоритм:
1Doc1 писал(а):Подозреваю что проблема кроется в формате передаваемых данных.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
1Doc1
- Опытный
- Сообщения: 162
- Зарегистрирован: 01 янв 2014, 20:04
- Репутация: 96
- Откуда: Подольск
- Контактная информация:
Re: Управление ЧП по ModBus RTU
Так и я про это говорю.
При работе с портом вручную я могу формировать правильный пакет, когда из мача я пишу в 1 коил, то он также правильно формирует пакет, но когда требуется прозвести запись в несколько коилов, то мач правильно ставит адрес, код функции, адрес первого коила, количество коилов, количество передаваемых байт, в вот вместо передачи нужных байт данных он упорно отсылает единицу. В тесте если писать в столбик в бине он отправляет все как надо, но задача состоит в том что надо в брэйне взять какое-то число и вставить его в передаваемый пакет в хексе, а на деле происходит следующее - мач видит это число, видит что оно не равно нулю и почему-то считает что это единица за которой по его мнению должно быть еще 15 чисел, но так как их там нет он заполняет все нулями, затем при переводе в хекс получается значение &h0001, он сует его в пакет в перевернутом виде, поэтому в пакете везде вместо нужного числа мы наблюдаем 01 00.
Смущает такая вещь: если в конфиге модбаса указать 1 коил, то в него надо писать &h0000 или &hFF00 чтобы получить 0 или 1 в состоянии коила. Для того что бы получить &hFF00 в составе пакета в брайне необходимо указывать десятичное 65280 - это все работает, мач переводит 65280 в хекс и вставляет в пакет в нужное место в нужном порядке [00] [FF], но когда в конфиге модбас установлено количество коилов больше 1, то неважно какое число я передал в брэйне - мач всегда шлет [01][00]/ Вот эта часть мне непонятна, я не думаю что мач где-то глючит, мне кажется что проблема в моем непонимании алгоритма работы с программой. Поэтому прошу показать хоть какой-нибудь пример или мануал в котором
При работе с портом вручную я могу формировать правильный пакет, когда из мача я пишу в 1 коил, то он также правильно формирует пакет, но когда требуется прозвести запись в несколько коилов, то мач правильно ставит адрес, код функции, адрес первого коила, количество коилов, количество передаваемых байт, в вот вместо передачи нужных байт данных он упорно отсылает единицу. В тесте если писать в столбик в бине он отправляет все как надо, но задача состоит в том что надо в брэйне взять какое-то число и вставить его в передаваемый пакет в хексе, а на деле происходит следующее - мач видит это число, видит что оно не равно нулю и почему-то считает что это единица за которой по его мнению должно быть еще 15 чисел, но так как их там нет он заполняет все нулями, затем при переводе в хекс получается значение &h0001, он сует его в пакет в перевернутом виде, поэтому в пакете везде вместо нужного числа мы наблюдаем 01 00.
Смущает такая вещь: если в конфиге модбаса указать 1 коил, то в него надо писать &h0000 или &hFF00 чтобы получить 0 или 1 в состоянии коила. Для того что бы получить &hFF00 в составе пакета в брайне необходимо указывать десятичное 65280 - это все работает, мач переводит 65280 в хекс и вставляет в пакет в нужное место в нужном порядке [00] [FF], но когда в конфиге модбас установлено количество коилов больше 1, то неважно какое число я передал в брэйне - мач всегда шлет [01][00]/ Вот эта часть мне непонятна, я не думаю что мач где-то глючит, мне кажется что проблема в моем непонимании алгоритма работы с программой. Поэтому прошу показать хоть какой-нибудь пример или мануал в котором
UAVpilot писал(а): всё по русски написано