Реализация Modbus RTU во встроенном C

Мой вопрос был бы странным, поэтому прошу прощения за это.

Я собираюсь реализовать Modbus RTU Master в электронном устройстве под названием «DiGi Module Connect Me 9210». С этого устройства я запрошу некоторые данные от PIC, такие как узлы и температуры, а также некоторые другие данные. Я просто хочу реализовать FC 04/03/16 в своем устройстве.

Модуль Digi - это электронное устройство, поэтому для этой цели я собираюсь создать графический интерфейс C # для запроса данных с PIC с помощью графического интерфейса через модуль DiGi, поскольку Digi будет подключен к PIC с использованием протокола Modbus RTU. И после получения данных в Digi мы отправим эти данные в облако с помощью REST API.

От GUI к DIgI у меня будет TCP / IP, а от DIGI к PIC у меня будет Modbus RTU, а между Cloud и DiGi у меня будут REST APis.

Я хочу вырезать свои данные на C #, поэтому я просто отправлю запрос из графического интерфейса в PIC через DIGI (так что мой DIGI будет мостом между графическим интерфейсом и PIC), чтобы настроить узел или получить данные узла от PIC. Мне нужно прочитать почти 9999 регистров за один раз, используя запрос 80 или что-то еще, чтобы получить данные из регистров 3X / 4X. Теперь вопросы есть.

☺ Как реализовать Modbus RTU в устройстве или системе?

☺ Как я могу прочитать все регистры 9999 через графический интерфейс, потому что я могу захотеть прочитать все данные RunTime из регистров 3X?

☺ Как я могу записать / прочитать все регистры 4X за один раз.?

Мы также реализуем технику разбиения на страницы, так что это означает, что страница 0 будет иметь 9999 регистров, а страница 1 будет иметь 9999 регистров. Поэтому, если я хочу считать температуру, мне нужно перейти на страницу 0 и прочитать регистры, а если я хочу прочитать значения скорости, мне нужно перейти на страницу 1 и проверить все регистры.

Графический интерфейс будет выглядеть как-то

Пользователь добавит номер узла, затем температуру и отправит запрос.


person Master Blaster    schedule 25.09.2015    source источник
comment
Несколько лет назад я действительно использовал DiGi Connect Me для работы с Modbus ... Но некоторые отзывы на ваш вопрос (вопросы): вы запрашиваете много разной информации. Лучше, если вы конкретизируете и разберетесь.   -  person Nanomurf    schedule 26.09.2015
comment
Спасибо @Nanomurf за ответ. Позвольте мне сломать это. - ›Как реализовать оба Modbus RTU в модуле Digi? - ›Как прочитать 9999 регистров с помощью потоков в c # gui за один раз? - ›Как я могу управлять потоками ..? -   -  person Master Blaster    schedule 28.09.2015
comment
@MuhammadAzeem Здесь слишком много вопросов, и объем многих из этих вопросов слишком велик - они, по сути, просят людей либо написать ваш код, либо спроектировать всю вашу систему, и это не подходящие вопросы здесь. (Также непонятно, что означает удаление моих данных). Вам лучше задать несколько небольших конкретных вопросов, по одному вопросу на каждое сообщение.   -  person nos    schedule 28.09.2015
comment
@nos Спасибо за комментарий. Думаю, вы правы, я должен отвечать по одному вопросу на пост.   -  person Master Blaster    schedule 28.09.2015


Ответы (1)


В этом вам может помочь библиотека libmodbus. Я реализовал эту библиотеку в модуле digi, вам нужно только поместить свои регистры в цикл, а также скопировать регистры, чтобы преобразовать его в rtu.

person Crazy Engineer    schedule 16.05.2016