Здравствуйте. Я уже неделю изучаю ваши форумы, но найти что-либо полезное так и не смог, кроме того, что прибор протокол общения определяет автоматически. Возможно стоит как-то упорядочить его, создать отдельно инструкции для линуксоидов.
У меня 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 программа работает исключительно с паритетом и выдаёт билиберду.
первые три регистра читал наугад, в четвёртом, я так понимаю, он мне ответил "аппаратный сброс" - причина включения устройства.
Эти же строки я пробую вводить gtcterm и в режиме шестнадцатеричного ввода и в режиме ASCII, и 8/1 и 8/2 без паритета
CRC генерировал тут http://vk.com/away.php?utf=1&to=http...lculation.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. Правильно ли всё с CRC?
3. нужны ли разделители в режиме ASCII между байтами
4. Управление потоком нужно или нет? Вероятнее всего, мне кажется, я не правильно настраиваю COM порт, может интервалы какие-нибудь..
5. Начальник сваливает всё на версию COM интерфейса ПО. Дескать, она у gtcterm и Hyper Terminal одинаковая и не подходит к ОВЕН. Может ли быть такое?
Что я делаю не так? Опишите пожалуйста весь процесс работы из под линукс в терминале, кто этим занимался. Спасибо