Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

Нужна помощь!!!

RS-485, ProfiBUS, 4-20 mA, Wi-Fi, GSM и так далее

Автор темы
LoginovAD
здесь недавно
здесь недавно
Сообщения: 28
Зарегистрирован: 20 авг 2012, 16:31
Ф.И.О.: Логинов

Re: Нужна помощь!!!

Сообщение LoginovAD » 19 сен 2012, 12:44

Связь оказалась не самой трудной проблемой:)) Вот столкнулся довольно странной ситуацией, в документации к прибору приведен пример запроса по протоколу модбас аски: 3А 30 33 31 44 32 34 30 30 30 34 42 38 0D 0A. При попытки отправить этот запрос получаю ошибку кода функции, независимо какой прогой отправляю.
Вот расшифровка фрэйма аски: 1 символ старт; 2 символа адрес сегмента "1D"; 2 символа смещение сегмента, стартовый адрес данных "24"; 2 символасмещение в структыре данных; 2 символа сетчик байт; 2 символа контрольная сумма; и последние 2 символа конец. Ответ должен по идеи повторять часть запроса, согласно документации это старт, адрес, код функции, смещение и счетчик байт, дальше уже запрашиваемые данные. Так в примере запроса я что то не могу найти код функции или я не туда смотрю %)


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 2563
Зарегистрирован: 07 окт 2011, 08:12
Ф.И.О.: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 43 раза
Поблагодарили: 71 раз

Re: Нужна помощь!!!

Сообщение Ryzhij » 19 сен 2012, 14:06

По-моему, Вы пытаетесь к посылку MODBUS-ASCII загнать в сеть MODBUS-RTU...
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр

Аватара пользователя

MuadDib
не первый раз у нас
не первый раз у нас
Сообщения: 359
Зарегистрирован: 31 июл 2010, 08:12
Ф.И.О.: Журавлев Павел Евгеньевич
Поблагодарили: 1 раз

Re: Нужна помощь!!!

Сообщение MuadDib » 20 сен 2012, 04:32

LoginovAD писал(а):Связь оказалась не самой трудной проблемой:)) Вот столкнулся довольно странной ситуацией, в документации к прибору приведен пример запроса по протоколу модбас аски: 3А 30 33 31 44 32 34 30 30 30 34 42 38 0D 0A. При попытки отправить этот запрос получаю ошибку кода функции, независимо какой прогой отправляю.
Вот расшифровка фрэйма аски: 1 символ старт; 2 символа адрес сегмента "1D"; 2 символа смещение сегмента, стартовый адрес данных "24"; 2 символасмещение в структыре данных; 2 символа сетчик байт; 2 символа контрольная сумма; и последние 2 символа конец. Ответ должен по идеи повторять часть запроса, согласно документации это старт, адрес, код функции, смещение и счетчик байт, дальше уже запрашиваемые данные. Так в примере запроса я что то не могу найти код функции или я не туда смотрю %)

Вы неправильно интерпретируете код запроса. В виде строки он будет такой:

Код: Выделить всё

":031D240004B8\r\n"


Получается: 0х03 - адрес устройства (фиксированный адрес 3, как вы сообщали раньше), 0x1D - код функции, 0x2400 - адрес начального регистра, передаваемый начиная со старшего байта, 0x04 - количество регистров (соответственно, в ответе будет 8 байт данных, для передачи которых в ASCII потребуется 16 символов), 0xB8 - контрольная сумма, \r\n - завершающая последовательность из <CR> <LF>.

Расшифровку я привел формальную (по аналогии с функциями 0x03, 0x04), поскольку в стандарте функция 0x1D не описана. Видимо, именно поэтому вы получаете ошибку кода функции.

Рекомендую уточнить правильность приведенного в документации запроса: от производителя, выпускающего на рынок прибор, у которого нельзя менять адрес Modbus, можно ждать каких угодно косяков. Скорее всего, в запросе должна быть функция 0x03 или 0x04.


