\doxysection{E\+:/.WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/modbus\+\_\+holdregs.c File Reference}
\hypertarget{modbus__holdregs_8c}{}\label{modbus__holdregs_8c}\index{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Src/modbus\_holdregs.c@{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Src/modbus\_holdregs.c}}


Реализация работы с регистрами хранения Modbus.  


{\ttfamily \#include "{}modbus\+\_\+inputregs.\+h"{}}\newline
Include dependency graph for modbus\+\_\+holdregs.\+c\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{modbus__holdregs_8c__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga8b7134e2fc1b65111d536c5590321b80}{MB\+\_\+\+Holding\+\_\+\+Write\+\_\+\+Global}} (uint16\+\_\+t Addr, uint16\+\_\+t Write\+Val)
\begin{DoxyCompactList}\small\item\em Записать регистр хранения по глобальному адресу. \end{DoxyCompactList}\item 
uint16\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_ga0198b337d6944329b78c59521baf5738}{MB\+\_\+\+Holding\+\_\+\+Read\+\_\+\+Global}} (uint16\+\_\+t Addr, \mbox{\hyperlink{group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_ga4ade64cb3fabf37f010c1e297489980c}{MB\+\_\+\+Exception\+Type\+Def}} \texorpdfstring{$\ast$}{*}Exception)
\begin{DoxyCompactList}\small\item\em Считать регистр хранения по глобальному адресу. \end{DoxyCompactList}\item 
uint8\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_gac28127757ba25fe0b611612a785f663b}{MB\+\_\+\+Process\+\_\+\+Read\+\_\+\+Hold\+\_\+\+Regs}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg)
\begin{DoxyCompactList}\small\item\em Обработать функцию Read Holding Registers (03 -\/ 0x03). \end{DoxyCompactList}\item 
uint8\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga02e192a3d9f31737c45f074a04b37648}{MB\+\_\+\+Process\+\_\+\+Write\+\_\+\+Single\+\_\+\+Reg}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg)
\begin{DoxyCompactList}\small\item\em Обработать функцию Write Single Register (06 -\/ 0x06). \end{DoxyCompactList}\item 
uint8\+\_\+t \mbox{\hyperlink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga9c6ab159edb8dda6548b2228773ce919}{MB\+\_\+\+Process\+\_\+\+Write\+\_\+\+Miltuple\+\_\+\+Regs}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg)
\begin{DoxyCompactList}\small\item\em Обработать функцию Write Multiple Registers (16 -\/ 0x10). \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Реализация работы с регистрами хранения Modbus. 

Модуль для доступа к регистрам внутри программы\+:
\begin{DoxyItemize}
\item Функции для доступа к регистрам хранения по глобальным адресам
\end{DoxyItemize}

Модуль обработки команд для holding registers (регистров хранения)\+:
\begin{DoxyItemize}
\item Чтение множественных регистров (0x03) -\/ копирование данных в буфер ответа
\item Запись одиночного регистра (0x06) -\/ прямая запись значения
\item Запись множественных регистров (0x10) -\/ пакетная запись из буфера
\end{DoxyItemize}\hypertarget{modbus__holdregs_8c_hvalid}{}\doxysubsection{\texorpdfstring{Валидация данных\+:}{Валидация данных\+:}}\label{modbus__holdregs_8c_hvalid}

\begin{DoxyItemize}
\item Проверка соответствия количества байт и регистров
\item Валидация адресов через \doxylink{group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_ga1e90bb28a4cf997250daab6470d5ffe3}{MB\+\_\+\+Define\+Registers\+Address()}
\item Обработка исключений при некорректных запросах 
\end{DoxyItemize}

Definition in file \mbox{\hyperlink{modbus__holdregs_8c_source}{modbus\+\_\+holdregs.\+c}}.

