Matsumoto Ceiling Dehumidifier Modbus Communication Protocol

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

Matsumoto Ceiling Dehumidifier Modbus Communication Protocol缩略图

Communication protocol:

function code

0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE,

一 功能码 01

对远程设备读取线圈状态(开关量数据,每一位代表一个开关量,0=关 1=开,地址以位地址表示,数据以字节表示,不足一字节位,高位以0填充)

对地址 01 读取当前设备开关量状态

主机请求:发送数据为 010100000018
010100000018  
地址功能码起始地址线圈(开关量)数量CRCLCRCH
从机应答:返回数据为 010101
0101030000            007A37
地址能码字节数线圈状态1线圈状态2    线圈状态3CRCLCRCH

本通讯设置24个在线读取线圈(开关量),线圈地址=0x0000~0x0017

返回线圈状态1,地址0~7(一字节数据)

D7=压机开/关    D6=高风开/关   D5=中风开/关    D4=低风开/关

D3=报警开/关  D2=预留   D1=预留    D0=预留

返回线圈状态2,地址8~F(一字节数据)

D7=开/关机      D6=化霜        D5=保留       D4=除湿/通风(0=除湿  1=通风)

D3=保留         D2=湿控         D1=保留       D0=保留

返回线圈状态3,地址10~17(一字节数据) 保护状态预留

D7=保留        D6=保留       D5=保留        D4=保留

D3=保留        D2=保留       D1=保留        D0=保留

例如主机发送:01 01 00 00 00 18 3c 00

对地址1设备 读取当前设备状态

二  功能码 04

对远程设备使用该功能码读取设备信息(每个信息参数影射为一个寄存器),16位数据格式,HEX码,高字节在前

对地址01 读取当前设备参数

主机请求:发送数据为 01040000000271CB
01040000000271CB
地址功能码起始寄存器地址输入寄存器数量CRCLCRCH
从机应答:返回数据为 01040400C8012C7A37(温度:20.0℃  湿度30.0%RH)
01040400C8012C7A37
地址功能码字节数设定湿度(HEX)当前湿度(HEX)CRCLCRCH

本通讯设置4个寄存器(数据量),地址 0x0000~0x0003  一次读取2个数据,所以输入寄存器数量恒等于 0x0002,地址=0x0000 或 0x0002

地址分配:

0x0000: 设定湿度            0x0001: 当前湿度

0x0002: 盘管温度            0x0003: 预留

注1:温湿度数据H(高位字节)和数据L(低位字节)为各自对应的当前温湿度值:

上传数据需除以10,如湿度上传16进制 0311,对应十进制00785,表示78.5%。

注2:零下温度用负数表示 如上传 -11.5℃。则 11.5℃对应十进制正数=115 16进制=0x73

负数用补码,则= 0xFFFF-0x0073= 0Xff8C

注3: 温湿度数据故障时 数据=0xFFFF

例如主机发送:01 04 00 00 00 02 71 CB

对地址1设备 读取从00 00 地址开始的 2字节数据 (即设备 设定湿度和当前湿度)

三  功能码 05

对远程设备使用该功能码写单个线圈(对单个寄存器写ON/OFF状态,每个开关量影射为一个寄存器16位数据格式,HEX码,高字节在前 ,FF00=开,0000=关)

对地址1设备写入开机命令

主机请求:发送数据为01050000FF00 
01050000FF00  
地址功能码预置寄存器

地址高位

预置寄存器

地址低位

置入寄存器数据高位置入寄存器数据低位CRCLCRCH
 从机返回:返回数据为01050000FF00 
01050000FF00  
地址功能码预置寄存器

地址高位

预置寄存器

地址低位

置入数据高位置入数据低位CRCLCRCH

本通讯设置1个在线写入线圈(开关量),线圈地址=0x0000

例如主机发送:01 05 00 00 ff 00 8c 3a

对地址1设备 设置开机

例如主机发送:01 05 00 00 00 00 cd ca

对地址1设备 设置关机

四  功能码 06

对远程设备使用该功能码对单个寄存器写数据信息(每个信息参数影射为一个寄存器),16位数据格式,HEX码,高字节在前

本协议定义规定11个参数量写入,分别对应地址如下:

预置寄存器地址:0x0000     写入运行模式  0x0000=除湿  0x0001=通风

0x0001     写入设定湿度 HEX码,带一位小数

0x0002     写入当前时间 HEX码,高字节小时,低字节分

0x0003     写入设定定时开机 HEX码,高字节小时,低字节分

0x0004     写入设定定时关机 HEX码,高字节小时,低字节分

0x0005~0x0008  预留控制

0x0009     写入设备地址修正值HEX码,高字节=0,低字节0~254

0x000a     写入通讯波特率修正值HEX码,

发送例子:

例如: 对地址1写入 通风模式

主机发送: 01 06 00 00 00 01 48 0a

例如: 对地址1写入 设定湿度 48 %

