PDA

Просмотр полной версии : МВА-8 и MODBUS



src
15.07.2009, 17:16
Добрый день.

Вопрос в следующем:
имеется прибор МВА-8 (версия прошивки 7.5), подключенный через преобразователь к порту COM. На компьютере LINUX. И есть желание использовать для общения с прибором протокол MODBUS-RTU, так как нужно всего лишь вычитывать результаты измерений по всем каналам. Отправляю на порт запрос

0x16 0x03 0x00 0x00 0x00 0x30 CRC CRC,

а в ответ тишина.
В чем тут может быть дело???

По протоколу ОВЕН работа идет нормально, а MODBUS молчит.
Протокол в конфигураторе изменил на MODBUS-RTU

magirus
15.07.2009, 22:16
а модуль когда приобретался?
возможно в нем еще не реализован модбас?

Rand0m
20.07.2009, 14:48
По протоколу ОВЕН работа идет нормально, а MODBUS молчит.
Протокол в конфигураторе изменил на MODBUS-RTU

1. А после изменения протокола питание сбрасывали ?
2. После сброса питания конфигуратором снова не подключались ? (После соединения с конфигуатором протокол чудесным образом меняется на ОВЕН :D )

Малышев Олег
20.07.2009, 15:23
Адрес прибора в десятичной 16, в hex = 0x10
т.е. запрос будет начинаться не
0x16 0x03 0x00
а
0x10 0x03 0x00

Малышев Олег
20.07.2009, 15:24
Да и запрос какой то странный, 48 регистров сразу прибор не отдаст

SvetlyLuch
21.10.2009, 03:33
Добрый день
Подскажите пожалуйста, будет ли работать следующая схема: устройства по Modbus связаны с преобразователем, дальше по Ethernet со SCADA. Будет ли работать такая схема?

Кирилл Валюнин
21.10.2009, 12:53
да , будет

Кирилл Валюнин
23.11.2009, 09:23
видимо, путаете. Crc и есть контрольная сумма, которая вычисляется по значениям байтов 1,2,3

multimorf
18.05.2015, 15:29
Здравствуйте. Я уже неделю изучаю ваши форумы, но найти что-либо полезное так и не смог, кроме того, что прибор протокол общения определяет автоматически. У меня 3 прибора: МВ110-8АС, МУ110-6У, МУ110-8Р. Я пытаюсь связаться с МВ110-8АС через ком порт консольно и ничего не выходит. Воткнут сразу в com1 материнской платы. Первичная задача - общаться консольно из под linux (использую gtcterm). Далее пойдёт код на Python. Сейчас я нахожусь на уровне уважаемого SRC потому и пишу в эту тему. Я НЕ МОГУ прорваться к прибору НАПРЯМУЮ - получилось только из под Windows с утилиты Конфигуратор и с утилиты bb_commtest для modbus (позволяет отсылать только команды записи и чтения регистров в формате modbus RTU). USB переходинк - использую для Windows (и под Linux тоже пробовал его с дровами - не помогло).

Настройки порта:
для Linux название /dev/ttyS0 для Windows com1
скорость 9600 8/1
Паритет none контроль потока none

С bb_commtest у меня выходят следующие диалоги:
100300000001874B
1003020002C586

1003000C014748
10030200C845D1

10030058010698
10830290F4

1003008800010761
1003020006C445
причём эти диологи получаются при настройке 9600 8/2 при 8/1 программа работает исключительно с паритетом и выдаёт билиберду. Под Linux пробовал и 8/1 и 8/2...
первые три регистра читал наугад, в четвёртом, я так понимаю, он мне ответил "аппаратный сброс" - причина включения устройства.
Эти же строки я пробую вводить gtcterm и в режиме шестнадцатеричного ввода и в режиме ASCII
CRC генерировал тут http://vk.com/away.php?utf=1&to=http%3A%2F%2Fwww.lammertbies.nl%2Fcomm%2Finfo%2 Fcrc-calculation.html
В основное окно программы макросом пишу:
С полиномом для ASCII modbus
:1003008800013E2A\0D - этот вариант на всякий случай
:1003008800012A3E\0D - этот правильный по моему мнению
С полиномом для обычного ASCII crc-16
:1003008800014E3C\0D
:1003008800013C4E\0D
В окно для шестнадцатеричного ввода пишу:
С полиномом для RTU modbus
10 03 00 88 00 01 07 61 0D - совпадает с тем, что пишет утилита bb_commtest
10 03 00 88 00 01 61 07 0D
С полиномом для обычного RTU crc-16
10 03 00 88 00 01 07 7A 0D
10 03 00 88 00 01 7A 07 0D

На всё ОВЕН упрямо молчит. Пробовал писать писать из Гиппер терминала (в ASCII режиме соответственно) те же строки, ещё из терминала Terminal 1_9_b (тоже ASCII) - ОВЕН молчит.
PS хочу указать, что я новичок и в com портах и в modbud и в приборах ОВЕН. Документацию всю перебирал и по ОВНУ и по modbus. может что и пропустил.
Самые простые вопросы, которые возникли:
1. Что я делаю не так?
2. Правильно ли указываю начало/конец строки
3. Правильно ли всё с CRC
4. нужны ли разделители в режиме ASCII
5. Управление потоком нужно или нет?
6......
опишите пожалуйста весь процесс работы из под линукс в терминале, кто эти занимался. Спасибо