Автор темы
LoginovAD
здесь недавно
здесь недавно
Сообщения: 28
Зарегистрирован: 20 авг 2012, 16:31
Ф.И.О.: Логинов

Re: Нужна помощь!!!

Сообщение LoginovAD » 20 сен 2012, 15:58

Довольно интересная ситуация, что в девайсе применили не стандартный протокол, вот думаю использовать софтинку для сбора данных http://www.lectussoft.com/opcserver.html посмотрел что там можно запросы составлять самому, завтро попробую отпишусь.

Аватара пользователя

MuadDib
не первый раз у нас
не первый раз у нас
Сообщения: 359
Зарегистрирован: 31 июл 2010, 08:12
Ф.И.О.: Журавлев Павел Евгеньевич
Поблагодарили: 1 раз

Re: Нужна помощь!!!

Сообщение MuadDib » 21 сен 2012, 04:21

LoginovAD писал(а):Довольно интересная ситуация, что в девайсе применили не стандартный протокол, вот думаю использовать софтинку для сбора данных http://www.lectussoft.com/opcserver.html посмотрел что там можно запросы составлять самому, завтро попробую отпишусь.


Что дает вам основание полагать что производитель применил нестандартный протокол? Пример запроса из документации? Но вы же сами пишете, что в ответ на него вы получаете ошибку кода функции. Возможно, девайс ждет стандартной команды, а вы посылаете ему непонятную строку, включенную кем-то в инструкцию по пьяни :D У вас вообще есть предоставленная производителем карта адресов Modbus? В карте должны быть четко указаны и адреса регистров с данными, и код функции, который следует использовать. Вы пробовали читать обычные регистры (holding register, input register)?


Автор темы
LoginovAD
здесь недавно
здесь недавно
Сообщения: 28
Зарегистрирован: 20 авг 2012, 16:31
Ф.И.О.: Логинов

Re: Нужна помощь!!!

Сообщение LoginovAD » 21 сен 2012, 05:48

В том то и дело что я пытался считать обычные регистры стандартными функциями и получал ошибку.

Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 2499
Зарегистрирован: 20 янв 2010, 22:23
Ф.И.О.: Никита
Откуда: Мурманск
Благодарил (а): 3 раза
Поблагодарили: 13 раз
Контактная информация:

Re: Нужна помощь!!!

Сообщение Никита » 21 сен 2012, 13:45

MuadDib писал(а):Что дает вам основание полагать что производитель применил нестандартный протокол?

Увы, это скорее всего таки и есть и это жизненный опыт. Подавляющее большинство счетчиков, сертифицированных под расчетный учет, имеют какой-нибудь хиторовывернутый протокол. Отчасти это связано с особенностями данных счетчика и отличиями их функций от контроллеров.
И скорее всего в данном случае имеет место отверточная сборка китайской техники, или, наоборот, полностью собственное "изобретение". Первый случай лучше, ибо это уже серийное и опробованное изделие... Во втором можно ждать любых сюрпризов
СLoginovAD, Отловить посылки родного софта не пробовали?
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "


Автор темы
LoginovAD
здесь недавно
здесь недавно
Сообщения: 28
Зарегистрирован: 20 авг 2012, 16:31
Ф.И.О.: Логинов

Re: Нужна помощь!!!

Сообщение LoginovAD » 21 сен 2012, 18:50

Все таки протокол был не стандартный, с помощью Lectus Modbus OPC/DDE сервера смог вытащить данные используя пример из документации. Большое всем спасибо!!! Никита, родного софта не было, все что имелось так это прибор и документация, от завода изготовителя ничего кроме руководства и совета прислать приборы к ним на прошивку ничего не добиться


Naitek
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 25 мар 2013, 13:41
Ф.И.О.: Исламбек Нуржан Нуржанович

Re: Нужна помощь!!!

Сообщение Naitek » 26 мар 2013, 07:15

