PDA

Просмотр полной версии : modbus ASCII или нестандартный modbus rtu



Инженер23
15.05.2017, 16:52
Решил автоматизировать одну производственную линию планируется
1 СПК
12 блоков ввода вывода мк110
5 частотных преобразователей
24 дисплея modbus дисплея СМИ
вся эта радость будет подключатся по rs485 по протоколу modbus RTU
Приступил к программированию и выясняется что один из китайских частотников shihlin ss2 имеет кривую реализацию модбас, после каждой посылки он требует 0х0D или 0х0А а иначе ответа от него не будет, также в нем поддерживается modbus ASCII кажется нормальный. Где то существует готовая ASCII реализация модбас или где нибудь можно взять исходник модбас RTU чтобы туда приколхозить этот завершающий символ? Да мне получается нужно будет 2 модбаса один нормальный для нормальный устройств и другой на второй порт для этого дебильного частотника...

Евгений Кислов
15.05.2017, 17:46
Решил автоматизировать одну производственную линию планируется
1 СПК
12 блоков ввода вывода мк110
5 частотных преобразователей
24 дисплея modbus дисплея СМИ
вся эта радость будет подключатся по rs485 по протоколу modbus RTU
Приступил к программированию и выясняется что один из китайских частотников shihlin ss2 имеет кривую реализацию модбас, после каждой посылки он требует 0х0D или 0х0А а иначе ответа от него не будет, также в нем поддерживается modbus ASCII кажется нормальный. Где то существует готовая ASCII реализация модбас или где нибудь можно взять исходник модбас RTU чтобы туда приколхозить этот завершающий символ? Да мне получается нужно будет 2 модбаса один нормальный для нормальный устройств и другой на второй порт для этого дебильного частотника...

Опрос по Modbus ASCII можно организовать через библиотеку Modbus (см. ссылку в подписи).

Инженер23
18.05.2017, 15:20
Открыл документ SPK_Modbus_v.1.0.pdf там упоминается что можно организовать обмен по протоколу ASCII, а как именно? Нужно вручную прописывать этот протокол, открыть порт, задать массив загрузить туда данные, вычислить CRC, отправить команду, вылавливать ответ, проверить CRC, проверить адрес...? или это все уже реализовано в готовом виде?, тогда я не пойму как именно сделать. в Modbus_master_comport выбран режим RTU и поменять его на ASCII у меня не получилось

capzap
18.05.2017, 15:33
Открыл документ SPK_Modbus_v.1.0.pdf там упоминается что можно организовать обмен по протоколу ASCII, а как именно?
прочитайте про входную переменную mode в разделе 6.3 например

Инженер23
24.05.2017, 08:13
Здравствуйте. Наконец то скомпилировал без ошибок пример со страницы 190 (п. 6.4.2), теперь пытаюсь разобраться как с этим работать. Как я вижу в примере при каждом вызове происходит настройка ком порта и открытие порта, насколько я понимаю это можно сделать 1 раз, есть какой то флаг, бит, по которому можно определить что порт открыт?

Евгений Кислов
24.05.2017, 08:22
Собственно, выход Ready и является таким флагом.
При каждом вызове открытие порта не происходит - из-за реализации блока. После того, как порт открыт, TRUE на входе Enable не заставляет его открываться в каждом цикле.