wordpress网站加载过慢,网站建设招标方案,php企业网站源代码,聊城做网站好的公司首先采用有人物联网的模块 #xff0c;连接有人云平台服务器 看云平台相关配置配置连接设备在线后 添加设备添加设备完成后 添加变量模板 变量模板的添加方式如下 #xff1a;本次采用的是标准的MODbus 协议添加一个温度变量温度变量如下显示云平台 下发数据 采集01 03 00 00…首先采用有人物联网的模块 连接有人云平台服务器 看云平台相关配置配置连接设备在线后 添加设备添加设备完成后 添加变量模板 变量模板的添加方式如下 本次采用的是标准的MODbus 协议添加一个温度变量温度变量如下显示云平台 下发数据 采集01 03 00 00 00 01 84 0A丛机返回数据 01 03 02 00 07 f9 86云平台 下发数据 采集01 03 00 01 00 01 D5 CA 丛机返回数据 01 03 04 00 11 98 4901 03 00 00 00 03 05 CB丛机返回数据 01 03 02 00 11 78 48 01 03 04 00 22 00 33 1A 2C01 03 06 00 55 00 66 00 77 8D 40以下想采用 主动上报的方式 其拓展码 如下 标准Modbus RTU指令 寄存器单元十进制功能码作用请求及响应格式 线圈寄存器 CoilStatus 00001 - 09999 1位 读写0x01读线圈指示状态1 ON,0 OFF 示例读取0x0001到0x000A单元的开关状态现场状态为全开即全1 请求设备号功能码寄存器起始地址寄存器单元长度CRC校验 id010000000Acrclcrch 响应设备号功能码字节数数据CRC校验 id0102FF03crclcrch 0x05写单个线圈十六进制FF 00置状态为ON,十六进制00 00 置状态为OFF 示例将0x00AD单元状态置为ON/OFF 请求设备号功能码寄存器起始地址置为ON/OFFCRC校验 id0500ACFF00crclcrch id0500AC0000crclcrch 响应设备号功能码寄存器起始地址置为ON/OFFCRC校验 id0500ACFF00crclcrch id0500AC0000crclcrch 0x0F写多个线圈示例从0x0014开始写入10个状态值数据内容为2个字节十六进制CD 01二进制 1100 1101 0000 0001 请求设备号功能码寄存器起始地址寄存器单元长度字节数数据CRC校验 id0F0013000A02CD01crclcrch 响应设备号功能码寄存器起始地址寄存器单元长度CRC校验 id0F0013000Acrclcrch 离散寄存器 InputStatus 10001 - 19999 1位 只读0x02读离散输入示例读取197—218的开关状态204-197内容为0xAC即二进制1010 1100212-205内容为0xDB即二进制1101 1011218-213内容为0x35即二进制0011 0101 请求设备号功能码寄存器起始地址寄存器单元长度CRC校验 id0200C40016crclcrch 响应设备号功能码字节数数据CRC校验 id0203ACDB35crclcrch 保持寄存器 Holding Register40001 - 49999 16位 读写0x03读保持寄存器示例读取寄存器108—110的值108的内容为0x022B即555,109的内容为0x0000(即0),110的内容为0x0064(即100) 请求设备号功能码寄存器起始地址寄存器单元长度CRC校验 id03006B0003crclcrch 响应设备号功能码字节数数据CRC校验 id0306022B00000064crclcrch 0x06写单个寄存器示例将数据0x0003写入寄存器单元0x0002 请求设备号功能码寄存器起始地址数据CRC校验 id0600010003crclcrch 响应设备号功能码寄存器起始地址数据CRC校验 id0600010003crclcrch 0x10写多个寄存器示例将数据0x000A和0x0102写入从0x0002开始的两个寄存器单元 请求设备号功能码寄存器起始地址寄存器单元长度字节数数据CRC校验 id100001000204000A0102crclcrch 响应设备号功能码寄存器起始地址寄存器单元长度CRC校验 id1000010002crclcrch 输入寄存器 Input Register30001 - 39999 16位 只读0x04读输入寄存器示例读取输入寄存器0x0009单元的值,现场数据为0x000A 请求设备号功能码寄存器起始地址寄存器单元长度CRC校验 id0400080001crclcrch 响应设备号功能码字节数数据CRC校验 id0402000Acrclcrch 有人扩展指令本扩展指令非Modbus RTU标准仅适用于设备与透传云网络通讯的规则 为什么要做扩展指令由于Modbus RTU协议适用于半双工的总线协议只能一问一答服务器做主机接入设备做从机可以实现主机主动采集和控制。 但由于网络通讯考虑流量、服务器并发量、网络延迟等原因无法实现类似在总线中毫秒级的轮询读取而网络通讯属于全双工能够同时双向对话故扩展指令提出支持从机状态主动上报的规则。 应用场景1 从机主动上报状态如Modbus协议的环境控制器服务器做主机10分钟轮询采集但若前端人工主动控制服务器必须等到下个轮询才能得知状态变化。 利用扩展指令可实现人工主动控制从机主动上报当前的状态。 注本协议仅适用于使用有人网络模块自主开发的产品若在RS-485总线中使用会造成总线混乱。 应用场景2 低功耗通讯上报格式如NB-IoT、Lora这类低功耗通讯方式低功耗模式仅支持主动向服务器上报上报后断电断网休眠此时服务器无法做主机主动采集数据。 利用扩展指令格式主动上报数据解决上述问题服务器按照Modbus协议解析完成后面的数据存储、报警、推送等功能。 补充NB-IoT在高功耗模式下也可支持云端主动下发查询指令。 寄存器单元十进制功能码作用请求及响应格式 线圈寄存器 CoilStatus 00001 - 09999 1位 读写0x45上报多个线圈示例从0x0014开始写入10个状态值数据内容为2个字节十六进制CD 01二进制 1100 1101 0000 0001 格式与写多个线圈相同请求设备号功能码寄存器起始地址寄存器单元长度字节数数据CRC校验 id450013000A02CD01crclcrch 响应设备号功能码寄存器起始地址寄存器单元长度CRC校验 id450013000Acrclcrch 离散寄存器 InputStatus10001 - 19999 1位 只读0x42上报多个离散寄存器格式与写多个线圈相同 保持寄存器 Holding Register40001 - 49999 16位 读写0x46上报多个保持寄存器示例将数据0x000A和0x0102写入从0x0002开始的两个寄存器单元 格式与写多个保持寄存器相同请求设备号功能码寄存器起始地址寄存器单元长度字节数数据CRC校验 id460001000204000A0102crclcrch 响应设备号功能码寄存器起始地址寄存器单元长度CRC校验 id4600010002crclcrch 输入寄存器 Input Register30001 - 39999 16位 只读0x44上报多个输入寄存器格式与写多个保持寄存器相同 注意和补充 协议解释 1、数据、地址、长度等默认大端在前但CRC校验是小端在前低字节在前crcl crch 2、有人扩展协议仅适用于设备与透传云的网络通讯层 测试结果如下图所示