串口协议模板及其参数配置

文章目录

1 modbus协议

1.1 modbus通用

#型号 modbus(crc16)
#modbus协议

def crc16: $crc($1,0x8005,0xffff,0x0000,0)

# $addr $len 都是输入的参数
def send:     [$addr 03H $1  $itom(2,$len) $crc16($group(0,$pos))]
def recv:     [$addr 03H     $ditch(1,$assign(&dl,$0))     $data($ditch($dl))  $ditch(2,$chk($0,$crc16($group(0,$pos))))]
def indict:   [$addr 10H $1  00H 01H 02H $2 $crc16($group(0,$pos))]
def undict:   [$addr 10H $1  $data($ditch(2)) $ditch(2,$chk($0,$crc16($group(0,$pos))))]

1.1.1 配置说明

适用modbus协议;
采集指令格式:
发送:[地址] 03H [寄存器地址] [寄存器长度] [CRC16校验]
返回:[地址] 03H [数据长度] [数据] [CRC16校验]

1.1.2 仪表配置

1.1.2.1 雷优导轨式电表(LEO-AM-PS)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能200H 00H$float($data)1
1.1.2.2 雷优导轨式电表(阀控)(LEO-AM-PS-K)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能200H 00H$float($data)1
20DH B8H;11H 11H$int($data)1
20DH B8H;22H 22H$int($data)1
开关状态10DH BAH$int($data)1
1.1.2.3 山东潍坊科技水表(JRM-2C)
采集参数寄存器字节数据域数据表达式公式系数
累积流量(水)202H 02H$int($data)10
1.1.2.4 江苏比驰电气(BC500-3)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能200H 00H$float($data)1
1.1.2.5 江苏爱可信电表(PD1134E)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能200H 14H$float($fill(4,$data(0,2),1)+$fill(4,$data(2,2),0))1
1.1.2.6 杭州恒瑞电气(HR194E2SY)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能200H 36H$int($data)10
1.1.2.7 上海燕赵电气(PD760E-9SY)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能200H 32H$float($data)1
1.1.2.8 江苏斯菲尔电气(DTS1946)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能200H 34H$float($data)1
1.1.2.9 上海搜博仪表(环境监测)(SM3590B)
采集参数寄存器字节数据域数据表达式公式系数
光照度100H 00H$int($data)1
温度100H 01H$int($data)100
湿度100H 02H$int($data)100
1.1.2.10 宁波埃美柯水表厂(LXLY_Modbus)
采集参数寄存器字节数据域数据表达式公式系数
累积流量(水)202H 02H$int($data)100
1.1.2.11 山东临沂环翔水表(LXLC_Modbus)
采集参数寄存器字节数据域数据表达式公式系数
累积流量(水)200H 00H$int($data)100
1.1.2.12 北京益都智能科技(MC)
采集参数寄存器字节数据域数据表达式公式系数
累积流量(水)202H 02H$int($data,1,3)10
1.1.2.13 江苏连云港连利水表(Modbus)
采集参数寄存器字节数据域数据表达式公式系数
累积流量(水)200H 02H$bcd($data)100
1.1.2.14 保瑞自控(MBU2B)
采集参数寄存器字节数据域数据表达式公式系数
瞬时流量200H 00H$int($data)100
累积流量400H 05H$int($data)100
累积冷量400H 0BH$int($data)100
累积热量400H 08H$int($data)100
供水温度100H 02H$int($data)100
回水温度100H 03H$int($data)100
1.1.2.15 艾科(C03P06)
采集参数寄存器字节数据域数据表达式公式系数
瞬时流量200H 0CH$int($data)*0.011000
累积流量400H 08H$int($data(0,4))*10000+$int($data(4,4))*0.00011
累积冷量400H 00H$int($data(0,4))*10000+$int($data(4,4))*0.00011000
累积热量400H 04H$int($data(0,4))*10000+$int($data(4,4))*0.00011000
供水温度100H 0FH$int($data)100
回水温度100H 0EH$int($data)100
瞬时功率200H 03H$int($data)100
1.4.2.2 南通日报社能量表
采集参数寄存器字节数据域数据表达式公式系数
累积热量405H 29H$int($data(0,4))*10000000+$int($data(4,4))3600
累积冷量405H 33H$int($data(0,4))*10000000+$int($data(4,4))3600
功率205H 21H$float($data)1
瞬时流量205H 19H$float($data)1
累积流量405H 27H$int($data(0,4))*10000000+$int($data(4,4))1000
供水温度205H 23H$float($data)1
回水温度205H 25H$float($data)1
1.4.2.2 南通日报社电
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能200H 63H$int($data)100

