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)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 2 | 00H 00H | $float($data) | 1 |
1.1.2.2 雷优导轨式电表(阀控)(LEO-AM-PS-K)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 2 | 00H 00H | $float($data) | 1 |
开 | 2 | 0DH B8H;11H 11H | $int($data) | 1 |
关 | 2 | 0DH B8H;22H 22H | $int($data) | 1 |
开关状态 | 1 | 0DH BAH | $int($data) | 1 |
1.1.2.3 山东潍坊科技水表(JRM-2C)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积流量(水) | 2 | 02H 02H | $int($data) | 10 |
1.1.2.4 江苏比驰电气(BC500-3)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 2 | 00H 00H | $float($data) | 1 |
1.1.2.5 江苏爱可信电表(PD1134E)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 2 | 00H 14H | $float($fill(4,$data(0,2),1)+$fill(4,$data(2,2),0)) | 1 |
1.1.2.6 杭州恒瑞电气(HR194E2SY)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 2 | 00H 36H | $int($data) | 10 |
1.1.2.7 上海燕赵电气(PD760E-9SY)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 2 | 00H 32H | $float($data) | 1 |
1.1.2.8 江苏斯菲尔电气(DTS1946)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 2 | 00H 34H | $float($data) | 1 |
1.1.2.9 上海搜博仪表(环境监测)(SM3590B)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
光照度 | 1 | 00H 00H | $int($data) | 1 |
温度 | 1 | 00H 01H | $int($data) | 100 |
湿度 | 1 | 00H 02H | $int($data) | 100 |
1.1.2.10 宁波埃美柯水表厂(LXLY_Modbus)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积流量(水) | 2 | 02H 02H | $int($data) | 100 |
1.1.2.11 山东临沂环翔水表(LXLC_Modbus)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积流量(水) | 2 | 00H 00H | $int($data) | 100 |
1.1.2.12 北京益都智能科技(MC)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积流量(水) | 2 | 02H 02H | $int($data,1,3) | 10 |
1.1.2.13 江苏连云港连利水表(Modbus)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积流量(水) | 2 | 00H 02H | $bcd($data) | 100 |
1.1.2.14 保瑞自控(MBU2B)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
瞬时流量 | 2 | 00H 00H | $int($data) | 100 |
累积流量 | 4 | 00H 05H | $int($data) | 100 |
累积冷量 | 4 | 00H 0BH | $int($data) | 100 |
累积热量 | 4 | 00H 08H | $int($data) | 100 |
供水温度 | 1 | 00H 02H | $int($data) | 100 |
回水温度 | 1 | 00H 03H | $int($data) | 100 |
1.1.2.15 艾科(C03P06)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
瞬时流量 | 2 | 00H 0CH | $int($data)*0.01 | 1000 |
累积流量 | 4 | 00H 08H | $int($data(0,4))*10000+$int($data(4,4))*0.0001 | 1 |
累积冷量 | 4 | 00H 00H | $int($data(0,4))*10000+$int($data(4,4))*0.0001 | 1000 |
累积热量 | 4 | 00H 04H | $int($data(0,4))*10000+$int($data(4,4))*0.0001 | 1000 |
供水温度 | 1 | 00H 0FH | $int($data) | 100 |
回水温度 | 1 | 00H 0EH | $int($data) | 100 |
瞬时功率 | 2 | 00H 03H | $int($data) | 100 |
1.4.2.2 南通日报社能量表
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积热量 | 4 | 05H 29H | $int($data(0,4))*10000000+$int($data(4,4)) | 3600 |
累积冷量 | 4 | 05H 33H | $int($data(0,4))*10000000+$int($data(4,4)) | 3600 |
功率 | 2 | 05H 21H | $float($data) | 1 |
瞬时流量 | 2 | 05H 19H | $float($data) | 1 |
累积流量 | 4 | 05H 27H | $int($data(0,4))*10000000+$int($data(4,4)) | 1000 |
供水温度 | 2 | 05H 23H | $float($data) | 1 |
回水温度 | 2 | 05H 25H | $float($data) | 1 |
1.4.2.2 南通日报社电
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 2 | 00H 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_电力系统)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 2 | 01H | $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)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
瞬时流量 | 2 | 00H 01H | $float($fill(4,$data(0,2),1)+$fill(4,$data(2,2))) | 1 |
瞬时流速 | 2 | 00H 03H | $float($fill(4,$data(0,2),1)+$fill(4,$data(2,2))) | 1 |
累积流量 | 2 | 00H 05H | $float($fill(4,$data(0,2),1)+$fill(4,$data(2,2))) | 1 |
累积冷量 | 2 | 00H 07H | $float($fill(4,$data(0,2),1)+$fill(4,$data(2,2))) | 1 |
累积热量 | 2 | 00H 09H | $float($fill(4,$data(0,2),1)+$fill(4,$data(2,2))) | 1 |
供水温度 | 2 | 00H 0DH | $float($fill(4,$data(0,2),1)+$fill(4,$data(2,2))) | 1 |
回水温度 | 2 | 00H 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)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
瞬时流量 | 2 | 100 | $float($fill(4,$data(0,2),1)+$fill(4,$data(2,2))) | 1 |
瞬时流速 | 2 | 102 | $float($fill(4,$data(0,2),1)+$fill(4,$data(2,2))) | 1 |
累积流量 | 4 | 112 | $int($data(0,4))+$int($data(4,4))/1000.0 | 1 |
累积热量 | 4 | 126 | $int($data(0,4))+$int($data(4,4))/1000.0 | 1 |
累积冷量 | 4 | 130 | $int($data(0,4))+$int($data(4,4))/1000.0 | 1 |
进水温度 | 2 | 122 | $float($data) | 1 |
回水温度 | 2 | 124 | $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)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 2 | 00H 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_冷水)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积流量(水) | 4 | 10H;33H 78H;1FH 90H 01H | $bcd($reverse($data(0,$len))) | 100 |
2.1.2.2 江苏连云港连利水表(CJT1882004_热水)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积流量(水) | 4 | 11H;33H 78H;1FH 90H 01H | $bcd($reverse($data(0,$len))) | 100 |
2.1.2.3 江苏连云港连利水表(CJT1882004_大口径)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积流量(水) | 4 | 19H;33H 78H;1FH 90H 01H | $bcd($reverse($data(0,$len))) | 100 |
2.1.2.4 江苏连云港连利水表(CJT188_科利达/CJT188_78_33)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积流量(水) | 4 | 19H;78H 33H;1FH 90H 01H | $bcd($reverse($data(0,$len))) | 100 |
2.1.2.5 江苏连云港连利水表(CJT1882004_阀控)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积流量(水) | 4 | 10H;33H 78H;1FH 90H 01H | $bcd($reverse($data(0,$len))) | 100 |
关 | 2 | 10H;33H 78H;17H A0H;04H 99H | $int($data)-09H | 1 |
开 | 2 | 10H;33H 78H;17H A0H;05H 55H | $int($data)-09H | 1 |
2.1.2.6 上海达西能源(UH-001)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积冷量 | 4 | 20H;11H 11H 00H;1FH 90H 01H | $bcd($reverse($data(0,$len))) | 0.1 |
累积热量 | 4 | 20H;11H 11H 00H;1FH 90H 01H | $bcd($reverse($data(5,$len))) | 0.1 |
功率 | 4 | 20H;11H 11H 00H;1FH 90H 01H | $bcd($reverse($data(10,$len))) | 100 |
瞬时流速 | 4 | 20H;11H 11H 00H;1FH 90H 01H | $bcd($reverse($data(15,$len))) | 10000 |
累积流量 | 4 | 20H;11H 11H 00H;1FH 90H 01H | $bcd($reverse($data(20,$len))) | 100 |
供水温度 | 3 | 20H;11H 11H 00H;1FH 90H 01H | $bcd($reverse($data(25,$len))) | 100 |
回水温度 | 3 | 20H;11H 11H 00H;1FH 90H 01H | $bcd($reverse($data(28,$len))) | 100 |
2.1.2.7 雷优超声波热量表(LEO-EM-C01)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积冷量 | 4 | 20H;00H 00H;90H 1fH 01H | $bcd($reverse($data(0,$len))) | 100 |
累积热量 | 4 | 20H;00H 00H;90H 1fH 01H | $bcd($reverse($data(5,$len))) | 100 |
功率 | 4 | 20H;00H 00H;90H 1fH 01H | $bcd($reverse($data(10,$len))) | 100 |
瞬时流量 | 4 | 20H;00H 00H;90H 1fH 01H | $bcd($reverse($data(15,$len))) | 100 |
累积流量 | 4 | 20H;00H 00H;90H 1fH 01H | $bcd($reverse($data(20,$len))) | 100 |
供水温度 | 3 | 20H;00H 00H;90H 1fH 01H | $bcd($reverse($data(25,$len))) | 100 |
回水温度 | 3 | 20H;00H 00H;90H 1fH 01H | $bcd($reverse($data(28,$len))) | 100 |
2.1.2.8 水表(CJT1882004_阀控)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
累积流量(水) | 4 | 10H;00H 00H;1FH 90H 08H | $bcd($reverse($data)) | 100 |
关 | 1 | 10H;00H 00H;A0H 17H 07H;99H | 1-$int($data(0,1)) | 1 |
开 | 1 | 10H;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)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 2 | 90H 10H | $bcd($reverse($data-0x33)) | 100 |
3.1.2.2 江阴雅达电气(DZ81-DZS300)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 2 | 90H 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)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 4 | 00H 00H 01H 00H | $bcd($reverse($data-0x33)) | 100 |
3.1.2.2 DLT 645-2007 重庆棕榈泉项目电表(DTS/DSS118)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 4 | 00H 00H 01H 00H | $bcd($reverse($data-0x33)) | 100 |
开关状态 | 1 | 00H 00H 01H 00H | $bcd($reverse($data-0x33)) | 1 |
开 | 1 | FFH 00H 00H 07H;98H 00H 00H 00H;01H 00H 00H 00H;3AH | $int($data) | 1 |
关 | 1 | FFH 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)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
正向有功电能 | 4 | 00H 00H 00H 00H | $bcd($reverse($data-0x33)) | 100 |
开关状态 | 1 | 04H 00H 05H 03H | $bit($data,0,6) | 1 |
开 | 1 | 02H 00H 00H 00H;11H 11H 11H 11H;1BH 00H 00H 19H;11H 28H 11H 18H | 1-$int($data) | 1 |
关 | 1 | 02H 00H 00H 00H;11H 11H 11H 11H;1AH 00H 00H 19H;11H 28H 11H 18H | 1-$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)
采集参数 | 寄存器字节 | 数据域 | 数据表达式 | 公式系数 |
---|
开关状态 | 2 | 501 | $int($data) | 1 |
开 | 2 | 501;00H 01H | $cmp($int($data),0) | 1 |
关 | 2 | 501;00H 00H | $cmp($int($data),0) | 1 |
定时开关状态 | 2 | 520 | $int($data) | 1 |
制冷模式 | 2 | 502 | $int($data) | 1 |
风速模式 | 2 | 503 | $int($data) | 1 |
设置温度 | 2 | 504 | $int($data) | 1 |
读取温度 | 2 | 506 | $int($data) | 1 |
锁定状态 | 2 | 508 | $int($data) | 1 |
高档风速计时 | 2 | 510 | $bcd($data) | 100 |
中档风速计时 | 2 | 511 | $bcd($data) | 100 |
低档风速计时 | 2 | 512 | $bcd($data) | 100 |
计时状态 | 2 | 514 | 1-$int($data) | 1 |
阀门开关状态 | 2 | 530 | $int($data) | 1 |
阀门开 | 2 | 530;00H 01H | $cmp($int($data),0) | 1 |
阀门关 | 2 | 530;00H 00H | $cmp($int($data),0) | 1 |
定时开关 | 2 | 521;00H 00H | $cmp($int($data),0) | 1 |