MuadDib как вы интересно перевели строку 3А 30 33 31 44 32 34 30 30 30 34 42 38 0D 0A в ":031D240004B8\r\n"? У меня видимо что-то со связью с прибором, поскольку отправляю эту строку прибору, а в ответ тишина :ges_no:


Владимир Кузнецов
не первый раз у нас
не первый раз у нас
Сообщения: 321
Зарегистрирован: 31 авг 2011, 21:14
Ф.И.О.: Кузнецов Владимир Сергеевич

Re: Нужна помощь!!!

Сообщение Владимир Кузнецов » 26 мар 2013, 13:25

Naitek писал(а):MuadDib как вы интересно перевели строку 3А 30 33 31 44 32 34 30 30 30 34 42 38 0D 0A в ":031D240004B8\r\n"? У меня видимо что-то со связью с прибором, поскольку отправляю эту строку прибору, а в ответ тишина :ges_no:

В шестнадцатеричном виде отправляйте, \r и \n это спец символы.

Аватара пользователя

MuadDib
не первый раз у нас
не первый раз у нас
Сообщения: 359
Зарегистрирован: 31 июл 2010, 08:12
Ф.И.О.: Журавлев Павел Евгеньевич
Поблагодарили: 1 раз

Re: Нужна помощь!!!

Сообщение MuadDib » 27 мар 2013, 06:08

Naitek писал(а):MuadDib как вы интересно перевели строку 3А 30 33 31 44 32 34 30 30 30 34 42 38 0D 0A в ":031D240004B8\r\n"? У меня видимо что-то со связью с прибором, поскольку отправляю эту строку прибору, а в ответ тишина :ges_no:


Как уже подсказал Владимир, ":031D240004B8\r\n" - это строка ASCII-символов, представленная в виде литерала языка Си. '\r' - это символ "возврата каретки" (CR), численно равен 13 в десятичной системе, 0x0d - в шестнадцатеричной. '\n' - символ "новой строки" (LF), 10 в десятичной, 0x0a - в хексе. Если подходить к вопросу строго, Си-строка будет иметь один дополнительный символ в конце, равный нулю, но к данному топику эта особенность не имеет никакого отношения.

Еще раз повторю, что код функции 0x1d нестандартный и, видимо, реализован конкретно в приборе, с которым разбирался LoginovAD. Прежде чем копать дальше, убедитесь в следующем:
1. Прибор поддерживает функцию Модбас 0x1d.
2. Прибор имеет адрес Модбас, равный 0x03, и в сети модбас отсутствует другой прибор с таким же адресом
3. Прибор поддерживает Modbus ASCII. Большая часть Модбас-устройств по дефолту работают в режиме Modbus RTU, но некоторые могут работать и как Modbus ASCII после переключения из настроек прибора.
4. Настройки последовательного интерфейса (скорость, число бит, число стоп-бит, контроль четности) на мастере и на приборе совпадают.


Naitek
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 25 мар 2013, 13:41
Ф.И.О.: Исламбек Нуржан Нуржанович

Re: Нужна помощь!!!

Сообщение Naitek » 27 мар 2013, 07:46

В том то и дело, что всё взято из инструкции к прибору и строка 3A 1D 24 00 04 B8 0D 0A приведена там в качестве примера как получить с него данные. Но только вот в ответ на эту строку прибор ничего не посылает.
Код функции я понимаю что нестандартный, уже работал с протоколами ModBus.
П.С.:прибор тот же, БОЗНА НОРД-Э3М.

Аватара пользователя

MuadDib
не первый раз у нас
не первый раз у нас
Сообщения: 359
Зарегистрирован: 31 июл 2010, 08:12
Ф.И.О.: Журавлев Павел Евгеньевич
Поблагодарили: 1 раз

Re: Нужна помощь!!!

Сообщение MuadDib » 28 мар 2013, 04:17

Naitek писал(а):В том то и дело, что всё взято из инструкции к прибору и строка 3A 1D 24 00 04 B8 0D 0A приведена там в качестве примера как получить с него данные. Но только вот в ответ на эту строку прибор ничего не посылает.
Код функции я понимаю что нестандартный, уже работал с протоколами ModBus.
П.С.:прибор тот же, БОЗНА НОРД-Э3М.