1.2 modbus tcpip

#型号 modbus(crc16)
#modbus tcp/ip协议

def crc16: $crc($1,0x8005,0xffff,0x0000,0)

def send:     [01H 00H 00H 00H 00H 06H 01H 03H $itom(2,$int($addr)-1)  $itom(2,$len)]
def recv:     [01H 00H 00H 00H 00H 07H 01H 03H $ditch(1) $data($ditch(4))]

1.2.1 配置说明

适用modbus协议;
采集指令格式:
发送:01H 00H 00H 00H 00H [长度] 01H 03H [寄存器地址-1] [寄存器长度]
返回:01H 00H 00H 00H 00H [长度] 01H 03H [数据长度] [数据]

1.2.2 仪表配置

1.2.2.1 第三方对接(ModbusTcpIp_电力系统)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能201H$float($data)1

1.3 modbus 艾科

#型号 modbus(crc16)
#modbus协议
def crc16: $crc($1,0x8005,0xffff,0x0000,0)
# $addr $len 都是输入的参数
def send:     [$addr 04H $1  $itom(2,$len) $crc16($group(0,$pos))]
def recv:     [$addr 04H     $ditch(1,$assign(&dl,$0))     $data($ditch($dl)) $ditch(2)]

1.3.1 配置说明

适用modbus协议;
采集指令格式:
发送:[地址] 04H [寄存器地址] [寄存器长度] [CRC16校验]
返回:[地址] 04H [数据长度] [数据] [CRC16校验]

1.3.2 仪表配置

1.3.2.1 艾科(C03P15)
采集参数寄存器字节数据域数据表达式公式系数
瞬时流量200H 01H$float($fill(4,$data(0,2),1)+$fill(4,$data(2,2)))1
瞬时流速200H 03H$float($fill(4,$data(0,2),1)+$fill(4,$data(2,2)))1
累积流量200H 05H$float($fill(4,$data(0,2),1)+$fill(4,$data(2,2)))1
累积冷量200H 07H$float($fill(4,$data(0,2),1)+$fill(4,$data(2,2)))1
累积热量200H 09H$float($fill(4,$data(0,2),1)+$fill(4,$data(2,2)))1
供水温度200H 0DH$float($fill(4,$data(0,2),1)+$fill(4,$data(2,2)))1
回水温度200H 0FH$float($fill(4,$data(0,2),1)+$fill(4,$data(2,2)))1

1.4 电磁能量表

#型号 电磁热量表
#modbus协议

def crc16: $crc($1,0x8005,0xffff,0x0000,0)

# $addr $len 都是输入的参数
def send:     [$addr 04H $itom(2,$1)  $itom(2,$len) $crc16($group(0,$pos))]
def recv:     [$addr 04H $ditch(1,$assign(&dl,$0)) $data($ditch($dl)) $ditch(2)]

1.4.1 配置说明

适用modbus协议;
采集指令格式:
发送:[地址] 04H [寄存器地址] [寄存器长度] [CRC16校验]
返回:[地址] 04H [数据长度] [数据] [CRC16校验]

