Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Написание нового протокола


Автор: Vitazi 10.2.2010, 12:21
Доброго времени суток! Такой вопрос: есть контроллер PIC16 он должен общаться с компом по 485 интерфейсу, хочу написать свой протокол, т.к. под промышленный протокл Modbus сказали сложновато будет написать прошивку на контроллер. Соответственно вопрос с чего начать разработку протокола? что для это нужно? сам пишу на Дельфи!
Будет мощный ИБП на 100 ампер.. с множеством всяких защитных функций с кучей установок разных токов заряда..напряжений.. и т.д., будет вестись журнал сбоев. это все будет происходить на уровне контроллера.
И будет сервисный компьютер, который будет соединяться по 485 интерфейсу с данным ИБП, по приезду специалиста.
Соответственно в программе должна быть организована установка значений тока, напряжения, считывание с контроллера журнала сбоев.
я так полагаю должна быть передача и прием по 1, 2, 4 байта.

Автор: UniBomb 10.2.2010, 13:06
Цитата(Vitazi @  10.2.2010,  13:21 Найти цитируемый пост)
под промышленный протокл Modbus сказали сложновато будет написать прошивку на контроллер

Ну слушайте их. Реализовать свой протокол будет ничуть не легче. Тем более учитывая тот факт, что реализаций этого протокола существует превеликое множество и ещё чуть-чуть, причём под самые разнообразные платформы.

В общем и целом всё выглядит так:

1. Функция приёма сообщений должна принимать данные и распознавать сообщения (по маркерам или по времени)
2. Приняты данные должны быть проверены на валидность (подсчёт контрольных сумм и т.п.)
3. Распознавание типа сообщения (узнать какая команда пришла)
4. Передать управление соответствующей функции (которая обработает принятые данные в соответствии с принятой командой)
5. Если нужно передать ответ, то он формируется в той же функции
6. Ответные данные передаются функции передачи данных
7. ...
8. PROFIT!

Начинается проектирование протокола с определения методов контроля данных, функциях протокола, механизмах избежания коллизий, механизмов обработки коллизий и т.д. Но никак не с предположения о количестве передаваемых байт.

зы: ещё раз повторю мысль из первого абзаца - не изобретайте велосипедов и ищите готовую реализацию модбаса и допиливайте под свои нужды.

Добавлено через 3 минуты и 52 секунды
ззы: только щас заметил что тема не в разделе о контроллерах, а в делфях  smile 

Автор: UniBomb 10.2.2010, 13:21
Цитата(Vitazi @  10.2.2010,  13:21 Найти цитируемый пост)
контроллер PIC16

Цитата(Vitazi @  10.2.2010,  13:21 Найти цитируемый пост)
Дельфи

Вам придётся забыть либо первое, либо второе  smile 

Автор: Vitazi 10.2.2010, 17:17
Сам никогда не писал программ для работы с какими либо устройствами...
Это так сказать на диплом дали такую задачу. Правда преподаватель больше специализируется в схематехнике нежели в програмье..
НО он почему то настаивает первым делом разработать свой какой нить простенький протокол... и уж потом пробовать с модбасом.. так что задача пока что такая стоит.. 

Цитата

В общем и целом всё выглядит так:

1. Функция приёма сообщений должна принимать данные и распознавать сообщения (по маркерам или по времени)
2. Приняты данные должны быть проверены на валидность (подсчёт контрольных сумм и т.п.)
3. Распознавание типа сообщения (узнать какая команда пришла)
4. Передать управление соответствующей функции (которая обработает принятые данные в соответствии с принятой командой)
5. Если нужно передать ответ, то он формируется в той же функции
6. Ответные данные передаются функции передачи данных
7. ...
8. PROFIT!

Ну это я примерно так себе и представлял, единственное что. не знаю с чего начать писать.. т.е. вообще представления не имею))

Цитата

Вам придётся забыть либо первое, либо второе

Неужели на дельфи не возможно организовать данную программу?! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)