В таком случае вам следовало адресовать вопрос LoginovAD. В последнем сообщении здесь он указал, что связи добиться удалось, но подробностями не поделился.


Naitek
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 25 мар 2013, 13:41
Ф.И.О.: Исламбек Нуржан Нуржанович

Re: Нужна помощь!!!

Сообщение Naitek » 28 мар 2013, 07:27

LoginovAD, адресую вопрос вам - огромная просьба подсказать как вы добились связи с прибором? Буду очень благодарен за помощь!


Автор темы
LoginovAD
здесь недавно
здесь недавно
Сообщения: 28
Зарегистрирован: 20 авг 2012, 16:31
Ф.И.О.: Логинов

Re: Нужна помощь!!!

Сообщение LoginovAD » 03 апр 2013, 06:21

Ну если все настройки COM-порта верны и установлен рабочий преобразователь интерфейса, то ответ должен идти, проблема может быть в железе тупо. И еще есть один момент - какой софт используете если не секрет? Мне пришлось еще не много покапаться в настройках софта Lectus ModBus OPC я брал такую программулинку.
Вот как я делал настройку: В связи с тем что в устройстве применен был не стандартный протокол модбас, пришлось применить не стандартный сервер OPC-ModBus. Посоветую использовать Lectus Modbus OPC-DDE server, в данной проге имеется возможность построения свободного модбас запроса для устройства.
В запросе указать адрес 03, команда чтения 1D, дальше адрес данных в соответствии с картой памяти из РЭ 24 00(для мгновенного расхода) 24 04(для накопленного объема) если мне память не изменяет, в конце запроса идет счетчик байт 04.
получаем запрос :03 1D 24 00 04 двоеточие это старт передачи в формате ASCII его не нужно в принципе ставить, софт сам это сделает.
Еще необходимо правильно настроить софт, то есть поставить протокол ASCII, и когда создаешь переменные с произвольным запросом обязательно указать стартовый байт данных на примере ответ будет выглядеть так 03 1D 24 00 04 05 30 05... то есть данные начинаются с 05...
Ну вроде как все. Будут еще вопросы рад буду помочь.


Naitek
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 25 мар 2013, 13:41
Ф.И.О.: Исламбек Нуржан Нуржанович

Re: Нужна помощь!!!

Сообщение Naitek » 03 апр 2013, 07:25

У нас есть такое устройство NPORT 5150, так вот с его помощью я создал виртуальный COM-порт, при этом работающий по интерфейсу RS485. Потестировал его на устройстве, работающим по протоколу Modbus RTU, т.е. брал и прогой отправлял обычный запрос на чтение, прибор нормально отвечал.
Подключил НОРД. Отправляю этой прогой запрос приведенный в паспорте - то есть 3A 1D 24 00 04 B8 0D 0A. В ответ - тишина. Вот сижу и не понимаю в чем может быть дело.


Автор темы
LoginovAD
здесь недавно
здесь недавно
Сообщения: 28
Зарегистрирован: 20 авг 2012, 16:31
Ф.И.О.: Логинов

Re: Нужна помощь!!!

Сообщение LoginovAD » 03 апр 2013, 09:46

А не пробовал отправлять запрос без контрольной сумм, может твоя прога ставит КС сама, тогда прибор может не понять запрос. Я сталкивался с такой фигней у меня не получалось получить ответ используя трайком, хотя софтинка позволяет отправлять произвольные запросы. Сейчас вернусь на работу и посмотрю как у меня там сделано, на память уже не помню, но какие то нюансы были. Если не секрет какой прогой пользуешься?


Автор темы
LoginovAD
здесь недавно
здесь недавно
Сообщения: 28
Зарегистрирован: 20 авг 2012, 16:31
Ф.И.О.: Логинов

Re: Нужна помощь!!!