1.4.2 雷优电磁热量表(LEO-EM-C01)
采集参数寄存器字节数据域数据表达式公式系数
瞬时流量2100$float($fill(4,$data(0,2),1)+$fill(4,$data(2,2)))1
瞬时流速2102$float($fill(4,$data(0,2),1)+$fill(4,$data(2,2)))1
累积流量4112$int($data(0,4))+$int($data(4,4))/1000.01
累积热量4126$int($data(0,4))+$int($data(4,4))/1000.01
累积冷量4130$int($data(0,4))+$int($data(4,4))/1000.01
进水温度2122$float($data)1
回水温度2124$float($data)1

1.4 modbus 多次

#型号 modbus(crc16)
#modbus协议

def crc16: $crc($1,0x8005,0xffff,0x0000,0)
def readrs:[$addr 03H $1  $itom(2,$len) $crc16($group(0,$pos))]
def recvrs:[$addr 03H     $ditch(1,$assign(&dl,$0))     $data1($ditch($dl))  $ditch(2,$chk($0,$crc16($group(0,$pos))))]
def recva:[$addr 03H     $ditch(1,$assign(&dl,$0))     $data2($ditch($dl))  $ditch(2,$chk($0,$crc16($group(0,$pos))))]

# $addr $len 都是输入的参数
def send[2]:     {$readrs($1),$readrs($2)}
def recv[2]:     {$recvrs($1),$recva($2)}

1.4.1 配置说明

适用modbus协议;
采集指令格式:
发送:[地址] 03H [寄存器地址] [寄存器长度] [CRC16校验]
返回:[地址] 03H [数据长度] [数据] [CRC16校验]

1.4.2 仪表配置

1.4.2.1 上海广合电气(GH800DX)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能200H 5DH;01H 2EH$int($data1)*$int($data2,0,2)*$int($data2,2,2)1000

2 mbus 协议

2.1 mbus 通用

#定义变量

def chksum: $sum($1)%256

# $addr $len 都是输入的参数
def send: [68H $1 $fill(5,$addr) $2 01H 03H $3 $fill(1,$chksum($group(0,$pos))) 16H]
def recv: [68H $1 $fill(5,$addr) $2 81H  $ditch(1,$assign(&dl,$0-3)) $3 $data($ditch($dl)) $ditch(1) 16H]
def indict: [68H $1 $fill(5,$addr) $2 04H 03H+$len $3 $4 $fill(1,$chksum($group(0,$pos))) 16H]
def undict: [68H 16H $fill(5,$addr) $2 84H $ditch(1,$assign(&dl,$0-3)) $3 $data($ditch($dl)) $ditch(1) 16H]

2.1.1 配置说明

适用mbus协议;
采集指令格式:
发送:68H [类型] [地址(5B)] [厂家代码(2B)] 01H [数据长度] [数据标识] [累加和校验] 16H
返回:68H [类型] [地址(5B)] [厂家代码(2B)] 81H [数据长度] [数据标识] [数据] [累加和校验] 16H

2.1.2 仪表配置

