- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
HCFA HCA8 Modbus
Модераторы: Глоб.модераторы, Специалисты SE
-
- здесь недавно
- Сообщения: 37
- Зарегистрирован: 21 сен 2024, 18:17
- Имя: Дмитрий
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 3 раза
HCFA HCA8 Modbus
Пытаюсь связать ПЛК HCFA HCA8 и частотный преобразователь ATV31 через Modbus.
Использую среду разработки GX Works2 1.620W.
Действую по информации из статьи
Управление и получение данных не происходит.
Пытался также использовать документацию от Coolmay L02 (тоже клон FX3U), но так же безуспешно. HCFA HCA8 вроде как является клоном Mitsubishi FX3U. Но в каталогах Mitsubishi не нашёл модуля расширения, который содержит одновременно порты RS232 и RS485. Не понятно к какому каналу относится R485.
На модуле расширения указано COM1-RS485, COM2-RS232. Но вроде как COM1 это разъём miniDIN для программирования ПЛК.
Предполагаю, что для ПЛК от HCFA с его модулем расширения надо как-то иначе задать параметры.
Может у кого-то есть рабочий пример получения данных через RS485 Modbus RTU с таким ПЛК.
Использую среду разработки GX Works2 1.620W.
Действую по информации из статьи
Управление и получение данных не происходит.
Пытался также использовать документацию от Coolmay L02 (тоже клон FX3U), но так же безуспешно. HCFA HCA8 вроде как является клоном Mitsubishi FX3U. Но в каталогах Mitsubishi не нашёл модуля расширения, который содержит одновременно порты RS232 и RS485. Не понятно к какому каналу относится R485.
На модуле расширения указано COM1-RS485, COM2-RS232. Но вроде как COM1 это разъём miniDIN для программирования ПЛК.
Предполагаю, что для ПЛК от HCFA с его модулем расширения надо как-то иначе задать параметры.
Может у кого-то есть рабочий пример получения данных через RS485 Modbus RTU с таким ПЛК.
-
- не первый раз у нас
- Сообщения: 395
- Зарегистрирован: 06 фев 2020, 16:09
- Имя: Андрей
- город/регион: Екатеринбург
- Поблагодарили: 69 раз
HCFA HCA8 Modbus
Этот клон мицубиши точно так же не поддерживает modbus, как и оригинальный мицубиши. Для modbus, как и в статье, нужен спец. модуль "FX3U-485ADP-MB" - где MB это с поддержкой modbus.
Без модуля есть костыли через RS где посылку нужно ручками составлять с CRC, и принимать.
То что слева у HCA8 есть 485 вообще не говорит, что будет modbus.
Без модуля есть костыли через RS где посылку нужно ручками составлять с CRC, и принимать.
То что слева у HCA8 есть 485 вообще не говорит, что будет modbus.
-
- администратор
- Сообщения: 18749
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1852 раза
HCFA HCA8 Modbus
RS-485 - это интерфейс, физика, как электроны по проводам бегают. ModBUS - это протокол, как байты группируются. Разные вещи. Если нигде в описаниях Вы не видите слова ModBUS - значит его там и нет. А порт RS-485 есть.
Это не "костыли" а нормальная процедура обработки пользовательского протокола.
По вопросам работы Форума можно обратиться по этим контактам.
-
- здесь недавно
- Сообщения: 37
- Зарегистрирован: 21 сен 2024, 18:17
- Имя: Дмитрий
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 3 раза
HCFA HCA8 Modbus
В закромах диска GX IEC Developer 7.04 нашёл библиотеку 074bf4f2-0a6c-102b-bc25-001143e88a02_ModbusFX3UMaster_V100.zip, как раз для чтения/записи данных по протоколу Modbus через модули RS232/RS485 без приписки MB.
Попробую покопаться в содержимом.
Задача сугубо ради интереса. По проводу кинуть команды вперёд, назад и скорость поменять. Потом отключить и забыть ))
В GX Works2 программа с этим модулем не компилируется.This function block is used by a Modbus Master FX3U PLC system to read from/write to Modbus Slave devices (using the Modbus RTU protocol over a serial line) using the RS instruction for serial communication. The Modbus Master is connected to the slave devices via serial communication using one or more serial communication options (FX3U-232-BD, FX3U-485-BD or FX3U-485-ADP).
Попробую покопаться в содержимом.
Задача сугубо ради интереса. По проводу кинуть команды вперёд, назад и скорость поменять. Потом отключить и забыть ))
-
- здесь недавно
- Сообщения: 37
- Зарегистрирован: 21 сен 2024, 18:17
- Имя: Дмитрий
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 3 раза
HCFA HCA8 Modbus
Использую команду RS2
Судя по документации ответ на команду 06 должен быть идентичен запросу. Но частотник отвечает на все запросы 8601 0203 0061 0000
Удивительно, что CRC 0000
На дисплее частотника всегда nST.
Судя по документации ответ на команду 06 должен быть идентичен запросу. Но частотник отвечает на все запросы 8601 0203 0061 0000
Удивительно, что CRC 0000
На дисплее частотника всегда nST.
-
- не первый раз у нас
- Сообщения: 395
- Зарегистрирован: 06 фев 2020, 16:09
- Имя: Андрей
- город/регион: Екатеринбург
- Поблагодарили: 69 раз
HCFA HCA8 Modbus
Сниффером вставали? Точно отправляете посылку не задом наперед в каждом байте?
Т.к. смотрите "Если устройство получило запрос, но запрос не может быть обработан, то устройство ответит кодом ошибки" - тут в главе "Какие бывают ошибки запроса Modbus?". У вас код 03 т.е. "Значение, содержащееся в поле данных запроса, является недопустимой величиной".
Отправлять надо прямо, а приходить будут задом наперед.
Т.к. смотрите "Если устройство получило запрос, но запрос не может быть обработан, то устройство ответит кодом ошибки" - тут в главе "Какие бывают ошибки запроса Modbus?". У вас код 03 т.е. "Значение, содержащееся в поле данных запроса, является недопустимой величиной".
Отправлять надо прямо, а приходить будут задом наперед.
-
- здесь недавно
- Сообщения: 37
- Зарегистрирован: 21 сен 2024, 18:17
- Имя: Дмитрий
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 3 раза
HCFA HCA8 Modbus
С таким не знаком.
Спасибо за ссылку. Многое стало понятнее.
Например, у меня такой код
Код: Выделить всё
D300 := H0601; (* 01 Slave adress, 06 Code write word *)
D301 := H2135; (* K8501 Control word address *)
D302 := H0006; (* K6 START *)
D303 := HACD5; (* CRC-16 Modbus 0106 3521 0600 *)
D300 := H0601; (* 01 Slave adress, 06 Code write word *)
01 адрес частотника. Частотник отвечает, значит правильно.
06 код команды. Функциональный код ошибки 86, значит код команды отправлена верно.
D301 := H2135; (* K8501 Control word address *)
Из документации на ATV31_communication_variables_EN_1624595_04
Modbus address 8501 R/W
8501 = H2135
D302 := H0006; (* K6 START *)
6 записываем в адрес 8501
D303 := HACD5; (* CRC-16 Modbus 0106 3521 0600 *)
Вот тут я не уверен, в какой очерёдности вводить цифры для расчёт CRC
Я вводил так 0106 3521 0600 и судя по документации на частотник это неверно
Надо вводить 0106 2135 0006 и менять местами байты CRC
CRC FA13
Меняем местами байты и заносим в D303 := 13FA
Команда RS2
RS2(TRUE, D300, K8, K8, K1, D310);
Завтра попробую
https://www.se.com/ng/en/download/document/1624597/
Последний раз редактировалось demonlibra 07 окт 2024, 18:26, всего редактировалось 1 раз.
-
- не первый раз у нас
- Сообщения: 395
- Зарегистрирован: 06 фев 2020, 16:09
- Имя: Андрей
- город/регион: Екатеринбург
- Поблагодарили: 69 раз
HCFA HCA8 Modbus
Берете usb-rs485 и любой прослушиватель порта тип "Advanced Serial Port Monitor" или "Device monitoring studio" и смотрите что уходит и приходит.
-
- здесь недавно
- Сообщения: 37
- Зарегистрирован: 21 сен 2024, 18:17
- Имя: Дмитрий
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 3 раза
-
- администратор
- Сообщения: 18749
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1852 раза
HCFA HCA8 Modbus
Рекомендую познакомиться. Помогает понять и наглядно увидеть происходящее. Без этого Вы только догадываетесь, какие там посылки летают на самом деле.
По вопросам работы Форума можно обратиться по этим контактам.
-
- здесь недавно
- Сообщения: 37
- Зарегистрирован: 21 сен 2024, 18:17
- Имя: Дмитрий
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 3 раза
HCFA HCA8 Modbus
Разобрался. Спасибо всем за помощь.
Инструкция RS2 отправляет байты данных в порядке Lo-Hi.
Частотник читает данные в порядке Hi-Lo, а CRC в порядке Lo-Hi.
Т.е. при записи данных в регистры, байты данных меняем местами.
При расчёте и записи в регистры CRC пишем как есть.
Инструкция RS2 отправляет байты данных в порядке Lo-Hi.
Частотник читает данные в порядке Hi-Lo, а CRC в порядке Lo-Hi.
Т.е. при записи данных в регистры, байты данных меняем местами.
При расчёте и записи в регистры CRC пишем как есть.
-
- здесь недавно
- Сообщения: 37
- Зарегистрирован: 21 сен 2024, 18:17
- Имя: Дмитрий
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 3 раза
HCFA HCA8 Modbus
Продолжаю веселиться
Вроде как в документации FX3U должен уметь выполнять инструкцию FCN188 CRC.
Компилятор ошибок не выдаёт, но симулятор ничего не считает. На ПЛК не проверял.
Написал на ST функцию расчёта CRC Modbus.
Вроде как в документации FX3U должен уметь выполнять инструкцию FCN188 CRC.
Компилятор ошибок не выдаёт, но симулятор ничего не считает. На ПЛК не проверял.
Написал на ST функцию расчёта CRC Modbus.
-
- здесь недавно
- Сообщения: 37
- Зарегистрирован: 21 сен 2024, 18:17
- Имя: Дмитрий
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 3 раза
HCFA HCA8 Modbus
Проверил на ПЛК функцию CRC. Работает.
Нашёл меню, в котором симулятор выводит команды, которые не может выполнить.
Логика управления частотником описана схемой в документе Altivar 31 Communication variables User's manual
В итоге получил следующий код для управления частотником Schneider Electric ATV31 через RS485: Между началом отправки данных (включение M8402) и завершением приёма данных (включение M8403) проходит ~40 мс.
На время цикла это не влияет. У меня это ~4 мс.
Нашёл меню, в котором симулятор выводит команды, которые не может выполнить.
Логика управления частотником описана схемой в документе Altivar 31 Communication variables User's manual
В итоге получил следующий код для управления частотником Schneider Electric ATV31 через RS485: Между началом отправки данных (включение M8402) и завершением приёма данных (включение M8403) проходит ~40 мс.
На время цикла это не влияет. У меня это ~4 мс.