forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

周巍
2024-04-11 91ef77c00ed797b1048c5187f416e351e646a009
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
/**
  ******************************************************************************
  * @file    regmap.h
  * @author  AndyChen
  * @version V1.0
  * @date    2015-xx-xx
  * @brief   Modbus register address map
  ******************************************************************************
  * @attention
  *  
  ******************************************************************************
  */ 
 
/* Define to prevent recursive inclusion --------------------------------------*/
 
#ifndef __REGMAP_H
 
#define __REGMAP_H
 
/* Includes -------------------------------------------------------------------*/
 
#include <stm32f10x.h>
 
/* Exported_Macros ------------------------------------------------------------*/
 
typedef uint16_t uint16;
typedef uint32_t uint32;
 
/* Exported_Types -------------------------------------------------------------*/
 
//2 byte aligned
#pragma pack(2)
 
/*-------------------------------É豸ÐòÁкÅ------------------------------------*/
 
 
/*-------------------------------Á÷Á¿¼Æ¼ÆÁ¿ÐÅÏ¢------------------------------------*/
 
 
 
/*²úÆ·ÐÅÏ¢*/
typedef    struct
{                                            
    u16        serial_number[5];                              /* 51       r */
    u16      caliber_model;                        /* 56       r */
    u16      xinao_serial_number[14];              /* 57       r */
    u16      main_soft_serial_number[2];    /* 71       r */
    u16      main_hard_serial_number[3];    /* 73       r */
    
} MODBUS_DEVICE_INFO_T;
 
 
 
 
/*ʵʱÊý¾Ý*/
typedef    struct
{                                            
    u8        time[6];                  /* 501      64bit integer     r */
    u32            workConTotalFlowzs;                /* 504                  r */
    u16            workConTotalFlowxs;
 
    u32            stdConTotalFlowzs;                /* 507                 r */
    u16            stdConTotalFlowxs;
 
    float        workConInstantFlow;                /* 510                 r */
    float        stdConInstantFlow;                /* 512                 r */
        
    float   temperatureValue;                    /* 514                 r */    
    float   pressureValue;                        /* 516                 r */
 
    u32            workErrTotalFlowzs;                /* 518                  r */
    u16            workErrTotalFlowxs;
    
    u32            stdErrTotalFlowzs;                /* 521                  r */
    u16            stdErrTotalFlowxs;
    
    u32            reverseWorkConTotalFlowzs;                /* 524                  r */
    u16            reverseWorkConTotalFlowxs;
 
    u32            reverseStdConTotalFlowzs;                    /* 527                 r */
    u16            reverseStdConTotalFlowxs;
    
    u32            reverseWorkErrTotalFlowzs;                /* 530                  r */
    u16            reverseWorkErrTotalFlowxs;
    
    u32            reverseStdErrTotalFlowzs;                    /* 533                  r */
    u16            reverseStdErrTotalFlowxs;
    
    double        calibration_work_cumulative_flow;                    /* 536                  r */       // ¼ì¶¨¹¤¿öÀÛ»ýÁ¿
    double        calibration_standard_cumulative_flow;                /* 540                  r */       // ¼ì¶¨±ê¿öÀÛ»ýÁ¿
    
    
    u16      statusWords[6];                              /* 544                  r */
    
    float   C_coe; //CϵÊý                                  /* 550                  r */
    float   K_coe; //KϵÊý                                  /* 552                  r */
    
    float        gas_get_factor;     //ѹËõÒò×Ó                  /* 554                  r */  
    
    
    float                up_sound_timea;  //ÉÏÉùµÀʱ¼ä             /* 556                  r */ 
    float             up_sound_timeb;  //ÉÏÉùµÀʱ¼ä              /* 558                  r */ 
    float                down_sound_timea;//ÏÂÉùµÀʱ¼ä              /* 560                  r */ 
    float             down_sound_timeb;//ÏÂÉùµÀʱ¼ä              /* 562                  r */ 
    float                mid_sound_timea; //ÖÐÉùµÀʱ¼ä               /* 564                  r */ 
    float                mid_sound_timeb; //ÖÐÉùµÀʱ¼ä                  /* 566                  r */ 
    
    float                up_sound_time_difference;    //ÉÏÉùµÀʱ¼ä²î     /* 568                  r */ 
    float                down_sound_time_difference;  //ÏÂÉùµÀʱ¼ä²î   /* 570                  r */ 
    float                mid_sound_time_difference;   //ÖÐÉùµÀʱ¼ä²î         /* 572                  r */ 
    
    u16                    upstre;      //ÉÏÉùµÀÐźÅÇ¿¶È                                         /* 574                  r */ 
    u16                    downstre;    //ÏÂÉùµÀÐźÅÇ¿¶È                                     /* 575                  r */ 
    u16                    midstre;     //ÖÐÉùµÀÐźÅÇ¿¶È                                      /* 576                  r */ 
 
    u16                    upgain;      //ÉÏÉùµÀÔöÒæ                                                         /* 577                  r */ 
    u16                    downgain;    //ÏÂÉùµÀÔöÒæ                                                         /* 578                  r */ 
    u16                    midgain;     //ÖÐÉùµÀÔöÒæ                                                         /* 579                  r */ 
 
    u16                    upsnra;       //ÉÏÉùµÀÔëÉù                                                              /* 580                  r */ 
    u16                    upsnrb;       //ÉÏÉùµÀÔëÉù                                                          /* 581                  r */ 
    u16                    downsnra;     //ÏÂÉùµÀÔëÉù                                                          /* 582                  r */ 
    u16                    downsnrb;     //ÏÂÉùµÀÔëÉù                                                          /* 583                  r */     
    u16                    midsnra;      //ÖÐÉùµÀÔëÉù                                                          /* 584                  r */         
    u16                    midsnrb;      //ÖÐÉùµÀÔëÉù                                                            /* 585                  r */     
    
    float                up_vec;       //ÉÏÉùµÀÉùËÙ                                                                 /* 586                  r */ 
    float                down_vec;     //ÏÂÉùµÀÉùËÙ                                                             /* 588                  r */ 
    float                mid_vec;      //ÖÐÉùµÀÉùËÙ                                                             /* 590                  r */ 
 
    float                up_working_instantaneous_flow;  //ÉÏÉùµÀÁ÷ËÙ                         /* 592                  r */ 
    float                down_working_instantaneous_flow;//ÏÂÉùµÀÁ÷ËÙ                         /* 594                  r */ 
    float                mid_working_instantaneous_flow; //ÖÐÉùµÀÁ÷ËÙ                             /* 596                  r */ 
    
    float           synthetic_sound_velocity;  //ºÏ³ÉÉùËÙ¡£                                         /* 598                  r */         
    float           synthetic_flow_velocity;   //ºÏ³ÉÁ÷ËÙ¡£                                         /* 600                  r */ 
    
    float    ambient_temperature;  //»·¾³Î¶Ƞ                                                                /* 602                  r */ 
    
    u16      meter_bat_voltage; //¼ÆÁ¿µç³Øµçѹ                                                             /* 604                  r */         
    u16      meter_bat_percent; //¼ÆÁ¿µç³ØµçѹʣÓà°Ù·Ö±È                                             /* 605                  r */ 
    
    u16      com_bat_voltage;//ͨÐÅµç³Øµçѹ                                                                    /* 606                  r */ 
    u16      com_bat_percent;//ͨÐÅµç³ØµçѹʣÓà°Ù·Ö±È                                                /* 607                  r */             
    
    double   residual_quantity; //Ê£ÓàÁ¿                                                                         /* 608                  r */ 
    u32      current_unit_price;//µ±Ç°µ¥¼Û                                                                     /* 612                  r */ 
    
    u16      newstatusWords[6];                              /* 614                  r */
 
} MODBUS_REALTIME_DATA_T;
 
 
 