Сообщение LoginovAD » 03 апр 2013, 11:22

Посмотрел сейчас конфигурации у себя, команды на чтение :03 1D 24 00 04 и :03 1D 24 04 04 контрольную сумму выставляет софт. Тип данных Single Float 4 байта.
На мой взгляд проблема заключается в том что софт не понимает команду 1D как получилось у меня в трайкоме, либо в запросе прописана КС как в документации и плюс на все это добро софт еще свою КС добавляет. Но это пока только мои мысли. Хотелось бы посмотреть скриншоты запросов. А настройки самого порта оставил стандартные. Если один девайс отвечал с настройками как у БОЗНЫ, то проблема в софте.


Naitek
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 25 мар 2013, 13:41
Ф.И.О.: Исламбек Нуржан Нуржанович

Re: Нужна помощь!!!

Сообщение Naitek » 03 апр 2013, 12:19

Буду очень благодарен, если вы скинете мне файлик конфигурации Config.cfg для Lectus Modbus OPC/DDE Server. Найти его можно нажав Конфигурация->Открыть. Нет, у БОЗНЫ протокол измененный Modbus ASCII, а у того прибора Modbus RTU, поэтому я и не могу понять в чем причина :(
Для связи с приборами использовал программку MBTest http://cedarlab.ru/software.html.


Автор темы
LoginovAD
здесь недавно
здесь недавно
Сообщения: 28
Зарегистрирован: 20 авг 2012, 16:31
Ф.И.О.: Логинов

Re: Нужна помощь!!!

Сообщение LoginovAD » 03 апр 2013, 13:21

Ммм... MbTest работает с RTU а ASCII не понимает, поэтому ничего не получается. Куда отправить файл конфигурации?


Naitek
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 25 мар 2013, 13:41
Ф.И.О.: Исламбек Нуржан Нуржанович

Re: Нужна помощь!!!

Сообщение Naitek » 03 апр 2013, 13:38

Отправьте на [spoiler=]naitek@mail.ru[/spoiler]


Автор темы
LoginovAD
здесь недавно
здесь недавно
Сообщения: 28
Зарегистрирован: 20 авг 2012, 16:31
Ф.И.О.: Логинов

Re: Нужна помощь!!!

Сообщение LoginovAD » 04 апр 2013, 05:46

naitek, файлег отправил. Будут вопросы пиши


Naitek
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 25 мар 2013, 13:41
Ф.И.О.: Исламбек Нуржан Нуржанович

Re: Нужна помощь!!!

Сообщение Naitek » 04 апр 2013, 07:16

Огромное спасибо за помощь! Все отлично читается)))


Kayon
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 16 апр 2013, 14:11
Ф.И.О.: Михаил

Re: Нужна помощь!!!

Сообщение Kayon » 16 апр 2013, 14:17

LoginovAD писал(а):Ммм... MbTest работает с RTU а ASCII не понимает, поэтому ничего не получается. Куда отправить файл конфигурации?

Являюсь разработчиком MBTest'a. ASCII устройств под рукой не было, но можно реализовать поддержку. Если есть возможность и желание, смогу выслать потестировать вариант с поддержкой ASCII.


Автор темы
LoginovAD
здесь недавно
здесь недавно
Сообщения: 28
Зарегистрирован: 20 авг 2012, 16:31
Ф.И.О.: Логинов

Re: Нужна помощь!!!

Сообщение LoginovAD » 17 апр 2013, 08:42

Kayon писал(а):
LoginovAD писал(а):Ммм... MbTest работает с RTU а ASCII не понимает, поэтому ничего не получается. Куда отправить файл конфигурации?

Являюсь разработчиком MBTest'a. ASCII устройств под рукой не было, но можно реализовать поддержку. Если есть возможность и желание, смогу выслать потестировать вариант с поддержкой ASCII.

Желание есть, возможность тоже есть...
отправляйте на alex.loginov.web@gmail.com


Вернуться в «Интерфейсы, протоколы, связь»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей