Виртуальный мастер для отладки протокола MHBUS
Дата: 5 Марта 2017. Автор: Алексей
Долго ли, коротко ли, да народ освоил протокол MHBUS. Все бы ничего, да параллельно завалили меня письмами с просьбами помочь в поиске мелких недочетов. Разбирая проекты и выискивая в них ошибки я собрал статистику последних и понял что чаще всего при отладке появляется вопрос, кто виноват. То ли Мастер, то ли Сейв. Отсюда выросла идея написать программу для ПК виртуального Мастера. То есть программа будет прикидываться Мастером и опрашивать Слейвы. Сама формировать пакеты, сама разбирать пакеты присланные Слейвом. А пользователю остается только в нужные окошки подкидывать данные, выбирать команды да адреса и тыкать кнопочки. И так от слов к делу.
Вид программы.
А теперь описание органов управления.
Вся суть работы программы заключается в том что нужно подключиться к Слейву через СОМ порт ПК и можно начинать общаться с ним. После подключения СОМ порта активируется панель управления. На панели можно менять ID Слева, выбирать его сетевой адрес или поменять его. Так же есть возможность отправки широковещательных запросов. В поле команд можно выбирать стандартные команды, такие как замена адреса, чтение температуря или давления. Запись или чтение параметров или дискретов в регистрах. Можно писать и читать байты данных. Есть возможность сочинять свои команды. Программа сама формирует пакеты и так же их разбирает при получении от слейва. Теперь не нужно думать о старт и стоп байтах, не нужно думать о контрольной сумме. Весь пакет формирует программа.
А теперь самое интересное.
Файл для скачивания MHBUS Терминал
Заголовочные файлы для подключения к проекту mhbus.h, mhbus_const.h
Кино о работе терминала.
Юрий 07.03.17 11:17
На Windo ws 7 64 не запускается.
Алексей 07.03.17 11:18
DotNet ставить надо. Я пишу проги под win7 x64
Алексей 07.03.17 11:21
В архиве с программой лежит папка Microsoft. В ней есть файл для установки DotNet.
Юрий 07.03.17 11:45
Да в том и вопрос, что установил do tnet
Алексей 07.03.17 12:36
А что за ошибка выскакивает?
Алексей 07.03.17 12:41
Пересобрал проект и обновил ссылку. Должно работать.
Юрий 08.03.17 00:52
Вся проблема в firewall у меня стоит версия 3.5 и не могу обновить до 4.0 наверно не судьба мне запустить программу
Алексей 08.03.17 10:34
Почему? Я по позже пересоберу проект под 3.5 Только почему фаервол не дает установить родное ПО. Файл в папке скачен с сайта мелкософта.
Алексей 08.03.17 14:33
Не. Студия ругается на 3.5. А если отключить фаервол и обновить до 4 версии. Или попробовать установить VisualStudio. Она бесплатная для домашнего применения.
Юрий 08.03.17 16:16
VisualStudio у меня установлена.
Алексей 08.03.17 17:27
Какая версия? У меня 2010.
Юрий 10.03.17 10:27
У меня тоже. Не могли Вы сделать инсталашку как у вашего генератора кода. Он у меня работает без проблем. Спасибо.
Алексей 10.03.17 10:41
А инсталятор ничего не делает. Он просто распихивает файлы и папки. А какую ошибку выдает при запуске?
Алексей 10.03.17 11:54
Пересобрал в 15 студии под DotNet 3.5
Юрий 11.03.17 19:49
Ура!!! Заработало!!!
Александр 20.03.17 21:09
Выложите пожалуйста исходник который залит в avrку. Хотел посмотреть как реализована запись и чтение параметров в регистры.
Алексей 21.03.17 11:21
Хорошо.
Алексей 21.03.17 14:47
Исходник слейва. Архив
Евгений 26.03.17 17:18
Алексей! Привет. тестил тут терминал, нашел ошибку, по команде запрос 4х байтов отправляет команду 2F, при запросе 3х байт отправляет команду 2E (вернуть 4 байта данных). А так все классно работает, огромное спасибо. Как доделаю свой проект, отпишусь с фотоотчетом и комментариями. Надеюсь опубликуешь статью здесь на сайте
Евгений 26.03.17 17:29
Может я конечно взял старый файл mhbus_const :
#define MH_BUS_RETURN_4_BYTE 0x2E // Âåðíóòü 4 áàéòà äàííûõ
#define MH_BUS_RETURN_8_DIS 0x2F // Âåðíóòü 8 äèñêðåòîâ (ïåðâûé áàéò)
#define MH_BUS_RETURN_16_DIS 0x30 // Âåðíóòü 16 äèñêðåòîâ (ïåðâûå 2 áàéòà)
#define MH_BUS_RETURN_24_DIS 0x31 // Âåðíóòü 24 äèñêðåòà (ïåðâûå 3 áàéòà)
#define MH_BUS_RETURN_32_DIS 0x32 // Âåðíóòü 32 äèñêðåòà (âñå 4 áàéòà)
#define MH_BUS_WRITE_ADD_PARAM 0x33 // Çàïèñàòü çíà÷åíèå ïàðàìåòðà â ðåãèñòð ïî àäðåñó
#define MH_BUS_WRITE_ADD_DIS 0x34 // Çàïèñàòü äèñêðåò â ðåãèñòð ïî àäðåñó
Алексей 26.03.17 18:02
Ща проверю и исправлю.
П.С.
Проверил. Это старые заголовочные файлы. Я добавил новые под ссылкой на программу терминал.
П.С.
Проверил. Это старые заголовочные файлы. Я добавил новые под ссылкой на программу терминал.
Евгений 26.03.17 20:04
Так и понял что где то старые файлы ))
Алексейbird 14.09.18 09:09
Алексей, уж не сочтите за наглость)), но вы можете выложить исходник этой программы)
Алексей 15.09.18 08:30
Хорошо, в понедельник пороюст в компьютере. Или накидаю прогу заного.
Алексейbird 21.09.18 09:27
Алексей, а в какой понедельник? /сорри за шутку/))
Алексей 22.09.18 07:55
Должен был в тот. У меня сосед сгорел в деревне и спалил мне крышу. Дом новый. Сейчас бегаю между участковым, пожарным и соседом. Времени нет. Утресу вопрос возмещения убытков и посмотрим код) фм.
Алексейbird 28.09.18 09:34
Алексей, возможность порыться в компе не появилась?
Алексей 29.09.18 07:09
Пока нет. Дел по самые помидоры. Гляну в вс.
Алексейbird 17.10.18 13:29
Алексей, добрый день! Я уже наверное начинаю надоедать) Но всё же)))
Алексей 17.10.18 22:45
Это скорее я надоел обещаниями. У меня работы по самые помидоры. Ухожу из дома темно, прихожу тоже темно. Поел и спать. А в выходные дом строю. Если не забуду, то в пятницу посмотрю. Напомни мне в четверг.
Алексейbird 18.10.18 13:37
Да в общем-то уже четверг))) Похоже ты совсем заработался, раз дни замечаешь, пора в отпуск!
Кстати, а работа также связана с программированием?
Кстати, а работа также связана с программированием?
Алексейbird 18.10.18 16:25
*дни не замечаешь
Алексей 18.10.18 19:19
Да, с stm32 работаю. Точно, пора в отпуск)
Алексейbird 25.10.18 21:27
Алексей, напоминаю что сегодня четверг, ну так на всякий случай :D
Алексей 26.10.18 01:17
Вот блин время летит. Ок. Завтра сделаем.
Алексей 26.10.18 13:37
Ну это я собственно готов))) Куда кидать. Почту плиззз.
Алексейbird 26.10.18 22:12
Отправил письмо на avrki@avrki.ru. Жду ответа. Спасибо!
Алексей 27.10.18 01:09
Уже ответил.
Пожалуйста.
Пожалуйста.