/*ÌṩÍⲿDTUµÄЭÒé*/
typedef struct                                //14¸öµØÖ·
{                                                            /* Register        Type           R/W */
    u16         serialnum[14];                /* 2001        32bit float         r/w */
    u16         device_status;                /* 2015 */
    double standard_error_accumul; /* 2016 */
    double work_error_accumul;        /*2020*/
    float     K_coef;                                    /*2024*/
    u8         flowmeterTime[6];            /*2026*/
    float     soundVec;                           /*2029*/
    
} flowMeterxinaoSerialnum_t;
 
 
 
/*ÌṩÍⲿDTUµÄЭÒé²ÎÊý*/
typedef struct                                //14¸öµØÖ·
{                                                            /* Register        Type           R/W */
    u32            workConTotalFlowzs;                /* 3501                 r/w */
    u16            workConTotalFlowxs;
 
    u32            stdConTotalFlowzs;                /* 3504                 r/w */
    u16            stdConTotalFlowxs;
 
    float        workConInstantFlow;            /* 3507             r/w */
    float        stdConInstantFlow;            /* 3509                 r/w */
        
    float   temperatureValue;            /* 3511                 r/w */    
    float   pressureValue;                /* 3513                 r/w */
 
    u32            reverseWorkConTotalFlowzs;                /* 3515                 r/w */
    u16            reverseWorkConTotalFlowxs;
 
    u32            reverseStdConTotalFlowzs;                /* 3518                 r/w */
    u16            reverseStdConTotalFlowxs;
    
//    u32            RestartsystemFlow;
    
} flowMeterDTUout_t;
 
 
 
 
 
 
#pragma pack()
 
/* Exported_Functions ---------------------------------------------------------*/
 
 
#endif
/******************* (C) COPYRIGHT 2015 AndyChen *******END OF FILE*************/