Files
UKSI_TEST/AllLibs/Modbus/Doc/html/modbus__coils_8c.html
2025-12-16 17:57:59 +03:00

189 lines
13 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src/modbus_coils.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('modbus__coils_8c.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">modbus_coils.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Реализация работы с коилами Modbus.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="modbus__coils_8h_source.html">modbus_coils.h</a>&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for modbus_coils.c:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="modbus__coils_8c__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_src_2modbus__coils_8c" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_src_2modbus__coils_8c" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_src_2modbus__coils_8c">
<area shape="rect" title="Реализация работы с коилами Modbus." alt="" coords="140,5,330,64"/>
<area shape="rect" href="modbus__coils_8h.html" title="Работа с коилами Modbus." alt="" coords="179,112,291,139"/>
<area shape="poly" title=" " alt="" coords="238,64,238,96,232,96,232,64"/>
<area shape="rect" href="modbus__core_8h.html" title="Ядро Modbus протокола &#45; определения и структуры" alt="" coords="180,187,290,213"/>
<area shape="poly" title=" " alt="" coords="238,139,238,171,232,171,232,139"/>
<area shape="rect" href="modbus__config_8h.html" title="Конфигурационные параметры Modbus устройства" alt="" coords="5,336,126,363"/>
<area shape="poly" title=" " alt="" coords="179,205,145,210,109,221,77,238,50,263,45,276,44,291,53,321,48,323,39,292,39,275,46,260,73,233,107,216,144,205,179,200"/>
<area shape="rect" href="modbus__data_8h.html" title="Определения структур данных Modbus устройства" alt="" coords="180,261,290,288"/>
<area shape="poly" title=" " alt="" coords="238,214,238,246,232,246,232,214"/>
<area shape="rect" href="____crc__algs_8h_source.html" title=" " alt="" coords="60,261,156,288"/>
<area shape="poly" title=" " alt="" coords="214,216,145,256,142,251,211,212"/>
<area shape="rect" href="____modbus__compat_8h.html" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="314,261,457,288"/>
<area shape="poly" title=" " alt="" coords="255,211,339,252,337,257,253,216"/>
<area shape="rect" title=" " alt="" coords="7,411,124,437"/>
<area shape="poly" title=" " alt="" coords="68,363,68,395,63,395,63,363"/>
<area shape="rect" title=" " alt="" coords="203,336,267,363"/>
<area shape="poly" title=" " alt="" coords="238,289,238,320,232,320,232,289"/>
<area shape="poly" title=" " alt="" coords="103,290,83,324,78,321,98,287"/>
<area shape="poly" title=" " alt="" coords="365,263,281,222,283,218,367,258"/>
</map>
</div>
</div>
<p><a href="modbus__coils_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gae9b8595911d93cfbf8597f3356a494cc" id="r_gae9b8595911d93cfbf8597f3356a494cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="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.html#gae9b8595911d93cfbf8597f3356a494cc">MB_Coil_Write_Global</a> (uint16_t Addr, <a class="el" href="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.html#ga8ccf569b78a17a10ac7c80d52730753a">MB_CoilsOpTypeDef</a> WriteVal)</td></tr>
<tr class="memdesc:gae9b8595911d93cfbf8597f3356a494cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Выставить/сбросить коил по глобальному адресу. <br /></td></tr>
<tr class="memitem:ga82334048256e266170a4b3373be59b59" id="r_ga82334048256e266170a4b3373be59b59"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="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.html#ga82334048256e266170a4b3373be59b59">MB_Coil_Read_Global</a> (uint16_t Addr, <a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> *Exception)</td></tr>
<tr class="memdesc:ga82334048256e266170a4b3373be59b59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Считать коил по глобальному адресу. <br /></td></tr>
<tr class="memitem:ga39a02e8e4911a74a619d2ef29adcbad8" id="r_ga39a02e8e4911a74a619d2ef29adcbad8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="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.html#ga39a02e8e4911a74a619d2ef29adcbad8">MB_Process_Read_Coils</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:ga39a02e8e4911a74a619d2ef29adcbad8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработать функцию Read Coils (01 - 0x01). <br /></td></tr>
<tr class="memitem:ga918102931c9125a5e44a30e103d17e14" id="r_ga918102931c9125a5e44a30e103d17e14"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="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.html#ga918102931c9125a5e44a30e103d17e14">MB_Process_Write_Single_Coil</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:ga918102931c9125a5e44a30e103d17e14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработать функцию Write Single Coils (05 - 0x05). <br /></td></tr>
<tr class="memitem:ga6f4498cec8634820025aaa9c4623ba55" id="r_ga6f4498cec8634820025aaa9c4623ba55"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="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.html#ga6f4498cec8634820025aaa9c4623ba55">MB_Process_Write_Miltuple_Coils</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:ga6f4498cec8634820025aaa9c4623ba55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработать функцию Write Multiple Coils (15 - 0x0F). <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Реализация работы с коилами Modbus. </p>
<p>Модуль для доступа к coils внутри программы:</p><ul>
<li>Функции для доступа к coils по глобальным адресам</li>
<li>Макросы для доступа к coils по локальным адресам</li>
</ul>
<p>Модуль обработки команд для coils (битовых данных):</p><ul>
<li>Чтение coils (0x01) - упаковка битов в байты для передачи</li>
<li>Запись одиночного coil (0x05) - установка/сброс бита</li>
<li>Запись множественных coils (0x0F) - распаковка битов из байтов</li>
</ul>
<h1 class="doxsection"><a class="anchor" id="cvalid"></a>
Валидация данных:</h1>
<ul>
<li>Проверка соответствия количества байт и регистров</li>
<li>Валидация адресов через <a class="el" href="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.html#ga1e90bb28a4cf997250daab6470d5ffe3" title="Define Address Origin for Input/Holding Registers.">MB_DefineRegistersAddress()</a></li>
<li>Обработка исключений при некорректных запросах </li>
</ul>
<p class="definition">Definition in file <a class="el" href="modbus__coils_8c_source.html">modbus_coils.c</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><a href="modbus__coils_8c.html">modbus_coils.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>