Ryzhij писал(а): У Вас, похоже, вообще ответа от слейва нет. Проверяйте настройки связи, адресацию и полярность.
Настройки проверял, все нормально. Еще так пробовал - перевожу частотник в режим Master. Он мне начинает запросы кидать, я их в терминале наблюдаю. Но посылки выглядят не как стандартные Modbus. Снова перевожу его в Slave подключаюсь сканером CAS Modbus Scanner. Полная тишина - стандартные функции и регистры на запросы не отвечают. Так как заказчик торопит с выполнением проекта, я связался с техподдержкой СТА и с Prostar. От Простар прислали то же приложение к инструкции что идет в комплекте с чп, а вот Воронежские ребята поподробней расписали.
--------------------------------------------------------------------------------------------
По частотному преобразователю СТА-С2:
Протокол обмена с ПЧ похож на модбас, но есть отличия.
1. Чтения параметров только по одной ячейке.
2. Алгоритм вычисления контролной суммы отличается от модбас.
Чтение параметров.
В руководстве п.4.1 "Список функциональных параметров" есть таблица
парметров. Левый столбец это адрес параметра для чтения по протоколу.
Например параметр P0.01 (Источник задания частоты) имеет адрес 0001,
параметр D-08 (Входное напряжение) имеет адрес 0D08.
Пример чтения параметра D-08 Входное напряжение. Адрес устройства - 1.
запрос: 01 03 0d 08 00 02 47 65. В соответсвии модбас.
ответ: 01 03 04 01 86 00 00 1a. Результат 0186 = 390.
Управление.
В соответвсвии с модбас
ячейка 2000 - слово управления.
бит 0 - стоп
бит 1 - пуск
бит 4 - прямо
бит 5 - реверс
ячейка 2001 - задание частоты
Пример команда на ревесивное вращение (00 21) на частоте 15,89 Гц (06 35)
01 10 20 00 00 02 04 00 21 06 35 f9 d3 - в соответствии с модбас.
-------------------------------------------------------------------------------------------------
как раз всего этого в инструкции к частотнику не было.
У человека из соседней ветки этого форума получалось отправить некоторые запросы, "вращение вперед", "реверс"..но вот каким образом он это сделал - не написал.
Может нужно сначала записать в ячейку памяти опорную частоту, а потом уже давать команду "вращение вперед" ?
В общем я понял что стандартные программы, заточенные под Modbus RTU, такие как COMPump или ModBus Tester в этом случае не будут работать.
Пробовал я подать эту команду: 01 10 20 00 00 02 04 00 21 06 35 f9 d3 - молчит испытуемый.
Возможно что-то я неправильно делаю. Разным софтом кидал запросы, и с помощью "Terminal 1.9b", и ALTerminal - там скрипт простенький написал, - в начале пауза 10 мкс. 01 пауза 10 мкс. 10 ..и.т.д.
Сейчас пишу программу на контроллер Atmega8, который буду эмулировать вместе с виртуальным COM-портом в Протеусе, и данные с него направлю на преобразователь USB->RS485. Огород конечно, но на мегу8 исходники есть с описанием протокола модбас. Попробую их модифицировать.