52 lines
1.8 KiB
C
52 lines
1.8 KiB
C
#ifndef __MF_H_
|
||
#define __MF_H_
|
||
|
||
#include "main.h"
|
||
|
||
#define MF4700_ADDR 0x01
|
||
#define MF5000_ADDR 0x02
|
||
|
||
//功能码
|
||
#define Read_Hold 0x03 //读取一个或多个连续的保持寄存器的值
|
||
#define Write_Single 0x06 //把具体二进制值装入一个保持寄存器
|
||
#define Error_Diag 0x08 //检查主设备与流量计之间的通讯是否正常
|
||
#define Write_Multi 0x16 //把具体二进制值装入多个连续的保持寄存器
|
||
|
||
//寄存器地址
|
||
#define MF4700_Modbus_Addr 0x01 //Modbus地址
|
||
#define MF4700_Ins_Flow_Addr 0x02 //瞬时流量 0x02~0x03
|
||
#define MF4700_Cum_Flow_Addr 0x04 //累积总量 0x04~0x06
|
||
#define MF4700_Baud_Rate_Addr 0x15 //波特率
|
||
#define MF4700_GCF_Addr 0x16 //GCF 气体修正系数
|
||
#define MF4700_Res_Tim_Addr 0x17 //响应时间
|
||
#define MF4700_Auto_Zero_Addr 0x27 //自动校零 写入指定数据0xAA55
|
||
#define MF4700_Upper_Limit_Alarm 0x31 //下限报警
|
||
#define MF4700_Lower_Limit_Alarm 0x33 //上限报警
|
||
#define MF4700_Write_Protec 0x14 //写保护寄存器 写入指定数据0xAA55
|
||
|
||
#define MF5000_Modbus_Addr 0x81 //Modbus地址
|
||
#define MF5000_Ins_Flow_Addr 0x3A //瞬时流量 0x3A~0x3B
|
||
#define MF5000_Cum_Flow_Addr 0x3C //累积总量 0x3C~0x3E
|
||
#define MF5000_Baud_Rate_Addr 0x82 //波特率
|
||
#define MF5000_GCF_Addr 0x8B //GCF 气体修正系数
|
||
#define MF5000_Unit_Addr 0x90 //单位
|
||
#define MF5000_Code_Addr 0xAE //密码 0xAE~0xAF
|
||
#define MF5000_Auto_Zero_Addr 0xF0 //自动校零 写入指定数据0xAA55
|
||
#define MF5000_Clear_Addr 0xF2 //清除累计总量 写入指定数据0x0001
|
||
#define MF5000_Write_Protec 0xFF //写保护寄存器 写入指定数据0xAA55
|
||
/*在除Modbus地址和波特率外的其他修改操作前,均需先操作写保护寄存器,临时关闭写保护功能。
|
||
在完成一次修改操作60秒内,如果没有其他修改操作,写保护功能会自动打开*/
|
||
|
||
|
||
#define General_Data 0xAA55 //指定数据,用于自动校零和解除写保护
|
||
|
||
|
||
void read_mf4700_flow(void);
|
||
void read_mf5000_flow(void);
|
||
void mf4700_zero(void);
|
||
void mf5000_zero(void);
|
||
|
||
|
||
#endif
|
||
|