主机发送: 01 06 00 01 01 e0 d8 12

例如: 对地址1写入 当前时间  8:30

主机发送: 01 06 00 02 08 1e af c2

例如: 对地址1写入 定时开机时间  10:40

主机发送: 01 06 00 03 0a 28 7f 74

例如: 对地址1写入 定时关机时间  13:12

主机发送: 01 06 00 04 0d 0c cc 9e

例如: 对地址1写入 把地址1变为 地址2

注:地址寄存器=0x0009  机器地址有效数据是单字节,地址值高位=0;低位0~254

主机发送: 01 06 00 09 00 02 d8 09

主机请求:发送数据为01060009000209D8(地址1改为2) 
01060009000209D8
地址功能码预置寄存器

地址高位

预置寄存器

地址低位

置入寄存器数据高位置入寄存器数据低位CRCLCRCH
 从机返回:返回数据为01060009000209D8 
01060009000209D8
地址功能码预置寄存器

地址高位

预置寄存器

地址低位

置入数据高位置入数据低位CRCLCRCH

例如:对地址1   当前波特率修改为4800(4800的16进制为12C0)

主机发送: 01 06 00 0a 12 c0 a5 38

主机请求:发送数据为0106000A12C0A538(波特率9600改成4800) 
0106000A12C0A538
地址功能码预置寄存器

地址高位

预置寄存器

地址低位

置入数据高位置入数据低位CRCLCRCH
 从机返回:返回数据为0106000A12C0A538 
0106000A12C0A538
地址功能码预置寄存器

地址高位

预置寄存器

地址低位

置入数据高位置入数据低位CRCLCRCH

注3:错误代码帧格式

地址 错误码 异常码 CRCL CRCH

错误码=功能码+0x80

异常码=01 或02 或03 或 04

01=无效操作码

02=无效数据地址

03=数据异常

04=MB 错误

注4:CRC 校验方法

CRC 生成函数

unsigned short CRC16 ( puchMsg, usDataLen )  /* 函数以  unsigned short 类型返回 CRC  */

unsigned char *puchMsg ;  /*  用于计算 CRC  的报文                  */

unsigned short usDataLen ;  /*  报文中的字节数                          */

{

unsigned char uchCRCHi = 0xFF ;  /* CRC  的高字节初始化                    */

unsigned char uchCRCLo = 0xFF ;  /* CRC  的低字节初始化                    */

unsigned uIndex ;  /* CRC 查询表索引                          */

while (usDataLen--)  /* 完成整个报文缓冲区                      */

{

uIndex = uchCRCLo ^ *puchMsgg++ ;  /*  计算  CRC                            */

uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex} ;

uchCRCHi = auchCRCLo[uIndex] ;

}

return (uchCRCHi << 8 | uchCRCLo) ;

}

高字节表

/* 高位字节的CRC  值 */

static unsigned char auchCRCHi[] = {

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81,

0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,

0x40, 0x01, 0xC0,

0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1,

0x81, 0x40, 0x01,

0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,

0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,

0x00, 0xC1, 0x81,

0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80,

0x41, 0x01, 0xC0,

0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,

0x80, 0x41, 0x01,

0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00,

0xC1, 0x81, 0x40,

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81,

0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,

0x40, 0x01, 0xC0,

0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1,

0x81, 0x40, 0x01,

0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01,

0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81,

0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,

0x40, 0x01, 0xC0,

0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,

0x80, 0x41, 0x01,

0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,

0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81,

0x40

} ;

低字节表

/* 低位字节的CRC  值 */

static char auchCRCLo[] = {

0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,

0x05, 0xC5, 0xC4,

0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB,

0x0B, 0xC9, 0x09,

0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE,

0xDF, 0x1F, 0xDD,

0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2,

0x12, 0x13, 0xD3,

0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32,

0x36, 0xF6, 0xF7,

0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E,

0xFE, 0xFA, 0x3A,

0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B,

0x2A, 0xEA, 0xEE,

0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27,

0xE7, 0xE6, 0x26,

0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1,

0x63, 0xA3, 0xA2,

0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD,

0x6D, 0xAF, 0x6F,

0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8,

0xB9, 0x79, 0xBB,

0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4,

0x74, 0x75, 0xB5,

0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0,

0x50, 0x90, 0x91,

0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94,

0x54, 0x9C, 0x5C,

0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59,

0x58, 0x98, 0x88,

0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D,

0x4D, 0x4C, 0x8C,

0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,

0x41, 0x81, 0x80,

0x40

};

厂家信息:

Matsumoto Ceiling Dehumidifier Modbus Communication Protocol插图

400-0858-758

www.hzsongdao.com

杭州松岛实业有限公司

电话:0571-85367531 / 传真:0571-85367531

地址:杭州市余杭区钱江经济开发区顺风路528号

Matsumoto Ceiling Dehumidifier Modbus Communication Protocol插图1
Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.