Modbus 0.3
Библиотека Modbus для STM
Loading...
Searching...
No Matches
Modbus Registers Map

Определение карты регистров и коилов More...

Collaboration diagram for Modbus Registers Map:

Topics

 Registers structures
 Стуруктура регистров (входных и хранения)
 Coils Structure
 Структура коилов

Classes

struct  MB_DataStructureTypeDef
 Структура со всеми регистрами и коилами модбас More...

Detailed Description

Определение карты регистров и коилов

Файл содержит объявления структур данных, доступных через Modbus:

  • Holding Registers (R/W) - регистры хранения
  • Input Registers (R/O) - входные регистры
  • Coils (R/W) - дискретные выходы

Базовая настройка под устройство:

  1. Настроить диапазоны адресов
  2. Настроить структуры данных:

Расширенная настройка под устройство:

  1. Добавить новый массив с нужными данными.
  2. Добавить дефайны для определения его начального адреса и количества элементов
  3. Добавить проверку адресов в MB_DefineRegistersAddress/MB_DefineCoilsAddress.

    Пример:

    #define R_USER_ADDR 555
    #define R_USER_QNT 16
    uint16_t user_regs[16];
    //...
    else if(MB_Check_Address_For_Arr(Addr, Qnt, R_USER_ADDR, R_USER_QNT) == ET_NO_ERRORS)
    {
    *pRegs = MB_Set_Register_Ptr(&user_regs, Addr-R_USER_ADDR); // ВАЖНО!
    // -R_USER_ADDR нужен чтобы взять адрес относительно начала массива
    }
    else
    {
    }
    MB_ExceptionTypeDef MB_Check_Address_For_Arr(uint16_t Addr, uint16_t Qnt, uint16_t R_ARR_ADDR, uint16_t R_ARR_NUMB)
    Check is address valid for certain array.
    #define MB_Set_Register_Ptr(_parr_, _addr_)
    Macros to set pointer to register.
    @ ET_NO_ERRORS
    no errors
    Definition modbus_core.h:78
    @ ET_ILLEGAL_DATA_ADDRESS
    Адрес данных, указанный в запросе, недоступен
    Definition modbus_core.h:80