14 / 14 / 1
Регистрация: 02.03.2013
Сообщений: 192
|
||||||
1 | ||||||
Работа с контроллером производительности нории КПН-4М по Modbus RTU over RS-48503.04.2014, 13:57. Показов 2519. Ответов 14
Метки нет (Все метки)
Здравствуйте товарищи.
Попалось под руку, это чудо российской мысли, и понадобилось снять с него данные на ЭВМ. Вроде подключил, но данные не читаются В комплекте с устройством, нет ничего, даже тестовой утилиты. Возможно кто работал с ним, и есть пример запроса к устройству? Сам девайс - вот : http://zernopribor.ru/Passpostr/pass_KPN-4M.pdf Написано - использует ModBus RTU. Пытаюсь :
От беда то какая.
0
|
03.04.2014, 13:57 | |
Ответы с готовыми решениями:
14
Интеграция с контроллером по ModBus RTU Java и ModBus RTU + RS-485 Modbus RTU через интерфейс rs-485 Octagon 5066 с системой DOS 6.22 485 modbus rtu driver |
03.04.2014, 15:24 | 2 | |||||||||||||||
Во-первых, CRC16 бывают с разным полиномом, какой у вас, мне не виден. Для классического Modbus (потому как каждый производитель воротит, что хочет) образующий полином при подсчете CRC = A001h.
пример
Во-вторых, сам запрос:
p.s.: ну и на будущее - вы после отсылки запроса, сразу читаете данные, это мягко говоря оптимистично. Данные следует читать или с задержкой, что есть нехорошо, ибо может привести к пропуску данных после чтения или с ожиданием в потоке. Сей поток приема данных у данной обертки SerialPort имеется и если вы ее не использовали, то это говорит о невнимательном ознакомлении с возможностями обертки (класса, компонента).
2
|
14 / 14 / 1
Регистрация: 02.03.2013
Сообщений: 192
|
|
03.04.2014, 16:05 [ТС] | 3 |
Использовал 0xFFFF - спасибо, попробую.
Данные в порядке, сниферром сразу же и смотрю. Там таймаут достаточный. С serialPort знаком немного, но ReadByte() меня никогда ранее не подводил
0
|
14 / 14 / 1
Регистрация: 02.03.2013
Сообщений: 192
|
|||||||||||
03.04.2014, 16:22 [ТС] | 5 | ||||||||||
Там в буквальном смысле два байта переслать ( + modbus составляющие пакета)
В большинстве случаев, что бы я ни слал в rs232, оттуда приходит :
А тут абракадабра. Буду копать, мб подключени корявое
0
|
03.04.2014, 16:43 | 6 |
Приложите дамп запроса и ответа из Portmon в режиме отображения HEX, экспортированный в txt-файл в свой пост. Поглядим, что вы на самом деле шлете и что приходит, а также все остальное. Выделять, вырезать по своему усмотрению не нужно.
p.s.: среди прочего, не перепутали-ли вы местами дифсигналы A/B при подключении 485-го?
1
|
14 / 14 / 1
Регистрация: 02.03.2013
Сообщений: 192
|
|
03.04.2014, 17:03 [ТС] | 7 |
Да кажись вроде нет. А к А, ну а В соответственно к В.
У девайса была еще GND, но никуда подключать не стал. P.s. мне кажется, где то я накосячил в распайке 2х концов rs232 кабеля, т.к. у хитрого преобразователя интерфейса нет клеммника, а только rs232 (на выходе). raxp, а как ты думаешь, имеется ли некая процедура проверки корректности цепи ПК - линия - прибор, типичной для этой схемы? Частенько приходится работать с железками имеющими RS485 (правда только учусь), и было бы классно, если был бы способ проверить цепь. P.s. с портмона лог положу завтра, т.к. компутер уже далеко. Спасибо за советы! P.s. а если замкнуть на rs232 A+B (RX/TX) на штекере к ПК и попробовать прозвонить их (А и B) мультиметром около прибора? Хотя... Добавлено через 10 минут P.s.s а как прикладывать файлик - не разобрался. Вот он : U139.LOG Два запроса на COM2. Смущает что никак это на сообщение об ошибке не похоже. Вообще ответ на modbus не похож, мусор какой то
0
|
03.04.2014, 17:08 | 8 |
Вы можете замкнуть RX/TX (3/4) пины на RS-232 порту и послушать свое эхо в терминале на ПК. А замыкать A/B линии 485 маразм, ибо это двухпроводная диффлиния, а не RX/TX. Добавлено через 3 минуты
0
|
1978 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
06.04.2014, 12:45 | 9 |
Правильный ответ:
Ошибка здесь:
Вы в подсчет CRC закидываете в том числе и сами байты CRC, коих быть не может. Нужно использовать CRC16(Query, 4); но смущает другое - вам контроллер "отвечает" на то, что не должен принимать, соответственно, либо на вашем RS485 наводится куча помех, либо как-то не так сделан переходник RS485 и выполнено управление направлением передачи. Попробуйте FLUSH'ить буфер RX перед передачей пакета - ведь неизвестно что было до этого на шине, и что сидит в буфере? - вот это смущает. Такого быть не должно.
1
|
14 / 14 / 1
Регистрация: 02.03.2013
Сообщений: 192
|
|
07.04.2014, 11:17 [ТС] | 10 |
Да, это я от балды посылал, чтобы проверить его реакцию
Ситуация по прежнему такая же. Сменил преобразователь интерфейса на адекватный, снял с рабочего устройства. Скачал программу ModBus Tester. Она отсылает немного другой формат пакета - однако в ответ приходит то же самое. Буду копать в сторону железа. Кстати, я так и не понял - modbus tester помимо прочего запрашивает (для посылки) такое значение как "Количество", я так понимаю это кол-во "байт в ответе", или как то так. Однако в спецификации протокола ModBus я этого не заметил. Попробую почитать еще и связаться с разработчиками.
0
|
1978 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
07.04.2014, 12:11 | 11 |
это самое и смущает. Очень похоже, что 485й интерфейс не работает. Проверьте наличие и/или отсутствие резисторов 120 Ом.
ЗЫ: у меня на самодельном конвертере (FT232 + AD485) резистор наоборот - рушит все сеть, пришлось оторвать, чтобы шина начала работать. Почему так - не было осцила под рукой, чтобы разобраться.
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|||||||||||
07.04.2014, 13:01 | 12 | ||||||||||
Мой CRC для ModBus
Формирование пакета
0
|
14 / 14 / 1
Регистрация: 02.03.2013
Сообщений: 192
|
|
08.04.2014, 12:07 [ТС] | 13 |
Какая то бабайка живет в сети по моему.
По прежнему контроллер в ответ шлет что то несуразное. 1. Цепь RS485 прозвонил - целая 2. Шнур RS232 от ПИ-1 (преобразователя интерфейсов) до com порта прозвонил - целый. 3. Распайка rs232 от ПК до ПИ-1 вроде правильная - при вставке двух концов друг в друга - концы RX/TX/Земля совпадают. Чудеса продолжаются - если отцепить цепь RS485 от преобразователя интерфейса - в ответ приходит та же ересь. Я в недоумении. Пойду возьму свой преобразователь, 100% исправный
0
|
14 / 14 / 1
Регистрация: 02.03.2013
Сообщений: 192
|
|
08.04.2014, 14:20 [ТС] | 15 |
Ура, это УГ включилось!
Как оказалось проблема крылась в двух конвертерах - "ПИ-1" и предыдущем - до него стояло чудо-юдо непонятных годов, коробка такая. Воткнул на линию ПИ-2 (RS485 -> USB), опрос пошел, байты бегут, правильный modbus пакет прямо радует глаз. Спасибо большое всем, кто откликнулся, отдельно raxp за каждое внимание к моей теме. Добавлено через 5 минут Форма пакета пошел следующий : [байт адреса]|[байт функции]|[два байта первого регистра]|[два байта кол-во регистров]|[два байта CRC]
0
|
08.04.2014, 14:20 | |
08.04.2014, 14:20 | |
Помогаю со студенческими работами здесь
15
Работа с Modbus RTU RS-485. Работа с Modbus протоколом... Работа с модулем ICP DAS I-8831 по Modbus RTU Работа по Modbus RTU с ПЛК Intellisys из своих приложений Нет связи между модулем ввода (modbus rtu slave) и программой modbus poll на ноутбуке Преобразование modbus rtu в modbus tcp Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |