Modbus 0.3
Библиотека Modbus для STM
Loading...
Searching...
No Matches
modbus_devid.h
Go to the documentation of this file.
1/**
2*******************************************************************************
3* @file modbus_devid.h
4* @brief Идентификаторы устройства Modbus
5*******************************************************************************
6@addtogroup MODBUS_DEVID Device Identifications Tools
7@ingroup MODBUS_INTERNAL
8@brief Функции для работы с идентификаторами устройства
9*******************************************************************************
10* @details
11Модуль реализации функции Read Device Identifications (0x2B):
12- Базовая идентификация (Vendor, Product, Revision)
13- Расширенная идентификация (URL, Model, User fields)
14- Поддержка потоковой передачи больших объектов
15
16@section devobj Объекты идентификации:
17- VendorName, ProductCode, Revision - обязательные
18- VendorUrl, ProductName, ModelName - опциональные
19- User objects - пользовательские поля
20- Поддержка до 128 пользовательских объектов
21******************************************************************************/
22#ifndef __MODBUS_DEVID_H_
23#define __MODBUS_DEVID_H_
24#include "modbus_core.h"
25
26
27/////////////////////////////////////////////////////////////////////
28///////////////---DEVICE IDENTIVICATIONS DEFINES---//////////////////
29
30/**
31 * @addtogroup MODBUS_DEVID
32 * @{
33 */
34
35#if MODBUS_NUMB_OF_USEROBJECTS > 0
36#define MODBUS_DEVICE_CONFORMITY 0x83
37#else
38#define MODBUS_DEVICE_CONFORMITY 0x82
39#endif
40
41/** @brief Структура для объекта (идентификатора устройства модбас) */
42typedef struct
43{
44 unsigned length;
45 char *name;
47
48/** @brief Структура со идентификаторами устройства модбас */
49typedef struct
50{
51 MB_DeviceObjectTypeDef VendorName;
52 MB_DeviceObjectTypeDef ProductCode;
54 MB_DeviceObjectTypeDef VendorUrl;
55 MB_DeviceObjectTypeDef ProductName;
56 MB_DeviceObjectTypeDef ModelName;
57 MB_DeviceObjectTypeDef UserApplicationName;
58
59 MB_DeviceObjectTypeDef Reserved[0x79];
60
65///////////////---DEVICE IDENTIVICATIONS DEFINES---//////////////////
66
67
68/////////////////////////////////////////////////////////////////////
69////////////////////---MODBUS FUNCTION DEFINES---////////////////////
70
71/**
72 * @brief Инициализация объектов
73 * @details С помозью этого дефайна инициализируются объекты в @ref MB_DeviceInentificationInit
74 */
75#define MB_ObjectInit(_p_obj_, _userstring_) \
76(_p_obj_)->length = sizeof(_userstring_);\
77(_p_obj_)->name = _userstring_;
78/**
79 * @brief Инициализация пользовательских объектов
80 * @details С помозью этого дефайна инициализируются пользовательские объекты в MB_DeviceInentificationInit
81 */
82#define MB_UserObjectInit(_pinfostruct_, _user_numb_) MB_ObjectInit(&(_pinfostruct_)->User[_user_numb_], MODBUS_USEROBJECT##_user_numb_##_NAME)
83
84
85
86/** MODBUS_DEVID
87* @}
88*/
89////////////////////---MODBUS MESSAGE DEFINES---/////////////////////
90
91
92
93/////////////////////////////////////////////////////////////////////
94/////////////////////////---FUNCTIONS---/////////////////////////////
95
96/**
97 * @addtogroup MODBUS_DEVID
98 * @{
99 */
100
101/* Записать Один Объект Идентификатора в массив данных */
102void MB_WriteSingleObjectToMessage(char *mbdata, unsigned *ind, MB_DeviceObjectTypeDef *obj);
103/* Записать Массив Объектов Идентификатора в массив данных */
104void MB_WriteObjectsToMessage(RS_MsgTypeDef *modbus_msg, unsigned maxidofobj);
105
106/** MODBUS_DEVID
107 * @}
108 */
109
110/**
111 * @addtogroup MODBUS_CMD_PROCESS_FUNCTIONS
112 * @{
113 */
114
115/* Обработать функцию Read Device Identifications (43/14 - 0x2B/0E) */
117/** MODBUS_CMD_PROCESS_FUNCTIONS
118 * @}
119 */
120/////////////////////////---FUNCTIONS---/////////////////////////////
121
122#endif //__MODBUS_DEVID_H_
123
uint8_t MB_Process_Read_Device_Identifications(RS_MsgTypeDef *modbus_msg)
Обработать функцию Read Device Identifications (43/14 - 0x2B/0E).
#define MODBUS_NUMB_OF_USEROBJECTS
Количество пользовательских объектов
MB_DeviceIdentificationsTypeDef MB_DEVID
Глобальная структура идентификаторов устройства
void MB_DeviceInentificationInit(void)
Инициализация идентификаторов.
void MB_WriteSingleObjectToMessage(char *mbdata, unsigned *ind, MB_DeviceObjectTypeDef *obj)
Записать Один Объект Идентификатора в массив данных
void MB_WriteObjectsToMessage(RS_MsgTypeDef *modbus_msg, unsigned maxidofobj)
Записать Массив Объектов Идентификатора в массив данных
Ядро Modbus протокола - определения и структуры
Структура со идентификаторами устройства модбас
Структура для объекта (идентификатора устройства модбас)
Structure for modbus messsage.