MODBUS手册中文版VERD.docx
《MODBUS手册中文版VERD.docx》由会员分享,可在线阅读,更多相关《MODBUS手册中文版VERD.docx(25页珍藏版)》请在冰豆网上搜索。
MODBUS手册中文版VERD
MODBUS协议
用户手册
Ver:
D
2010-10-20
目录
1数据传输模式4
2寄存器和数据类型5
2.1COIL5
2.2FLOAT5
2.3INT5
2.4LONG5
3数据帧格式定义6
3.1CMD=0x03(读1个或多个寄存器)6
3.2CMD=0x05(写COIL变量)7
3.3CMD=0x06(写单个寄存器)8
3.3CMD=0x10(写多个寄存器)9
3.4故障返回帧10
4数据帧校验算法11
4.1LRC校验11
4.2CRC16校验12
5仪表变量地址定义14
6附录1:
常数表:
故障码17
7附录2:
流量单位18
8附录3:
报警定义23
版本声明:
支持寄存器连读功能
仪表的modbus通讯协议设置项处有V10版本标志的均支持此功能
2010/10/20
1数据传输模式
MODBUS采用RTU和ASCII两种方式进行数据传输。
RTU模式下,采用8bit二进制字符,ASCII模式下采用7bitASC字符。
将RTU模式下的一个字节的高4位和低4位分开,变成2个字节,这样就是ASCII模式下传输的字节。
比如RTU模式下的数据0x1A,那么ASCII模式下就是0x310x41两个字节,所以ASCII模式下的帧长度为RTU模式下的1倍。
RTU传输模式的数据帧采用CRC校验,ASCII模式采用LRC校验。
下表总结了两种传输模式的区别:
传输模式
ASCII(7bit)
RTU(8bit)
编码格式
ASCII码(‘0’-‘9’‘A’-‘F’)
8bit二进制(0x00–0xff)
起始位
数据位
校验位
停止位
1
7、8
无、奇、偶
1、2
8
帧校验
LRC
CRC16
2寄存器和数据类型
下表列举了几种寄存器和数据类型
寄存器类型
数据长度
寄存器数量
描述
COIL
1bit
-
布尔变量(ONOFF)
FLOAT
32bit
2
32位浮点数(IEEE754格式)
INT
16bit
无符号整型(0x0–0xFFFF)
LONG
无符号长整型(0x0–0xFFFFFFFF)
2.1COIL
布尔变量0xFF00->ON0x0000->OFF
2.2FLOAT
使用2个寄存器存储单精度IEEE754格式的浮点数。
每个浮点数包含4个字节,具体定义如下:
SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM
S:
符号位0->正1->负
E:
阶码
M:
尾数的小数部分
例如:
0xC1480000=-12.5
2.3INT
使用1个寄存器存储无符号整型数。
0x0025=370x1234=4660
2.4LONG
使用2个寄存器存储无符号长整型数。
0x12345678=305419896
3数据帧格式定义
3.1CMD=0x03(读1个或多个寄存器)
本例数据为读取瞬时流量的数据帧,仪表地址=1。
注:
瞬时流量的寄存器起始地址=0x0253,但数据帧中的寄存器起始地址必须是0x0253-0x0001=0x0252
请求帧:
上位机->仪表
数据场名称
RTU示例数据(HEX)
ASC示例数据(HEX)
包头
NONE
3A
仪表地址
01
3031
功能码
03
3033
寄存器起始地址高字节
02
3032
寄存器起始地址低字节
52
3532
寄存器数量高字节
00
3030
寄存器数量低字节
6462
4136
包尾
0D0A
应答帧:
仪表->上位机
04
3034
寄存器0x0253的数据高字节
C1
4331
寄存器0x0253的数据低字节
48
3438
寄存器0x0254的数据高字节
寄存器0x0254的数据低字节
47D9
4546
本应答帧返回的IEEE754格式的瞬时流量数据C1480000=-12.5
3.2CMD=0x05(写COIL变量)
本例数据为清除累计流量的数据帧,仪表地址=1。
清累计流量的寄存器起始地址=0x0003,但数据帧中的寄存器起始地址必须是0x0003-0x0001=0x0002
05
3035
COIL变量高字节
FF
4646
COIL变量低字节
2DFA
4639
3.3CMD=0x06(写单个寄存器)
本例数据为写流量单位=m3/h的数据帧,仪表地址=1。
流量单位的寄存器起始地址=0x0042,但数据帧中的寄存器起始地址必须是0x0042-0x0001=0x0041
06
3036
41
3431
变量高字节
变量低字节
13
3133
9813
4135
3.3CMD=0x10(写多个寄存器)
本例数据为写阻尼时间=3s的数据帧,仪表地址=1。
阻尼时间的寄存器起始地址=0x0189,但数据帧中的寄存器起始地址必须是0x0189-0x0001=0x0188
10
3130
88
3838
写入寄存器0x0189的高字节
40
3430
写入寄存器0x0189的低字节
写入寄存器0x018A的高字节
写入寄存器0x018A的低字节
E3ED
4538
本例中的4个数据字节为IEEE754格式的浮点数40400000=3.0
C01E
3643
3.4故障返回帧
对于不能正确完成操作的请求帧,仪表将返回一个报告故障代码的返回帧,以报告不能完成操作的具体原因。
比如将流量单位设置成Hz,由于仪表不能支持Hz这个流量单位,所以将返回如下的故障应答帧。
故障应答帧:
86
3836
故障码
43
3433
0391
3931
1.故障返回帧中的功能码=请求帧的功能码+0x80
2.具体的故障代码请参考附录1:
4数据帧校验算法
4.1LRC校验
//LRC校验范围:
从“仪表地址”到LRC帧校验码的前一个字节
voidLRC(unsignedchar*buf,unsignedintlen)
{
unsignedinti;
LRC=0;
for(i=0;i{LRC+=buf[i];}LRC=0xff-LRC;LRC++;}4.2CRC16校验constunsignedcharTAB_CRC_H[]={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};constunsignedcharTAB_CRC_L[]={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};//CRC校验范围:从“仪表地址”到CRC帧校验码的前一个字节voidCRC(unsignedchar*buf,unsignedintlen){unsignedinti;unsignedcharCRC_H,CRC_L,index,ch;CRC_H=0xff;CRC_L=0xff;for(i=0;i{ch=buf[i];index=CRC_H^ch;CRC_H=CRC_L^TAB_CRC_H[index];CRC_L=TAB_CRC_L[index];}}5仪表变量地址定义以下为仪表支持数据变量信息列表,数据均为HEX类型变量名寄存器地址寄存器长度读指令写指令COIL类型清累计0003------05INT类型流量单位(附录2:常数表流量单位)004200010306累计单位(附录2:常数表流量单位)004600010306功率单位(附录2:常数表流量单位)6003(热能表)00010306热能单位(附录2:常数表流量单位)6004(热能表)00010306报警(附录3::报警定义)0419000103---LONG类型扩展正向累计0309000203---正向累计0311000203---扩展反向累计0313000203---反向累计0315000203---扩展正向累计热量0317(热能表)000203---正向累计热量0319(热能表)000203---扩展反向累计热量0321(热能表)000203---反向累计热量0323(热能表)000203---FLOAT类型主变量(瞬时流量)0253000203----瞬时功率2000(热能表)000203----入口温度2002(热能表)000203----出口温度2004(热能表)000203----阻尼时间s018900020310小信号切除%019700020310刻度流量0209000203104-20mA电流测试(mA)01430002---10输出电流值mA0203000203---输出频率值Hz0229000203---频率上限Hz022300020310脉冲当量L/p110300020310脉冲宽度ms022700020310连读:(通讯协议V10版本)瞬时流量累计流量主变量(瞬时流量)float0500000203---扩展正向累计unsignedlong0502000203---正向累计unsignedlong0504000203---扩展反向累计unsignedlong0506000203---反向累计unsignedlong0508000203---连读:(通讯协议V10版本)瞬时流量累计流量:此处的累计量为仪表现场读数*1000的结果,比如仪表现场读数=10m3,则通过通讯读过来的数据为10,000L比如仪表现场读数=10L,则通过通讯读过来的数据为10,000mL主变量(瞬时流量)float0510000203---扩展正向累计unsignedlong0512000203---正向累计unsignedlong0514000203---扩展反向累计unsignedlong0516000203---反向累计unsignedlong0518000203---连读:(通讯协议V10版本&热能表)瞬时流量瞬时功率入口温度出口温度累计流量累计热量主变量(瞬时流量)float0520000203---瞬时功率float0522000203---入口温度0Cfloat0524000203---出口温度0Cfloat0526000203---扩展正向累计unsignedlong0528000203---正向累计unsignedlong052A000203---扩展反向累计unsignedlong052C000203---反向累计unsignedlong052E000203---扩展正向热能累计unsignedlong0530000203---正向热能累计unsignedlong0532000203---扩展反向热能累计unsignedlong0534000203---反向热能累计unsignedlong0536000203---注:累计量的计算方法如下假设读出的“扩展正向累计”=2,“正向累计”=1234则总的正向累计流量=2*1000,0000+1234=200012346附录1:常数表:故障码0x01:无效指令码0x02:无效的寄存器地址0x30:参数超上限0x31:参数超下限0x32:参数选择项错误0x40:无效的寄存器长度0x41:寄存器不支持当前的指令码0x42:寄存器未指定功能0x43:流量单位不存在0x44:总量单位不存在0x45:最高频率输出超上限0x46:最低频率输出超下限0x47:最高流速超上限0x48:占空比超上限7附录2:常数表:流
LRC+=buf[i];
}
LRC=0xff-LRC;
LRC++;
4.2CRC16校验
constunsignedcharTAB_CRC_H[]={
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
};
constunsignedcharTAB_CRC_L[]={
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
//CRC校验范围:
从“仪表地址”到CRC帧校验码的前一个字节
voidCRC(unsignedchar*buf,unsignedintlen)
unsignedcharCRC_H,CRC_L,index,ch;
CRC_H=0xff;
CRC_L=0xff;
for(i=0;i{ch=buf[i];index=CRC_H^ch;CRC_H=CRC_L^TAB_CRC_H[index];CRC_L=TAB_CRC_L[index];}}5仪表变量地址定义以下为仪表支持数据变量信息列表,数据均为HEX类型变量名寄存器地址寄存器长度读指令写指令COIL类型清累计0003------05INT类型流量单位(附录2:常数表流量单位)004200010306累计单位(附录2:常数表流量单位)004600010306功率单位(附录2:常数表流量单位)6003(热能表)00010306热能单位(附录2:常数表流量单位)6004(热能表)00010306报警(附录3::报警定义)0419000103---LONG类型扩展正向累计0309000203---正向累计0311000203---扩展反向累计0313000203---反向累计0315000203---扩展正向累计热量0317(热能表)000203---正向累计热量0319(热能表)000203---扩展反向累计热量0321(热能表)000203---反向累计热量0323(热能表)000203---FLOAT类型主变量(瞬时流量)0253000203----瞬时功率2000(热能表)000203----入口温度2002(热能表)000203----出口温度2004(热能表)000203----阻尼时间s018900020310小信号切除%019700020310刻度流量0209000203104-20mA电流测试(mA)01430002---10输出电流值mA0203000203---输出频率值Hz0229000203---频率上限Hz022300020310脉冲当量L/p110300020310脉冲宽度ms022700020310连读:(通讯协议V10版本)瞬时流量累计流量主变量(瞬时流量)float0500000203---扩展正向累计unsignedlong0502000203---正向累计unsignedlong0504000203---扩展反向累计unsignedlong0506000203---反向累计unsignedlong0508000203---连读:(通讯协议V10版本)瞬时流量累计流量:此处的累计量为仪表现场读数*1000的结果,比如仪表现场读数=10m3,则通过通讯读过来的数据为10,000L比如仪表现场读数=10L,则通过通讯读过来的数据为10,000mL主变量(瞬时流量)float0510000203---扩展正向累计unsignedlong0512000203---正向累计unsignedlong0514000203---扩展反向累计unsignedlong0516000203---反向累计unsignedlong0518000203---连读:(通讯协议V10版本&热能表)瞬时流量瞬时功率入口温度出口温度累计流量累计热量主变量(瞬时流量)float0520000203---瞬时功率float0522000203---入口温度0Cfloat0524000203---出口温度0Cfloat0526000203---扩展正向累计unsignedlong0528000203---正向累计unsignedlong052A000203---扩展反向累计unsignedlong052C000203---反向累计unsignedlong052E000203---扩展正向热能累计unsignedlong0530000203---正向热能累计unsignedlong0532000203---扩展反向热能累计unsignedlong0534000203---反向热能累计unsignedlong0536000203---注:累计量的计算方法如下假设读出的“扩展正向累计”=2,“正向累计”=1234则总的正向累计流量=2*1000,0000+1234=200012346附录1:常数表:故障码0x01:无效指令码0x02:无效的寄存器地址0x30:参数超上限0x31:参数超下限0x32:参数选择项错误0x40:无效的寄存器长度0x41:寄存器不支持当前的指令码0x42:寄存器未指定功能0x43:流量单位不存在0x44:总量单位不存在0x45:最高频率输出超上限0x46:最低频率输出超下限0x47:最高流速超上限0x48:占空比超上限7附录2:常数表:流
ch=buf[i];
index=CRC_H^ch;
CRC_H=CRC_L^TAB_CRC_H[index];
CRC_L=TAB_CRC_L[index];
5仪表变量地址定义
以下为仪表支持数据变量信息列表,数据均为HEX类型
变量名
寄存器地址
寄存器长度
读指令
写指令
COIL类型
清累计
0003
---
INT类型
流量单位(附录2:
常数表流量单位)
0042
0001
累计单位(附录2:
0046
功率单位(附录2:
6003(热能表)
热能单位(附录2:
6004(热能表)
报警(附录3:
:
报警定义)
0419
LONG类型
扩展正向累计
0309
0002
正向累计
0311
扩展反向累计
0313
反向累计
0315
扩展正向累计热量
0317(热能表)
正向累计热量
0319(热能表)
扩展反向累计热量
0321(热能表)
反向累计热量
0323(热能表)
FLOAT类型
主变量(瞬时流量)
0253
----
瞬时功率
2000(热能表)
入口温度
2002(热能表)
出口温度
2004(热能表)
阻尼时间s
0189
小信号切除%
0197
刻度流量
0209
4-20mA电流测试(mA)
0143
输出电流值mA
0203
输出频率值Hz
0229
频率上限Hz
0223
脉冲当量L/p
1103
脉冲宽度ms
0227
连读:
(通讯协议V10版本)
瞬时流量累计流量
主变量(瞬时流量)float
0500
扩展正向累计unsignedlong
0502
正向累计unsignedlong
0504
扩展反向累计unsignedlong
0506
反向累计unsignedlong
0508
瞬时流量
累计流量:
此处的累计量为仪表现场读数*1000的结果,
比如仪表现场读数=10m3,则通过通讯读过来的数据为10,000L
比如仪表现场读数=10L,则通过通讯读过来的数据为10,000mL
0510
0512
0514
0516
0518
(通讯协议V10版本&热能表)
瞬时流量瞬时功率入口温度出口温度累计流量累计热量
0520
瞬时功率float
0522
入口温度0Cfloat
0524
出口温度0Cfloat
0526
0528
052A
052C
052E
扩展正向热能累计unsignedlong
0530
正向热能累计unsignedlong
0532
扩展反向热能累计unsignedlong
0534
反向热能累计unsignedlong
0536
累计量的计算方法如下
假设读出的“扩展正向累计”=2,“正向累计”=1234
则总的正向累计流量=2*1000,0000+1234=20001234
0x01:
无效指令码
0x02:
无效的寄存器地址
0x30:
参数超上限
0x31:
参数超下限
0x32:
参数选择项错误
0x40:
无效的寄存器长度
0x41:
寄存器不支持当前的指令码
0x42:
寄存器未指定功能
0x43:
流量单位不存在
0x44:
总量单位不存在
0x45:
最高频率输出超上限
0x46:
最低频率输出超下限
0x47:
最高流速超上限
0x48:
占空比超上限
流
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1