2.1.2.1 江苏连云港连利水表(CJT1882004_冷水)
采集参数寄存器字节数据域数据表达式公式系数
累积流量(水)410H;33H 78H;1FH 90H 01H$bcd($reverse($data(0,$len)))100
2.1.2.2 江苏连云港连利水表(CJT1882004_热水)
采集参数寄存器字节数据域数据表达式公式系数
累积流量(水)411H;33H 78H;1FH 90H 01H$bcd($reverse($data(0,$len)))100
2.1.2.3 江苏连云港连利水表(CJT1882004_大口径)
采集参数寄存器字节数据域数据表达式公式系数
累积流量(水)419H;33H 78H;1FH 90H 01H$bcd($reverse($data(0,$len)))100
2.1.2.4 江苏连云港连利水表(CJT188_科利达/CJT188_78_33)
采集参数寄存器字节数据域数据表达式公式系数
累积流量(水)419H;78H 33H;1FH 90H 01H$bcd($reverse($data(0,$len)))100
2.1.2.5 江苏连云港连利水表(CJT1882004_阀控)
采集参数寄存器字节数据域数据表达式公式系数
累积流量(水)410H;33H 78H;1FH 90H 01H$bcd($reverse($data(0,$len)))100
210H;33H 78H;17H A0H;04H 99H$int($data)-09H1
210H;33H 78H;17H A0H;05H 55H$int($data)-09H1
2.1.2.6 上海达西能源(UH-001)
采集参数寄存器字节数据域数据表达式公式系数
累积冷量420H;11H 11H 00H;1FH 90H 01H$bcd($reverse($data(0,$len)))0.1
累积热量420H;11H 11H 00H;1FH 90H 01H$bcd($reverse($data(5,$len)))0.1
功率420H;11H 11H 00H;1FH 90H 01H$bcd($reverse($data(10,$len)))100
瞬时流速420H;11H 11H 00H;1FH 90H 01H$bcd($reverse($data(15,$len)))10000
累积流量420H;11H 11H 00H;1FH 90H 01H$bcd($reverse($data(20,$len)))100
供水温度320H;11H 11H 00H;1FH 90H 01H$bcd($reverse($data(25,$len)))100
回水温度320H;11H 11H 00H;1FH 90H 01H$bcd($reverse($data(28,$len)))100
2.1.2.7 雷优超声波热量表(LEO-EM-C01)
采集参数寄存器字节数据域数据表达式公式系数
累积冷量420H;00H 00H;90H 1fH 01H$bcd($reverse($data(0,$len)))100
累积热量420H;00H 00H;90H 1fH 01H$bcd($reverse($data(5,$len)))100
功率420H;00H 00H;90H 1fH 01H$bcd($reverse($data(10,$len)))100
瞬时流量420H;00H 00H;90H 1fH 01H$bcd($reverse($data(15,$len)))100
累积流量420H;00H 00H;90H 1fH 01H$bcd($reverse($data(20,$len)))100
供水温度320H;00H 00H;90H 1fH 01H$bcd($reverse($data(25,$len)))100
回水温度320H;00H 00H;90H 1fH 01H$bcd($reverse($data(28,$len)))100
2.1.2.8 水表(CJT1882004_阀控)
采集参数寄存器字节数据域数据表达式公式系数
累积流量(水)410H;00H 00H;1FH 90H 08H$bcd($reverse($data))100
110H;00H 00H;A0H 17H 07H;99H1-$int($data(0,1))1
110H;00H 00H;A0H 17H 07H;55H$int($data(0,1))1

3 dtl645

3.1 dtl_645/1997

#dtl_645
def chksum: $sum($1)%256
# $addr $len 都是输入的参数

def send: [68H $fill(5,$addr) 68H 01H $len $reverse($1+33H)  $fill(1,$chksum($group(0,$pos))) 16H]
def recv: [68H $fill(5,$addr) 68H 81H $ditch(1,$assign(&dl,$0-2))  $reverse($1+33H) $data($ditch($dl)) $ditch(1)]
def indict:   [68H $fill(5,$addr) 68H 04H $itom(1,06H+$len) $1 $2 $3 $fill(1,$chksum($group(0,$pos))) 16H]
def undict:   [$data]

3.1.1 配置说明

适用mbus协议;
采集指令格式:
发送:68H [类型] [地址] 01H [数据长度] [数据标识+33H] [累加和校验] 16H
返回:68H [类型] [地址] 81H [数据长度] [数据标识+33H] [数据+33H] [累加和校验] 16H

3.1.2 仪表配置

3.1.2.1 上海电表厂(DTS/DSS118)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能290H 10H$bcd($reverse($data-0x33))100
3.1.2.2 江阴雅达电气(DZ81-DZS300)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能290H 10H$bcd($reverse($data-0x33))100

3.2 dtl_645/2007

#dtl_645
def chksum: $sum($1)%256
# $addr $len 都是输入的参数

