1 (2015-10-14 10:08:39 отредактировано Joint)

Тема: Функции Modbus RTU

Здравствуйте!

Подскажите пожалуйста, поддержку каких функций протокола Modbus RTU должен предоставить разработчик для:
а) чтения состояний дискретных входов (до 16 входов)
б) чтения состояний дискретных выходов (до 16 выходов)
в) чтения текущих измерений в формате float (4 байта)

На первый взгляд удобно "упаковать" состояния входов и выходов в два регистра uint16_t и прочитать функцией 0x03, а там распаковывать.  Но, возможно, это не самый лучший способ и тот кто будет распаковывать будет не доволен.

PS: И вообще, какие функции обязательно нужны. Может для тестирования и т.п.

2

Re: Функции Modbus RTU

Можно использовать и функцию 03, но в протоколе Modbus для дискретных входов и выходных реле предусмотрены специальные функции.
Дискретные входа:
    - чтение, функция 02.
Выходные реле:
   - чтение, функция 01,
   - запись (управление реле), функция 05.

3

Re: Функции Modbus RTU

avlasjuk пишет:

Можно использовать и функцию 03, но в протоколе Modbus для дискретных входов и выходных реле предусмотрены специальные функции.
Дискретные входа:
    - чтение, функция 02.
Выходные реле:
   - чтение, функция 01,
   - запись (управление реле), функция 05.

Спасибо!
Для управления реле прибор должен иметь такую функцию "выход с программируемым назначением: дистанционное управление". Не владею точной терминологией, но, думаю, что смысл понятен. А вообще такая функция используется часто и как разрешается доступ к реле. Протокол не имеет возможности авторизации, шифрования...Мало ли кто может команду прислать.

Присоединяйтесь!!! Мы в социальных сетях и на Ютуб.

4

Re: Функции Modbus RTU

Joint пишет:

А вообще такая функция используется часто и как разрешается доступ к реле. Протокол не имеет возможности авторизации, шифрования...Мало ли кто может команду прислать.

Можно реализовать следующим образом:
По умолчанию работа функций записи Modbus блокируется.
Выделяется одлельный регистр Modbus, при записи в который определенного значения разрешается режим записи (работы функций 05 и 06).
Соответственно для подачи команды на управление реле нужно предварительно послать команду на разрешение.