Название: связь по Ethernet с устройством поддерживающим протокол ModBus Отправлено: pritqwet от 08.06.2009, 14:57:35 Здравствуйте, сталкнулся со следующей проблемой: имеется "ВЗЛЁТ ЭМ ЭКСПЕРТ-911И", на нём подключена линия Ethernet для связи. Прибор нормально пингуется, программа "Универсальный просмоторщик" тоже работает, но была поставлена задача общение с прибором посредством собственной программы, в связи с чем изучив имеющуюся у вас на сайте документацию: prtkl_Modbus.pdf и т.д., а также воспользовавшись другими Интернет-источниками, принялся писать программу UDP-сервера, но возникла следующая проблема - прибор не отвечает, а вернее такое ощущение, что не может распознать посланное ему сообщение! Прибор настроен на режим RTU, адрес прибора - 1, программа посылает следующее сообщение: [01][03][00][6B][00][03][74][17], где [01] - адрес устройства, с которым хотим общаться, [03] - запрашиваемая функция, [00][6B][00][03] - её пораметры и [74][17] - контрольная сумма.....Ответа не приходит и в Статистике не отмечается то, что какой либо запрос получен... Может у кого есть идею из-за чего енто может быть?
Название: Re: связь по Ethernet с устройством поддерживающим протокол ModBus Отправлено: Dekir от 10.06.2009, 11:01:09 при работе через Ethernet модуль запрос упаковывается в tftp пакет.
Все во вложениях Название: Re: связь по Ethernet с устройством поддерживающим протокол ModBus Отправлено: pritqwet от 18.06.2009, 13:05:51 Спасибо за информацию! Упокавал modBus-пакет в TFTP! То ли я где-то что-то пропустил, вообщем работать от этого лучше не стало. Решил поступить драконовским методом: поставил программу wireshark-win32-1.2.0.exe, поймал пакеты, проанализировал их, только после этого нашёл что нужно есчё сделать с пакетом перед тем как отправить, всё заработало! :)
Вот какое преобразование нужно совершить с modBus пакетом перед тем как упаковывать его в tftp-фрейм: Код: int tftp_pack(unsigned char *query, unsigned char *pack, int query_sz) |