def send: [68H $fill(6,$addr) 68H 11H $len $1+33H  $fill(1,$chksum($group(0,$pos))) 16H]
def recv: [68H $fill(6,$addr) 68H 91H $ditch(1,$assign(&dl,$0-4))  $1+33H $data($ditch($dl)) $ditch(1,$chk($0,$fill(1,$chksum($group(0,$pos)))))]
def indict:   [68H $fill(6,$addr) 68H 1CH 1CH $encrypt $2 $3 $fill(1,$chksum($group(0,$pos))) 16H]
def undict:   [$data]

3.1.1 配置说明

适用mbus协议;
采集指令格式:
发送:68H [类型] [地址] 11H [数据长度] [数据标识+33H] [累加和校验] 16H
返回:68H [类型] [地址] 91H [数据长度] [数据标识+33H] [数据+33H] [累加和校验] 16H

3.1.2 仪表配置

3.1.2.1 DLT 645-2007 多功能电表(DTS/DSS118)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能400H 00H 01H 00H$bcd($reverse($data-0x33))100
3.1.2.2 DLT 645-2007 重庆棕榈泉项目电表(DTS/DSS118)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能400H 00H 01H 00H$bcd($reverse($data-0x33))100
开关状态100H 00H 01H 00H$bcd($reverse($data-0x33))1
1FFH 00H 00H 07H;98H 00H 00H 00H;01H 00H 00H 00H;3AH$int($data)1
1FFH 00H 00H 07H;98H 00H 00H 00H;01H 00H 00H 00H;3BH$int($data)1
#dtl_645
def chksum: $sum($1)%256
def crc16: $crc($1,0x8005,0xffff,0x0000,0)
def softEram: $crc($1,0x8005,0xffff,0x0000,0,$2)

# $addr $len 都是输入的参数

