-
Notifications
You must be signed in to change notification settings - Fork 3
/
fronius-modbus.h
161 lines (156 loc) · 3.03 KB
/
fronius-modbus.h
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
#define INVERTER_OFFSET 40070
#define METER_OFFSET 40070
#define SFF(x, y) (y == 0 ? x : x * pow(10.0, y))
#define SFI(x, y) (y == 0 ? x : (int)(x * pow(10, y)))
// generated from misc/sunspec-struct-template.ods
typedef struct sunspec_inverter_t {
uint16_t ID;
uint16_t L;
uint16_t A;
uint16_t AphA;
uint16_t AphB;
uint16_t AphC;
int16_t A_SF;
uint16_t PPVphAB;
uint16_t PPVphBC;
uint16_t PPVphCA;
uint16_t PhVphA;
uint16_t PhVphB;
uint16_t PhVphC;
int16_t V_SF;
int16_t W;
int16_t W_SF;
uint16_t Hz;
int16_t Hz_SF;
int16_t VA;
int16_t VA_SF;
int16_t VAr;
int16_t VAr_SF;
int16_t PF;
int16_t PF_SF;
uint32_t WH;
int16_t WH_SF;
uint16_t DCA;
int16_t DCA_SF;
uint16_t DCV;
int16_t DCV_SF;
int16_t DCW;
int16_t DCW_SF;
int16_t TmpCab;
int16_t TmpSnk;
int16_t TmpTrns;
int16_t TmpOt;
int16_t Tmp_SF;
uint16_t St;
uint16_t StVnd;
uint32_t Evt1;
uint32_t Evt2;
uint32_t EvtVnd1;
uint32_t EvtVnd2;
uint32_t EvtVnd3;
uint32_t EvtVnd4;
} sunspec_inverter_t;
typedef struct sunspec_meter_t {
uint16_t ID;
uint16_t L;
int16_t A;
int16_t AphA;
int16_t AphB;
int16_t AphC;
int16_t A_SF;
int16_t PhV;
int16_t PhVphA;
int16_t PhVphB;
int16_t PhVphC;
int16_t PPV;
int16_t PPVphAB;
int16_t PPVphBC;
int16_t PPVphCA;
int16_t V_SF;
int16_t Hz;
int16_t Hz_SF;
int16_t W;
int16_t WphA;
int16_t WphB;
int16_t WphC;
int16_t W_SF;
int16_t VA;
int16_t VAphA;
int16_t VAphB;
int16_t VAphC;
int16_t VA_SF;
int16_t VAR;
int16_t VARphA;
int16_t VARphB;
int16_t VARphC;
int16_t VAR_SF;
int16_t PF;
int16_t PFphA;
int16_t PFphB;
int16_t PFphC;
int16_t PF_SF;
uint32_t TotWhExp;
uint32_t TotWhExpPhA;
uint32_t TotWhExpPhB;
uint32_t TotWhExpPhC;
uint32_t TotWhImp;
uint32_t TotWhImpPhA;
uint32_t TotWhImpPhB;
uint32_t TotWhImpPhC;
int16_t TotWh_SF;
uint32_t TotVAhExp;
uint32_t TotVAhExpPhA;
uint32_t TotVAhExpPhB;
uint32_t TotVAhExpPhC;
uint32_t TotVAhImp;
uint32_t TotVAhImpPhA;
uint32_t TotVAhImpPhB;
uint32_t TotVAhImpPhC;
int16_t TotVAh_SF;
uint32_t TotVArhImpQ1;
uint32_t TotVArhImpQ1phA;
uint32_t TotVArhImpQ1phB;
uint32_t TotVArhImpQ1phC;
uint32_t TotVArhImpQ2;
uint32_t TotVArhImpQ2phA;
uint32_t TotVArhImpQ2phB;
uint32_t TotVArhImpQ2phC;
uint32_t TotVArhExpQ3;
uint32_t TotVArhExpQ3phA;
uint32_t TotVArhExpQ3phB;
uint32_t TotVArhExpQ3phC;
uint32_t TotVArhExpQ4;
uint32_t TotVArhExpQ4phA;
uint32_t TotVArhExpQ4phB;
uint32_t TotVArhExpQ4phC;
int16_t TotVArh_SF;
uint32_t Evt;
} sunspec_meter_t;
typedef struct sunspec_storage_t {
uint16_t ID;
uint16_t L;
uint16_t WchaMax;
uint16_t WchaGra;
uint16_t WdisChaGra;
uint16_t StorCtl_Mod;
uint16_t VAChaMax;
uint16_t MinRsvPct;
uint16_t ChaState;
uint16_t StorAval;
uint16_t InBatV;
uint16_t ChaSt;
int16_t OutWRte;
int16_t InWRte;
uint16_t InOutWRte_WinTms;
uint16_t InOutWRte_RvrtTms;
uint16_t InOutWRte_RmpTms;
uint16_t ChaGriSet;
int16_t WchaMax_SF;
int16_t WchaDisChaGra_SF;
int16_t VAChaMax_SF;
int16_t MinRsvPct_SF;
int16_t ChaState_SF;
int16_t StorAval_SF;
int16_t InBatV_SF;
int16_t InOutWRte_SF;
} sunspec_storage_t;