/********************************************************************************************************* * 模块名称:Main.h * 摘 要:主文件,包含软硬件初始化函数和main函数 * 当前版本:1.0.0 * 作 者:Leyutek(COPYRIGHT 2018 - 2021 Leyutek. All rights reserved.) * 完成日期:2021年07月01日 * 内 容: * 注 意: ********************************************************************************************************** * 取代版本: * 作 者: * 完成日期: * 修改内容: * 修改文件: *********************************************************************************************************/ #ifndef _MAIN_H_ #define _MAIN_H_ /********************************************************************************************************* * 包含头文件 *********************************************************************************************************/ #include "stdbool.h" #include "gd32e230x_conf.h" /********************************************************************************************************* * 宏定义 *********************************************************************************************************/ #define DCPDU_Modbus_Reg_len 200 //modbus寄存器长度 #define RELAY_ChN_default 6 //所用通道数,默认值 #define RELAY_ontime_default 0 //继电器开通延时默认及最小值 #define RELAY_ontime_max 99 //继电器开通延时最大值 #define RELAY_offtime_default 0 //继电器断开延时默认及最小值 #define RELAY_offtime_max 99 //继电器断开延时最大值 #define Read_IM1253E_Deltatime 5 //读取间隔时间 #define DCPDU_Device_ID 0x0007 //设备型号 #define Uart0_Baud 115200 #define Mb_Wcmd_Width 32 #define Mb_Wcmd_len 8 #define Vin_LTmax_default 450000 //电压最大阈值 #define Vin_LTmin_default 12000 //电压最小阈值,未用 #define Iout_LTmax_default 90000 //电流最大阈值 #define Iout_LTmin_default 500 //电流最小阈值,未用 //Modbus的寄存器地址和地址下最多能存储多少个字节数据 //直流PDU数据表,地址+字节数 #define DCPDU_Modbus_RegStAd 6000 #define Devid_ChalNumAddr (DCPDU_Modbus_RegStAd + 0) #define Devid_ChalNumQua 2 #define DCPDU_VInput_Addr (DCPDU_Modbus_RegStAd + 2) #define DCPDU_VInput_ByteN 4 #define DCPDU_IInput_Addr (DCPDU_Modbus_RegStAd + 3) #define DCPDU_IInput_ByteN 4 #define DCPDU_WInput_Addr (DCPDU_Modbus_RegStAd + 4) #define DCPDU_WInput_ByteN 4 #define DCPDU_KWhInput_Addr (DCPDU_Modbus_RegStAd + 5) #define DCPDU_KWhInput_ByteN 4 #define DCPDU_P1Output_Addr (DCPDU_Modbus_RegStAd + 10) #define DCPDU_P1Output_ByteN 16 #define DCPDU_P2Output_Addr (DCPDU_Modbus_RegStAd + 14) #define DCPDU_P2Output_ByteN 16 #define DCPDU_P3Output_Addr (DCPDU_Modbus_RegStAd + 18) #define DCPDU_P3Output_ByteN 16 #define DCPDU_P4Output_Addr (DCPDU_Modbus_RegStAd + 22) #define DCPDU_P4Output_ByteN 16 #define DCPDU_P5Output_Addr (DCPDU_Modbus_RegStAd + 26) #define DCPDU_P5Output_ByteN 16 #define DCPDU_P6Output_Addr (DCPDU_Modbus_RegStAd + 30) #define DCPDU_P6Output_ByteN 16 #define DCPDU_P7Output_Addr (DCPDU_Modbus_RegStAd + 34) #define DCPDU_P7Output_ByteN 16 #define DCPDU_P8Output_Addr (DCPDU_Modbus_RegStAd + 38) #define DCPDU_P8Output_ByteN 16 #define DCPDU_VLit1_max_Addr (DCPDU_Modbus_RegStAd + 50) #define DCPDU_VLit1_max_ByteN 4 #define DCPDU_VLit2_max_Addr (DCPDU_Modbus_RegStAd + 51) #define DCPDU_VLit2_max_ByteN 4 #define DCPDU_VLit3_max_Addr (DCPDU_Modbus_RegStAd + 52) #define DCPDU_VLit3_max_ByteN 4 #define DCPDU_VLit4_max_Addr (DCPDU_Modbus_RegStAd + 53) #define DCPDU_VLit4_max_ByteN 4 #define DCPDU_VLit5_max_Addr (DCPDU_Modbus_RegStAd + 54) #define DCPDU_VLit5_max_ByteN 4 #define DCPDU_VLit6_max_Addr (DCPDU_Modbus_RegStAd + 55) #define DCPDU_VLit6_max_ByteN 4 #define DCPDU_VLit7_max_Addr (DCPDU_Modbus_RegStAd + 56) #define DCPDU_VLit7_max_ByteN 4 #define DCPDU_VLit8_max_Addr (DCPDU_Modbus_RegStAd + 57) #define DCPDU_VLit8_max_ByteN 4 #define DCPDU_VLit1_min_Addr (DCPDU_Modbus_RegStAd + 66) #define DCPDU_VLit1_min_ByteN 4 #define DCPDU_VLit2_min_Addr (DCPDU_Modbus_RegStAd + 67) #define DCPDU_VLit2_min_ByteN 4 #define DCPDU_VLit3_min_Addr (DCPDU_Modbus_RegStAd + 68) #define DCPDU_VLit3_min_ByteN 4 #define DCPDU_VLit4_min_Addr (DCPDU_Modbus_RegStAd + 69) #define DCPDU_VLit4_min_ByteN 4 #define DCPDU_VLit5_min_Addr (DCPDU_Modbus_RegStAd + 70) #define DCPDU_VLit5_min_ByteN 4 #define DCPDU_VLit6_min_Addr (DCPDU_Modbus_RegStAd + 71) #define DCPDU_VLit6_min_ByteN 4 #define DCPDU_VLit7_min_Addr (DCPDU_Modbus_RegStAd + 72) #define DCPDU_VLit7_min_ByteN 4 #define DCPDU_VLit8_min_Addr (DCPDU_Modbus_RegStAd + 73) #define DCPDU_VLit8_min_ByteN 4 #define DCPDU_ILit1_max_Addr (DCPDU_Modbus_RegStAd + 82) #define DCPDU_ILit1_max_ByteN 4 #define DCPDU_ILit2_max_Addr (DCPDU_Modbus_RegStAd + 83) #define DCPDU_ILit2_max_ByteN 4 #define DCPDU_ILit3_max_Addr (DCPDU_Modbus_RegStAd + 84) #define DCPDU_ILit3_max_ByteN 4 #define DCPDU_ILit4_max_Addr (DCPDU_Modbus_RegStAd + 85) #define DCPDU_ILit4_max_ByteN 4 #define DCPDU_ILit5_max_Addr (DCPDU_Modbus_RegStAd + 86) #define DCPDU_ILit5_max_ByteN 4 #define DCPDU_ILit6_max_Addr (DCPDU_Modbus_RegStAd + 87) #define DCPDU_ILit6_max_ByteN 4 #define DCPDU_ILit7_max_Addr (DCPDU_Modbus_RegStAd + 88) #define DCPDU_ILit7_max_ByteN 4 #define DCPDU_ILit8_max_Addr (DCPDU_Modbus_RegStAd + 89) #define DCPDU_ILit8_max_ByteN 4 #define DCPDU_ILit1_min_Addr (DCPDU_Modbus_RegStAd + 98) #define DCPDU_ILit1_min_ByteN 4 #define DCPDU_ILit2_min_Addr (DCPDU_Modbus_RegStAd + 99) #define DCPDU_ILit2_min_ByteN 4 #define DCPDU_ILit3_min_Addr (DCPDU_Modbus_RegStAd + 100) #define DCPDU_ILit3_min_ByteN 4 #define DCPDU_ILit4_min_Addr (DCPDU_Modbus_RegStAd + 101) #define DCPDU_ILit4_min_ByteN 4 #define DCPDU_ILit5_min_Addr (DCPDU_Modbus_RegStAd + 102) #define DCPDU_ILit5_min_ByteN 4 #define DCPDU_ILit6_min_Addr (DCPDU_Modbus_RegStAd + 103) #define DCPDU_ILit6_min_ByteN 4 #define DCPDU_ILit7_min_Addr (DCPDU_Modbus_RegStAd + 104) #define DCPDU_ILit7_min_ByteN 4 #define DCPDU_ILit8_min_Addr (DCPDU_Modbus_RegStAd + 105) #define DCPDU_ILit8_min_ByteN 4 #define DCPDU_RL_ST_Addr (DCPDU_Modbus_RegStAd + 114) #define DCPDU_RL_ST_ByteN 1 #define DCPDU_RLft_ST_Addr (DCPDU_Modbus_RegStAd + 116) #define DCPDU_RLft_ST_ByteN 1 #define DCPDU_RL_Ton1_Addr (DCPDU_Modbus_RegStAd + 118) #define DCPDU_RL_Ton1_ByteN 1 #define DCPDU_RL_Ton2_Addr (DCPDU_Modbus_RegStAd + 119) #define DCPDU_RL_Ton2_ByteN 1 #define DCPDU_RL_Ton3_Addr (DCPDU_Modbus_RegStAd + 120) #define DCPDU_RL_Ton3_ByteN 1 #define DCPDU_RL_Ton4_Addr (DCPDU_Modbus_RegStAd + 121) #define DCPDU_RL_Ton4_ByteN 1 #define DCPDU_RL_Ton5_Addr (DCPDU_Modbus_RegStAd + 122) #define DCPDU_RL_Ton5_ByteN 1 #define DCPDU_RL_Ton6_Addr (DCPDU_Modbus_RegStAd + 123) #define DCPDU_RL_Ton6_ByteN 1 #define DCPDU_RL_Ton7_Addr (DCPDU_Modbus_RegStAd + 124) #define DCPDU_RL_Ton7_ByteN 1 #define DCPDU_RL_Ton8_Addr (DCPDU_Modbus_RegStAd + 125) #define DCPDU_RL_Ton8_ByteN 1 #define DCPDU_RL_Toff1_Addr (DCPDU_Modbus_RegStAd + 134) #define DCPDU_RL_Toff1_ByteN 1 #define DCPDU_RL_Toff2_Addr (DCPDU_Modbus_RegStAd + 135) #define DCPDU_RL_Toff2_ByteN 1 #define DCPDU_RL_Toff3_Addr (DCPDU_Modbus_RegStAd + 136) #define DCPDU_RL_Toff3_ByteN 1 #define DCPDU_RL_Toff4_Addr (DCPDU_Modbus_RegStAd + 137) #define DCPDU_RL_Toff4_ByteN 1 #define DCPDU_RL_Toff5_Addr (DCPDU_Modbus_RegStAd + 138) #define DCPDU_RL_Toff5_ByteN 1 #define DCPDU_RL_Toff6_Addr (DCPDU_Modbus_RegStAd + 139) #define DCPDU_RL_Toff6_ByteN 1 #define DCPDU_RL_Toff7_Addr (DCPDU_Modbus_RegStAd + 140) #define DCPDU_RL_Toff7_ByteN 1 #define DCPDU_RL_Toff8_Addr (DCPDU_Modbus_RegStAd + 141) #define DCPDU_RL_Toff8_ByteN 1 #define DCPDU_RL_Allon_Addr (DCPDU_Modbus_RegStAd + 150) #define DCPDU_RL_Allon_ByteN 1 #define DCPDU_RL_Alloff_Addr (DCPDU_Modbus_RegStAd + 151) #define DCPDU_RL_Alloff_ByteN 1 /// #define Mb_Dbuff_DevAddr 0 #define Mb_Dbuff_VInput_Addr 2 #define Mb_Dbuff_IInput_Addr 3 #define Mb_Dbuff_WInput_Addr 4 #define Mb_Dbuff_KWhInput_Addr 5 #define Mb_Dbuff_P1Output_Addr 10 #define Mb_Dbuff_P2Output_Addr 14 #define Mb_Dbuff_P3Output_Addr 18 #define Mb_Dbuff_P4Output_Addr 22 #define Mb_Dbuff_P5Output_Addr 26 #define Mb_Dbuff_P6Output_Addr 30 #define Mb_Dbuff_P7Output_Addr 34 #define Mb_Dbuff_P8Output_Addr 38 #define Mb_Dbuff_VLit1_max_Addr 50 #define Mb_Dbuff_VLit2_max_Addr 51 #define Mb_Dbuff_VLit3_max_Addr 52 #define Mb_Dbuff_VLit4_max_Addr 53 #define Mb_Dbuff_VLit5_max_Addr 54 #define Mb_Dbuff_VLit6_max_Addr 55 #define Mb_Dbuff_VLit7_max_Addr 56 #define Mb_Dbuff_VLit8_max_Addr 57 #define Mb_Dbuff_VLit1_min_Addr 66 #define Mb_Dbuff_VLit2_min_Addr 67 #define Mb_Dbuff_VLit3_min_Addr 68 #define Mb_Dbuff_VLit4_min_Addr 69 #define Mb_Dbuff_VLit5_min_Addr 70 #define Mb_Dbuff_VLit6_min_Addr 71 #define Mb_Dbuff_VLit7_min_Addr 72 #define Mb_Dbuff_VLit8_min_Addr 73 #define Mb_Dbuff_ILit1_max_Addr 82 #define Mb_Dbuff_ILit2_max_Addr 83 #define Mb_Dbuff_ILit3_max_Addr 84 #define Mb_Dbuff_ILit4_max_Addr 85 #define Mb_Dbuff_ILit5_max_Addr 86 #define Mb_Dbuff_ILit6_max_Addr 87 #define Mb_Dbuff_ILit7_max_Addr 88 #define Mb_Dbuff_ILit8_max_Addr 89 #define Mb_Dbuff_ILit1_min_Addr 98 #define Mb_Dbuff_ILit2_min_Addr 99 #define Mb_Dbuff_ILit3_min_Addr 100 #define Mb_Dbuff_ILit4_min_Addr 101 #define Mb_Dbuff_ILit5_min_Addr 102 #define Mb_Dbuff_ILit6_min_Addr 103 #define Mb_Dbuff_ILit7_min_Addr 104 #define Mb_Dbuff_ILit8_min_Addr 105 #define Mb_Dbuff_RL_ST_Addr 114 #define Mb_Dbuff_RLft_ST_Addr 116 #define Mb_Dbuff_RL_Ton1_Addr 118 #define Mb_Dbuff_RL_Ton2_Addr 119 #define Mb_Dbuff_RL_Ton3_Addr 120 #define Mb_Dbuff_RL_Ton4_Addr 121 #define Mb_Dbuff_RL_Ton5_Addr 122 #define Mb_Dbuff_RL_Ton6_Addr 123 #define Mb_Dbuff_RL_Ton7_Addr 124 #define Mb_Dbuff_RL_Ton8_Addr 125 #define Mb_Dbuff_RL_Toff1_Addr 134 #define Mb_Dbuff_RL_Toff2_Addr 135 #define Mb_Dbuff_RL_Toff3_Addr 136 #define Mb_Dbuff_RL_Toff4_Addr 137 #define Mb_Dbuff_RL_Toff5_Addr 138 #define Mb_Dbuff_RL_Toff6_Addr 139 #define Mb_Dbuff_RL_Toff7_Addr 140 #define Mb_Dbuff_RL_Toff8_Addr 141 #define Mb_Dbuff_RL_Allon_Addr 150 #define Mb_Dbuff_RL_Alloff_Addr 151 //Eeprom的存储地址和地址下最多能存储多少个字节数据 #define RELAY_para_sum 256 #define ERom_Reg_StAddr 0x0000 #define ERom_RL_Ch_N_addr 0x0000 #define ERom_RL_Ch_N_ByteN 1 #define ERom_RL_ST_Addr 0x0001 #define ERom_RL_ST_ByteN 1 #define ERom_RLft_ST_Addr 0x0003 #define ERom_RLft_ST_ByteN 1 #define ERom_RL_Ton1_Addr 0x0005 #define ERom_RL_Ton1_ByteN 1 #define ERom_RL_Ton2_Addr 0x0006 #define ERom_RL_Ton2_ByteN 1 #define ERom_RL_Ton3_Addr 0x0007 #define ERom_RL_Ton3_ByteN 1 #define ERom_RL_Ton4_Addr 0x0008 #define ERom_RL_Ton4_ByteN 1 #define ERom_RL_Ton5_Addr 0x0009 #define ERom_RL_Ton5_ByteN 1 #define ERom_RL_Ton6_Addr 0x000a #define ERom_RL_Ton6_ByteN 1 #define ERom_RL_Ton7_Addr 0x000b #define ERom_RL_Ton7_ByteN 1 #define ERom_RL_Ton8_Addr 0x000c #define ERom_RL_Ton8_ByteN 1 #define ERom_RL_Toff1_Addr 0x0015 #define ERom_RL_Toff1_ByteN 1 #define ERom_RL_Toff2_Addr 0x0016 #define ERom_RL_Toff2_ByteN 1 #define ERom_RL_Toff3_Addr 0x0017 #define ERom_RL_Toff3_ByteN 1 #define ERom_RL_Toff4_Addr 0x0018 #define ERom_RL_Toff4_ByteN 1 #define ERom_RL_Toff5_Addr 0x0019 #define ERom_RL_Toff5_ByteN 1 #define ERom_RL_Toff6_Addr 0x001a #define ERom_RL_Toff6_ByteN 1 #define ERom_RL_Toff7_Addr 0x001b #define ERom_RL_Toff7_ByteN 1 #define ERom_RL_Toff8_Addr 0x001c #define ERom_RL_Toff8_ByteN 1 #define ERom_RL_Allon_Addr 0x0025 #define ERom_RL_Allon_ByteN 1 #define ERom_RL_Alloff_Addr 0x0027 #define ERom_RL_Alloff_ByteN 1 #define ERom_VLit1_max_Addr 0x0029 #define ERom_VLit1_max_ByteN 4 #define ERom_VLit2_max_Addr 0x002d #define ERom_VLit2_max_ByteN 4 #define ERom_VLit3_max_Addr 0x0031 #define ERom_VLit3_max_ByteN 4 #define ERom_VLit4_max_Addr 0x0035 #define ERom_VLit4_max_ByteN 4 #define ERom_VLit5_max_Addr 0x0039 #define ERom_VLit5_max_ByteN 4 #define ERom_VLit6_max_Addr 0x003d #define ERom_VLit6_max_ByteN 4 #define ERom_VLit7_max_Addr 0x0041 #define ERom_VLit7_max_ByteN 4 #define ERom_VLit8_max_Addr 0x0045 #define ERom_VLit8_max_ByteN 4 #define ERom_VLit1_min_Addr 0x0059 #define ERom_VLit1_min_ByteN 4 #define ERom_VLit2_min_Addr 0x005d #define ERom_VLit2_min_ByteN 4 #define ERom_VLit3_min_Addr 0x0061 #define ERom_VLit3_min_ByteN 4 #define ERom_VLit4_min_Addr 0x0065 #define ERom_VLit4_min_ByteN 4 #define ERom_VLit5_min_Addr 0x0069 #define ERom_VLit5_min_ByteN 4 #define ERom_VLit6_min_Addr 0x006d #define ERom_VLit6_min_ByteN 4 #define ERom_VLit7_min_Addr 0x0071 #define ERom_VLit7_min_ByteN 4 #define ERom_VLit8_min_Addr 0x0075 #define ERom_VLit8_min_ByteN 4 #define ERom_ILit1_max_Addr 0x0089 #define ERom_ILit1_max_ByteN 4 #define ERom_ILit2_max_Addr 0x008d #define ERom_ILit2_max_ByteN 4 #define ERom_ILit3_max_Addr 0x0091 #define ERom_ILit3_max_ByteN 4 #define ERom_ILit4_max_Addr 0x0095 #define ERom_ILit4_max_ByteN 4 #define ERom_ILit5_max_Addr 0x0099 #define ERom_ILit5_max_ByteN 4 #define ERom_ILit6_max_Addr 0x009d #define ERom_ILit6_max_ByteN 4 #define ERom_ILit7_max_Addr 0x00A1 #define ERom_ILit7_max_ByteN 4 #define ERom_ILit8_max_Addr 0x00A5 #define ERom_ILit8_max_ByteN 4 #define ERom_ILit1_min_Addr 0x00B9 #define ERom_ILit1_min_ByteN 4 #define ERom_ILit2_min_Addr 0x00Bd #define ERom_ILit2_min_ByteN 4 #define ERom_ILit3_min_Addr 0x00C1 #define ERom_ILit3_min_ByteN 4 #define ERom_ILit4_min_Addr 0x00C5 #define ERom_ILit4_min_ByteN 4 #define ERom_ILit5_min_Addr 0x00C9 #define ERom_ILit5_min_ByteN 4 #define ERom_ILit6_min_Addr 0x00Cd #define ERom_ILit6_min_ByteN 4 #define ERom_ILit7_min_Addr 0x00D1 #define ERom_ILit7_min_ByteN 4 #define ERom_ILit8_min_Addr 0x00D5 #define ERom_ILit8_min_ByteN 4 #define ERom_TotalWh1_Addr 0x00D9 #define ERom_TotalWh1_ByteN 4 #define ERom_TotalWh2_Addr 0x00DD #define ERom_TotalWh2_ByteN 4 #define ERom_TotalWh3_Addr 0x00E1 #define ERom_TotalWh3_ByteN 4 #define ERom_TotalWh4_Addr 0x00E5 #define ERom_TotalWh4_ByteN 4 #define ERom_TotalWh5_Addr 0x00E9 #define ERom_TotalWh5_ByteN 4 #define ERom_TotalWh6_Addr 0x00ED #define ERom_TotalWh6_ByteN 4 #define ERom_TotalWh7_Addr 0x00F1 #define ERom_TotalWh7_ByteN 4 #define ERom_TotalWh8_Addr 0x00F5 #define ERom_TotalWh8_ByteN 4 ///////////////////////////////////// typedef struct DCPDU_RELAY_Para_Reg { uint8_t RL_chn; uint8_t RL_ontime[RELAY_ChN_default]; uint8_t RL_offtime[RELAY_ChN_default]; }DCPDU_RELAY_Para_Reg; typedef struct DC_Output_struct_Reg { uint32_t DC_Vout; //输出电压 uint32_t DC_Iout; //输出电流 uint32_t DC_Pout; //输出功率 }DC_Output_struct_Reg; typedef struct DC_SUM_Para_struct_Reg { uint32_t DC_Vin; //输入直流电压 uint32_t DC_Iin; //总的输入电流 uint32_t DC_Win; //总的输入功率 uint32_t DC_KWhin; //总的输入功率 uint32_t DC_Qin; //功率因数 uint32_t DC_CO2; //二氧化碳排量 uint32_t DC_Tp; //温度 uint32_t DC_Hz; //频率 }DC_SUM_Para_struct_Reg; extern unsigned int All_On_Flag; //继电器全开标志 extern unsigned int All_Off_Flag; //继电器全关标志 extern unsigned int All_On_Flag1; //继电器全开标志 extern unsigned int All_Off_Flag1; //继电器全关标志 extern bool Start_Read_Flag; //开始读取数据标志 //uint32_t DCPDU_Modbus_Reg[DCPDU_Modbus_Reg_len]; /********************************************************************************************************* * 枚举结构体 *********************************************************************************************************/ /********************************************************************************************************* * API函数声明 *********************************************************************************************************/ void Init_Dev_parameter(void); #endif