嵌入式MCGS串口通信快速入门及编程实例_第12章_Modbus通信之多址读写_多路温湿度测量_2018年01月15日_改2_图文

  • 阅读:5712

    嵌入式MCGS串口通信 快速入门及编程实例 第12章 MODBUS通信之多址读写 多路温湿度测量 Contents 课程主要内容 ? 12.1 Instruction Deconstruct 指令解析 ? 12.2 Read and Write Instruction 读写指令 ? 12.3 Configuration 组态 ? Preparation For Hardware 准备工作 准备工作 ? Preparation For Hardware 准备工作 12 34 5 6789 母 头 公 头 54 32 1 98 76 A+ RS232转RS485 B- 24V+ 24V- 2# 1# 温湿度 传感器 温湿度 传感器 ? Preparation For Hardware 准备工作 一、台式机 COM口连接485 ? Preparation For Hardware 准备工作 二、USB 转485接口 ? Preparation For Hardware 准备工作 485的“+” 485的“-” ? Preparation For Hardware 准备工作 红色线 第 1 黑色线 种 接 绿色线 线 黄色线 24V+ 24V485A+ 485B- 红色线 第 绿色线 2 种 蓝色线 接 线 黄色线 ? Preparation For Hardware 准备工作 参数 温度范围 温度分辨率 温度准确度 湿度范围 湿度分辨率 湿度准确度 储存温度 供电电压 通迅方式 通讯协议 传感器地址 波特率 数据位 奇偶校验位 停止位 参数值 -40~123.8℃ ±0.1℃ ±0.5℃ 0~100%RH 0.1%RH ±5% -20~85℃ 5~12VDC RS-485 Modbus RTU 默认值为0 默认值9600 8位 无 1位 说明 传感器测量温度值的上限、下限 传感器能够区分的最小温度 数据的误差范围 传感器测量湿度值的上限、下限 传感器能够区分的最小湿度 数据的误差范围 工作环境:-20~85℃ 0~85%RH 正、负极不要接错! 一台上位机,多个传感器,各传感器通过地址区分 以16进制形式传输数据 0~254可选,255为广播地址 9600、19200、38400、57600、115200、230400、460800 、921600、4800、2400 Baud/s可选 默认通讯参数设置 “9600,N,8,1” 12.1 Instruction Deconstruct 指令解析 数据类型 12.1 Instruction Deconstruct 指令解析 功能码 读写 02 — 01 05 15 04 — 03 06 16 功能码说明 02: 读取输入状 态 01: 读取线圈状 态 05: 写单个线圈 15: 写多个线圈 04: 读输入寄存 器 03: 读保持寄存 器 06: 写单个寄存 器 16: 写多个寄存 操作方 式 寄存器 数据类型 通道举例 只读 [1区] 输入继 电器 BT 10001 表示1区地 址1 读写 [0区] 输出继 电器 BT 00001 表示0区地 址1 只读 [3区] 输入寄 存器 BT、WUB、WB、 WD DUB、DB、DD、 DF、STR 30001 表示3区地 址1 读写 [4区] 输出寄 存器 BT、WUB、WB、 WD DUB、DB、DD、 DF、STR 40001 表示4区地 址1 12.1 Instruction Deconstruct 指令解析 数据类 字节数 型 说明 字节 数据类型 数 说明 BTdd 1 位(dd范围:0015) WD 2 16位4位BCD BUB BB BD WUB WB 1 8位无符号二进制 DUB 4 32位无符号二进制 1 8位有符号二进制 DB 4 32位有符号二进制 1 8位2位BCD DD 4 32位8位BCD 2 16位无符号二进 制 DF 4 2 16位有符号二进 制 STR 不定 32位浮点数 字符串 ? 12.2 Read and Write Instruction 读写指令 读指令格式 ? 12.2 Read and Write Instruction 读写指令 指令格式 传感器 地址 起始地址 读/写数据 CRC 功能码 高字节 低字节 高字节 低字节 低字节 高字节 编码顺序 第1字节 第2字 节 第3字节 第4字 节 第5字 节 第6字 节 第7字 节 第8字节 00H 03H 00H 00H 00H 02H C5H DAH 发送指令:00 03 00 00 00 02 C5 DA 返回数据:00 03 04 01 1D 01 39 BA 8B 解释说明:向地址为0(00H)的传感器发送读保持寄存器(03H)指令,从寄 存器的0(0000H)地址开始读,读取2(0002H)个字,相当于4个字节,前2 同时读取 个字节是温度,后2个是湿度。 温度和湿 度 FFH 03H 00H 00H 00H 02H D1H D5H 发送指令:FF 03 00 00 00 02 D1 D5(此处地址为FF,采用广播形式,任何地 址都可识别) 返回数据:00 03 04 01 1A 01 29 0A 86 解释说明:向地址为255(FFH)的传感器发送读保持寄存器(03H)指令,从 寄存器的0(0000H)地址开始读,读取2(0002H)个字,相当于4个字节,前 2个字节是温度,后2个是湿度。 ? 12.2 Read and Write Instruction 读写指令 指令格式 传感器 地址 起始地址 读/写数据 CRC