Files
CHJ/user/Protocol/UserModbus.h

367 lines
19 KiB
C
Raw Normal View History

2026-03-20 21:16:58 +08:00
#ifndef __UserModbus_h__
#define __UserModbus_h__
//******************************************************************************
#define meterSN1 MBReg[INX_030]
#define meterSN2 MBReg[INX_031]
#define meterSN3 MBReg[INX_032]
#define meterSN4 MBReg[INX_033]
#define meterSN5 MBReg[INX_034]
#define meterSN6 MBReg[INX_035]
#define alarmState MBReg[INX_036]
#define alarmState1 MBReg[INX_037]
#define alarmState2 MBReg[INX_038]
#define alarmState3 MBReg[INX_039]
#define flowRateH MBReg[INX_03A]
#define flowRateL MBReg[INX_03B]
#define flowAccumulationIntegerH MBReg[INX_03C]
#define flowAccumulationIntegerL MBReg[INX_03D]
#define flowAccumulationDecimal MBReg[INX_03E]
#define PCBTemperature MBReg[INX_03F]
#define GasTemperature MBReg[INX_040]
//#define MBReg[INX_041]
//#define MBReg[INX_042]
//#define MBReg[INX_043]
//#define MBReg[INX_044]
#define GASPressureH MBReg[INX_045]
#define GASPressureL MBReg[INX_046]
#define density MBReg[INX_047]
#define batteryCY MBReg[INX_048]
#define batteryVoltage MBReg[INX_049]
#define batteryDay MBReg[INX_04A]
#define batteryRDay MBReg[INX_04B]
#define ComBatteryCY MBReg[INX_04C]
#define ComBatteryVoltage MBReg[INX_04D]
#define ComBatteryDay MBReg[INX_04E]
#define ComBatteryRDay MBReg[INX_04F]
#define useMinte MBReg[INX_050]
#define useHourH MBReg[INX_051]
#define useHourL MBReg[INX_052]
#define VHHParameter MBReg[INX_053]
//#define MBReg[INX_054]
//#define MBReg[INX_055]
#define flowAccumulationHexH MBReg[INX_056]
#define flowAccumulationHexHM MBReg[INX_057]
#define flowAccumulationHexLM MBReg[INX_058]
#define flowAccumulationHexL MBReg[INX_059]
//#define MBReg[INX_05A]
//#define MBReg[INX_05B]
//#define MBReg[INX_05C]
//#define MBReg[INX_05D]
//#define MBReg[INX_05E]
#define densityFSParameter MBReg[INX_05F]
//#define MBReg[INX_060]
//#define MBReg[INX_061]
//#define MBReg[INX_062]
//#define MBReg[INX_063]
//#define MBReg[INX_064]
//#define MBReg[INX_065]
//#define MBReg[INX_066]
//#define MBReg[INX_067]
//#define MBReg[INX_068]
//#define MBReg[INX_069]
//#define MBReg[INX_06A]
//#define MBReg[INX_06B]
//#define MBReg[INX_06C]
//#define MBReg[INX_06D]
//#define MBReg[INX_06E]
//#define MBReg[INX_06F]
//#define MBReg[INX_070]
//#define MBReg[INX_071]
//#define MBReg[INX_072]
//#define MBReg[INX_073]
//#define MBReg[INX_074]
//#define MBReg[INX_075]
//#define MBReg[INX_076]
//#define MBReg[INX_077]
//#define MBReg[INX_078]
//#define MBReg[INX_079]
//#define MBReg[INX_07A]
//#define MBReg[INX_07B]
//#define MBReg[INX_07C]
//#define MBReg[INX_07D]
#define softCRCCode MBReg[INX_07E]
#define softVersion MBReg[INX_07F]
#define protocol MBReg[INX_080]
#define localAddress MBReg[INX_081]
#define baudRate MBReg[INX_082]
#define minFlowRateH MBReg[INX_083]
#define minFlowRateL MBReg[INX_084]
#define maxFlowRateH MBReg[INX_085]
#define maxFlowRateL MBReg[INX_086]
#define minAnalogOutputH MBReg[INX_087]
#define minAnalogOutputL MBReg[INX_088]
#define maxAnalogOutputH MBReg[INX_089]
#define maxAnalogOutputL MBReg[INX_08A]
#define GDCFactor MBReg[INX_08B]
#define filterTime MBReg[INX_08C]
#define responseTime MBReg[INX_08D]
#define offsetGas MBReg[INX_08E]
#define offsetGasA MBReg[INX_08F]
#define flowUnit MBReg[INX_090]
#define airFactor MBReg[INX_091]
#define factorVth MBReg[INX_092]
#define factoryUnitPerPulse MBReg[INX_093]
#define PulseLevel MBReg[INX_094]
#define samplingTiming MBReg[INX_095]
#define alarmAccH MBReg[INX_096]
#define alarmAccL MBReg[INX_097]
#define alarmUpperFlowRateH MBReg[INX_098]
#define alarmUpperFlowRateL MBReg[INX_099]
#define alarmLowerFlowRateH MBReg[INX_09A]
#define alarmLowerFlowRateL MBReg[INX_09B]
#define alarmFunction MBReg[INX_09C]
#define alarmOutDelay MBReg[INX_09D]
#define uartDecimalPoint MBReg[INX_09E]
#define recordTime MBReg[INX_09F]
#define reverseFlowRateMinH MBReg[INX_0A0]
#define reverseFlowRateMinL MBReg[INX_0A1]
#define reverseFlowRateMaxH MBReg[INX_0A2]
#define reverseFlowRateMaxL MBReg[INX_0A3]
#define I2CAddr MBReg[INX_0A4]
#define I2CCrcMod MBReg[INX_0A5]
#define timingTxdStart MBReg[INX_0A6]
#define timingTxdLen MBReg[INX_0A7]
#define timingTxdTime MBReg[INX_0A8]
#define pressureOffset MBReg[INX_0A9]
//#define MBReg[INX_0AA]
//#define MBReg[INX_0AB]
//#define MBReg[INX_0AC]
//#define MBReg[INX_0AD]
#define keyPassWordH MBReg[INX_0AE]
#define keyPassWordL MBReg[INX_0AF]
//#define MBReg[INX_0B0]
//#define MBReg[INX_0B1]
//#define MBReg[INX_0B2]
//#define MBReg[INX_0B3]
//#define MBReg[INX_0B4]
//#define MBReg[INX_0B5]
//#define MBReg[INX_0B6]
//#define MBReg[INX_0B7]
//#define MBReg[INX_0B8]
//#define MBReg[INX_0B9]
//#define MBReg[INX_0BA]
//#define MBReg[INX_0BB]
//#define MBReg[INX_0BC]
//#define MBReg[INX_0BD]
//#define MBReg[INX_0BE]
//#define MBReg[INX_0BF]
//#define MBReg[INX_0C0]
//#define MBReg[INX_0C1]
//#define MBReg[INX_0C2]
//#define MBReg[INX_0C3]
//#define MBReg[INX_0C4]
//#define MBReg[INX_0C5]
//#define MBReg[INX_0C6]
//#define MBReg[INX_0C7]
//#define MBReg[INX_0C8]
//#define MBReg[INX_0C9]
//#define MBReg[INX_0CA]
//#define MBReg[INX_0CB]
//#define MBReg[INX_0CC]
//#define MBReg[INX_0CD]
//#define MBReg[INX_0CE]
//#define MBReg[INX_0CF]
//#define MBReg[INX_0D0]
//#define MBReg[INX_0D1]
//#define MBReg[INX_0D2]
//#define MBReg[INX_0D3]
//#define MBReg[INX_0D4]
//#define MBReg[INX_0D5]
//#define MBReg[INX_0D6]
//#define MBReg[INX_0D7]
//#define MBReg[INX_0D8]
//#define MBReg[INX_0D9]
#define minLeakFlowRate MBReg[INX_0DA]
#define maxLeakFlowRate MBReg[INX_0DB]
#define leakDetectTime MBReg[INX_0DC]
//#define MBReg[INX_0DD]
#define GDCFactorAType MBReg[INX_0DE]
//#define MBReg[INX_0DF]
//#define MBReg[INX_0E0]
//#define MBReg[INX_0E1]
//#define MBReg[INX_0E2]
//#define MBReg[INX_0E3]
//#define MBReg[INX_0E4]
//#define MBReg[INX_0E5]
//#define MBReg[INX_0E6]
//#define MBReg[INX_0E7]
//#define MBReg[INX_0E8]
//#define MBReg[INX_0E9]
//#define MBReg[INX_0EA]
//#define MBReg[INX_0EB]
//#define MBReg[INX_0EC]
//#define MBReg[INX_0ED]
//#define MBReg[INX_0EE]
//#define MBReg[INX_0EF]
#define CMDCalOffset MBReg[INX_0F0]
#define CMDClrRecord MBReg[INX_0F1]
//#define MBReg[INX_0F2]
//#define MBReg[INX_0F3]
//#define MBReg[INX_0F4]
//#define MBReg[INX_0F5]
//#define MBReg[INX_0F6]
//#define MBReg[INX_0F7]
//#define MBReg[INX_0F8]
//#define MBReg[INX_0F9]
//#define MBReg[INX_0FA]
//#define MBReg[INX_0FB]
//#define MBReg[INX_0FC]
//#define MBReg[INX_0FD]
//#define MBReg[INX_0FE]
#define CMDComPassword MBReg[INX_0FF]
#define MAPPoint1 MBReg[INX_100]
#define MAPPoint2 MBReg[INX_101]
#define MAPPoint3 MBReg[INX_102]
#define MAPPoint4 MBReg[INX_103]
#define MAPPoint5 MBReg[INX_104]
#define MAPPoint6 MBReg[INX_105]
#define MAPPoint7 MBReg[INX_106]
#define MAPPoint8 MBReg[INX_107]
#define MAPPoint9 MBReg[INX_108]
#define MAPPoint10 MBReg[INX_109]
#define MAPPoint11 MBReg[INX_10A]
#define MAPPoint12 MBReg[INX_10B]
#define MAPPoint13 MBReg[INX_10C]
#define MAPPoint14 MBReg[INX_10D]
#define MAPPoint15 MBReg[INX_10E]
#define MAPPoint16 MBReg[INX_10F]
#define MAPPoint17 MBReg[INX_110]
#define MAPPoint18 MBReg[INX_111]
#define MAPPoint19 MBReg[INX_112]
#define MAPPoint20 MBReg[INX_113]
#define MAPPoint21 MBReg[INX_114]
#define MAPPoint22 MBReg[INX_115]
#define MAPPoint23 MBReg[INX_116]
#define MAPPoint24 MBReg[INX_117]
#define MAPPoint25 MBReg[INX_118]
#define MAPPoint26 MBReg[INX_119]
#define MAPPoint27 MBReg[INX_11A]
#define MAPPoint28 MBReg[INX_11B]
#define MAPPoint29 MBReg[INX_11C]
#define MAPPoint30 MBReg[INX_11D]
#define MAPPoint31 MBReg[INX_11E]
#define MAPPoint32 MBReg[INX_11F]
#define MAPPoint33 MBReg[INX_120]
#define MAPPoint34 MBReg[INX_121]
#define MAPPoint35 MBReg[INX_122]
#define MAPPoint36 MBReg[INX_123]
#define MAPPoint37 MBReg[INX_124]
#define MAPPoint38 MBReg[INX_125]
#define MAPPoint39 MBReg[INX_126]
#define MAPPoint40 MBReg[INX_127]
#define MAPPoint41 MBReg[INX_128]
#define MAPPoint42 MBReg[INX_129]
#define MAPPoint43 MBReg[INX_12A]
#define MAPPoint44 MBReg[INX_12B]
#define MAPPoint45 MBReg[INX_12C]
#define MAPPoint46 MBReg[INX_12D]
#define MAPPoint47 MBReg[INX_12E]
#define MAPPoint48 MBReg[INX_12F]
#define dcoefNum MBReg[INX_130]
//#define MBReg[INX_131]
//#define MBReg[INX_132]
//#define MBReg[INX_133]
//#define MBReg[INX_134]
//#define MBReg[INX_135]
//#define MBReg[INX_136]
//#define MBReg[INX_137]
//#define MBReg[INX_138]
//#define MBReg[INX_139]
//#define MBReg[INX_13A]
//#define MBReg[INX_13B]
//#define MBReg[INX_13C]
//#define MBReg[INX_13D]
//#define MBReg[INX_13E]
//#define MBReg[INX_13F]
//#define MBReg[INX_140]
//#define MBReg[INX_141]
//#define MBReg[INX_142]
//#define MBReg[INX_143]
//#define MBReg[INX_144]
//#define MBReg[INX_145]
//#define MBReg[INX_146]
//#define MBReg[INX_147]
//#define MBReg[INX_148]
//#define MBReg[INX_149]
//#define MBReg[INX_14A]
//#define MBReg[INX_14B]
//#define MBReg[INX_14C]
//#define MBReg[INX_14D]
//#define MBReg[INX_14E]
//#define MBReg[INX_14F]
//#define MBReg[INX_150]
//#define MBReg[INX_151]
//#define MBReg[INX_152]
//#define MBReg[INX_153]
//#define MBReg[INX_154]
//#define MBReg[INX_155]
//#define MBReg[INX_156]
//#define MBReg[INX_157]
//#define MBReg[INX_158]
//#define MBReg[INX_159]
//#define MBReg[INX_15A]
//#define MBReg[INX_15B]
//#define MBReg[INX_15C]
//#define MBReg[INX_15D]
//#define MBReg[INX_15E]
//#define MBReg[INX_15F]
//#define MBReg[INX_160]
//#define MBReg[INX_161]
//#define MBReg[INX_162]
//#define MBReg[INX_163]
//#define MBReg[INX_164]
//#define MBReg[INX_165]
//#define MBReg[INX_166]
//#define MBReg[INX_167]
//#define MBReg[INX_168]
//#define MBReg[INX_169]
//#define MBReg[INX_16A]
//#define MBReg[INX_16B]
//#define MBReg[INX_16C]
//#define MBReg[INX_16D]
//#define MBReg[INX_16E]
//#define MBReg[INX_16F]
//#define MBReg[INX_170]
//#define MBReg[INX_171]
//#define MBReg[INX_172]
//#define MBReg[INX_173]
//#define MBReg[INX_174]
//#define MBReg[INX_175]
//#define MBReg[INX_176]
//#define MBReg[INX_177]
//#define MBReg[INX_178]
//#define MBReg[INX_179]
//#define MBReg[INX_17A]
//#define MBReg[INX_17B]
//#define MBReg[INX_17C]
//#define MBReg[INX_17D]
//#define MBReg[INX_17E]
//#define MBReg[INX_17F]
//#define MBReg[INX_180]
/*****************************************************************************************/
extern u16 MBReg[];
#define GET_MBWORD_IDX(var) ((u32)(&(var) - MBReg)) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>varΪMBReg[index]<5D>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
#define GET_MBWORD_ADDR(var) (MEM_ADDR_REG_0X30+GET_MBWORD_IDX(var)*REG_WORD_WIDTH)//<2F><><EFBFBD><EFBFBD> <20><> <20><>ַvarΪMBReg[index]<5D>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
#define ADR_MBWORD_IDX(adr) (((u32)(adr) - MEM_ADDR_REG_0X30) / REG_WORD_WIDTH)//<2F><>ַ <20><> <20><><EFBFBD><EFBFBD> adrΪMBReg[index]<5D><>ʵ<EFBFBD><CAB5><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>ַ
/*****************************************************************************************/
#define SERIES_BASE GET_MBWORD_ADDR(meterSN1)
#define SERIES_DEPTH 12
//--------------------------------------------------------
u16 SetupResponseTimeIndex(u16 response, u16 responseDefalt);
u16 SetupResponseTime(u16 response, u16 responseDefalt);
void InitUseBusParameter(void);
void UseBusParameterInit(void);
void UseBusParameterReset(void);
void UserReadDataProtocol(void);
void UserWriteDataProtocol(void);
#endif