def send: [68H $fill(6,$addr) 68H 11H $len $1+33H  $fill(1,$chksum($group(0,$pos))) 16H]
def recv: [68H $fill(6,$addr) 68H 91H $ditch(1,$assign(&dl,$0-4))  $1+33H $data($ditch($dl)) $ditch(1,$chk($0,$fill(1,$chksum($group(0,$pos)))))]
def indict[2]:{[68H $fill(6,$addr) 68H 03H 20H $1+33H $3+33H 3FH 31H 0DH D6H 63H A3H FEH E3H 59H 03H 79H A4H B0H 90H BCH 45H A0H 96H CEH 79H 5DH C3H $crc16($group(0,$pos)) $fill(1,$chksum($group(0,$pos))) 16H],[68H $fill(6,$addr) 68H 1CH 1CH $2+33H $3+33H 1EH D1H 2FH 40H A7H 76H FEH FEH 40H 6EH 93H A9H D4H 5DH  CFH 70H 3BH $4+33H $softEram($group(0,$pos),$xor($encrypt-33H)) $fill(1,$chksum($group(0,$pos))) 16H]
def undict[2]: {[68H  $fill(6,$addr) 68H 83H 0EH $1+33H $encrypt($ditch(4)) $ditch(6) $ditch(1) 16H],[68H  $fill(6,$addr) 68H 9CH $data($ditch(1)) $fill(1,$chksum($group(0,$pos))) 16H]}

3.3 dtl_645/2007

3.3.1 协议内容

#dtl_645
def chksum: $sum($1)%256
def crc16: $crc($1,0x8005,0xffff,0x0000,0)
def softEram: $eram($1,$2)

# $addr $len 都是输入的参数

def send: [68H $fill(6,$addr) 68H 11H 04H $1+33H  $fill(1,$chksum($group(0,$pos))) 16H]
def recv: [68H $fill(6,$addr) 68H 91H $ditch(1,$assign(&dl,$0-4))  $1+33H $data($ditch($dl)) $ditch(1,$chk($0,$fill(1,$chksum($group(0,$pos)))))]
def indict[2]:{[68H $fill(6,$addr) 68H 03H 20H $1+33H $3+33H 3FH 31H 0DH D6H 63H A3H FEH E3H 59H 03H 79H A4H B0H 90H BCH 45H A0H 96H CEH 79H 5DH C3H $crc16($group(0,$pos)) $fill(1,$chksum($group(0,$pos))) 16H],[68H $fill(6,$addr) 68H 1CH 1CH $2+33H $3+33H 1EH D1H 2FH 40H A7H 76H FEH FEH 40H 6EH 93H A9H D4H 5DH  CFH 70H 3BH $4+33H $softEram($group(0,$pos),$xor($encrypt-33H)) $fill(1,$chksum($group(0,$pos))) 16H]
def undict[2]: {[68H  $fill(6,$addr) 68H 83H 0EH $1+33H $encrypt($ditch(4)) $ditch(6) $ditch(1) 16H],[68H  $fill(6,$addr) 68H 9CH $data($ditch(1)) $fill(1,$chksum($group(0,$pos))) 16H]}
#dtl_645
def chksum: $sum($1)%256

# $addr $len 都是输入的参数

def send: [68H $fill(6,$addr) 68H 11H 04H $1+33H  $fill(1,$chksum($group(0,$pos))) 16H]
def recv: [68H $fill(6,$addr) 68H 91H $ditch(1,$assign(&dl,$0-4))  $1+33H $data($ditch($dl)) $ditch(1,$chk($0,$fill(1,$chksum($group(0,$pos)))))]
def indict:[68H $fill(6,$addr) 68H 1CH 10H $1+33H $2+33H $3+33H $4+33H $fill(1,$chksum($group(0,$pos))) 16H]
def undict: [68H  $fill(6,$addr) 68H 9CH $data($ditch(1)) $fill(1,$chksum($group(0,$pos))) 16H]
3.3.2.2 DLT 645-2007 乐清市启程电气有限公司 (DDZY6866)
采集参数寄存器字节数据域数据表达式公式系数
正向有功电能400H 00H 00H 00H$bcd($reverse($data-0x33))100
开关状态104H 00H 05H 03H$bit($data,0,6)1
102H 00H 00H 00H;11H 11H 11H 11H;1BH 00H 00H 19H;11H 28H 11H 18H1-$int($data)1
102H 00H 00H 00H;11H 11H 11H 11H;1AH 00H 00H 19H;11H 28H 11H 18H1-$int($data)1

4 modbus协议

4.1 modbus 雷优自定义

#型号 modbus(crc16)
#modbus协议
def crc16: $crc($1,0x8005,0xffff,0x0000,0)
# $addr $len 都是输入的参数
def send:     [$addr C5H F4H E3H 04H $itom(2,$1) $itom(2,$len) $crc16($group(0,$pos))]
def recv:     [$addr C5H F4H 00H $ditch(1,$assign(&dl,$0))  $data($ditch($dl)) $ditch(2)]
def indict:   [$addr C5H F4H E4H 04H+$len $itom(2,$1) $itom(2,$len) $2 $crc16($group(0,$pos))]
def undict:   [$addr C5H F4H $data($ditch(1)) 00H $ditch(2)]

4.1.1 配置说明

适用modbus协议;
采集指令格式:
发送:[地址] C5H F4H E3H 04H [寄存器地址] [寄存器长度] [CRC16校验]
返回:[地址] C5H F4H 00H [数据长度] [数据] [CRC16校验]

4.1.2 仪表配置

4.1.2.2 雷优温度控制器(LEO-WK-01)
采集参数寄存器字节数据域数据表达式公式系数
开关状态2501$int($data)1
2501;00H 01H$cmp($int($data),0)1
2501;00H 00H$cmp($int($data),0)1
定时开关状态2520$int($data)1
制冷模式2502$int($data)1
风速模式2503$int($data)1
设置温度2504$int($data)1
读取温度2506$int($data)1
锁定状态2508$int($data)1
高档风速计时2510$bcd($data)100
中档风速计时2511$bcd($data)100
低档风速计时2512$bcd($data)100
计时状态25141-$int($data)1
阀门开关状态2530$int($data)1
阀门开2530;00H 01H$cmp($int($data),0)1
阀门关2530;00H 00H$cmp($int($data),0)1
定时开关2521;00H 00H$cmp($int($data),0)1
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值