MODBUS_称重模块
<h1>一、485称重控制板</h1>
<p><strong>默认参数:</strong>
供电:12v(使用锁控2A以上,不使用500ma以上即可)
485接口:1个
称重接口:1个
锁控接口:1个
测温接口:1个(DS18B20)</p>
<h2>1、485通信</h2>
<p>波特率:115200
节点号:1(0xfe为通配地址)
<strong>系统级指令:</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">功能</th>
<th style="text-align: left;">指令</th>
<th style="text-align: left;">返回</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">01节点2S后重启</td>
<td style="text-align: left;">010603E800FF49FA</td>
<td style="text-align: left;">01 06 03 E8 00 FF 49 FA</td>
</tr>
<tr>
<td style="text-align: left;">改485节点号为15</td>
<td style="text-align: left;">010603E9000F187E</td>
<td style="text-align: left;">0F 06 03 E9 00 0F 19 50</td>
</tr>
<tr>
<td style="text-align: left;">改485波特率为9600</td>
<td style="text-align: left;">010603EA0003E87B</td>
</tr>
</tbody>
</table>
<p>注意:修改波特率后需重启生效,修改节点地址立即生效;</p>
<pre><code>15节点2S后重启 0F0603E800FF48D4
改485节点号为1 0F0603E900019894
改485波特率为115200 010603EA0008A9BC</code></pre>
<h2>2、称重功能</h2>
<p><strong>使用说明:</strong>
①新模块上机后必须完成一次“归零”和“校准”操作后,读取重量才准确。
②量程与外接应变器型号有关,测量超过量程会导致应变器永久损坏!
③精度范围:使用1kg应变器时,精度±1g。
④称重传感器安装务必严格按照指示标记,标记箭头下方安装下支架,另外一侧上方安装上支架。安装错误无法读取重量或读取错乱。</p>
<p><strong>控制指令:</strong>
--读取重量
01 03 1131 0001 D0f9
01 03 04 00 00 00 63 BA 1A //返回重量100g</p>
<p>--归零
01 06 1130 0001 4D39</p>
<p>--校准(示例为100g砝码)
01 10 1131 0002 04 00000064 F0cc</p>
<h2>3、锁控功能</h2>
<p><strong>开关量表写,05指令</strong>
开锁:
~~01 05 0065 ff00 9C25 --默认保持时间开锁后关闭
01 05 0065 ffff DC65 --常开
01 05 0065 0000 DDD5 --关闭
01 05 0065 1388 D083 --开启保持5000ms后关闭~~
01 05 0065 01f4 DDC2 --开启1锁保持500ms后关闭
指令说明:地址 指令 寄存器 参数 CRC16</p>
<p><strong>读取开关量,01指令</strong>
读指定锁状态:
01 01 0065 0001 EDD5 --读1锁
01 01 01 01 9048 --开锁
01 01 01 00 5188 --关锁
发送指令:
格式:地址 指令 寄存器地址 锁数量 CRC16</p>
<h2>4、测温功能</h2>
<p>读DS18B20序列号(104):
01 03 0068 0008 C5d0
01 03 08 D71FFE9DFFFFFF92 0FD7</p>
<p>启动一次温度检测(108 0x6c),等待1s后再读取:
01 06 006c 0000 49D7
01 06 006C 00 00 49 D7 //返回无有效数据,仅作485响应</p>
<p>读温度(108 0x6c):
01 03 006c 02 B545
0103 02 01 B8 B9 A6 //高位:01, 低位 b8,还需要计数得出温度</p>
<hr />
<h1>二、4G网关控制协议</h1>
<p>后台系统与4G网关,使用MQTT协议进行通信。上行主题:上线消息、离线消息、数据通信消息,下行主题:数据消息。
4G网关默认连接迅鸣云,如需修改至私有云,请参照4G网关设备教程。</p>
<h3>1、离线消息</h3>
<pre><code class="language-json">设备离线超时后发射【MQTT--&gt;服务器】(默认值,如需修改参照4G_DTU章节)
/xm/sh/will/mqtt/1510100110133305/2006/v2
willTopic</code></pre>
<h3>2、上线消息</h3>
<pre><code class="language-json">设备开机连接服务器后发射【设备--&gt;服务器】
/xm/sh/online/mqtt/1510100110133305/2006/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;1729675601&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;nodeid&quot;:&quot;000&quot;}]}}</code></pre>
<h3>3、数据通信消息</h3>
<p>正常清空下业务服务器与设备进行的数据交互。</p>
<pre><code class="language-json">3.1同步消息(开机后10s+定时同步,默认60s一次)【设备--&gt;服务器】
/xm/sh/response/mqtt/1510100110133305/2006/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;1729675283&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;nodeid&quot;:&quot;000&quot;,&quot;action&quot;:&quot;sync&quot;,&quot;serviceid&quot;:&quot;20060101&quot;,&quot;params&quot;:{&quot;15&quot;:&quot;38&quot;,&quot;20&quot;:&quot;0&quot;,&quot;11&quot;:true,&quot;24&quot;:true}}]}}
备注:15参数是信号强度0~100%;20参数是电池电量0~100%,11参数为4G主机1号反馈接口状态,24参数为4G主机2号反馈接口状态
3.2开锁(值==“1”,值类型:string)【服务器--&gt;设备】
/xm/sh/request/mqtt/1510100110133305/1111/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;2001&quot;:&quot;1&quot;}}]}} //开1号节点锁
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;2002&quot;:&quot;1&quot;}}]}} //开2号节点锁
备注:a、默认开锁时间可以通过修改网关开锁保持时间修改;b、通过携带“46”指令手动指定开锁保持时间
3.3.1读锁状态(值==“0”,值类型:string)【服务器--&gt;设备】
/xm/sh/request/mqtt/1510100110133305/1111/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;2001&quot;:&quot;0&quot;}}]}}
3.3.2读锁状态返回(“1”开锁状态,“0”关锁状态,值类型:string)【设备--&gt;服务器】
/xm/sh/response/mqtt/1510100110133305/2006/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;1729676185&quot;,&quot;session&quot;:&quot;0&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;nodeid&quot;:&quot;000&quot;,&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;2001&quot;:&quot;1&quot;}}]}}
3.4.1查询重量(值类型:number)【服务器--&gt;设备】
/xm/sh/request/mqtt/1510100110133305/1111/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;2101&quot;:0}}]}}
3.4.2查询重量返回(值类型:number)【设备--&gt;服务器】
/xm/sh/response/mqtt/1510100110133305/2006/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;1729676602&quot;,&quot;session&quot;:&quot;0&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;nodeid&quot;:&quot;000&quot;,&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;2101&quot;:125}}]}}
3.5归零(值==1,值类型:number)【服务器--&gt;设备】
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;2101&quot;:1}}]}}
3.6校准,使用1000kg砝码(1 &lt; 值 &lt; 0xffffffff,值类型:number)【服务器--&gt;设备】
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;2101&quot;:1000}}]}}
</code></pre>
<p>3.7配置消息
参见4G网关配置项目</p>
<h1>测试指令</h1>
<h2>02节点</h2>
<pre><code>FE 06 03 E9 00 02 CD B4 #发送改为02节点号 -&gt; 会响应02 06 03 E9 00 02 D9 88
FE 06 03 E8 00 FF 5D F5 #重启 -&gt; 会响应 02 06 03 E8 00 FF 49 C9
02 05 00 65 01 f4 DD F1 #开锁 --&gt; 会响应 02 05 00 65 01 F4 DD F1 注意亮红灯
02 01 00 65 00 01 ED E6 #读锁 --&gt; 02 01 01 01 90 0C 打开状态 02 01 01 00 51 CC 关闭状态
02 03 11 31 00 01 D0 CA #读称重 -&gt;02 03 04 00 80 40 44 F9 28 返回</code></pre>
<h2>01节点</h2>
<pre><code>FE 06 03 E8 00 FF 5D F5 #重启01 06 03 E8 00 FF 49 FA
01 05 00 65 01 f4 dd c2 #开锁 01 05 00 65 01 F4 DD C2
01 01 00 65 00 01 ed d5 #读锁 01 01 01 01 90 48 开 01 01 01 00 51 88 关
01 03 11 31 00 01 d0 f9 # 读称重 01 03 04 00 80 C3 39 6B 39</code></pre>