|
@@ -17,6 +17,11 @@
|
|
|
|
|
|
#if defined (MAI_12)
|
|
|
|
|
|
+#define VOLTAGE_FACTOR 0.182382
|
|
|
+
|
|
|
+#define CURRENT_FACTOR 0.00091191
|
|
|
+
|
|
|
+
|
|
|
//uint16_t ai_state_bit;
|
|
|
|
|
|
uint8_t ai_mux; // выход сдвигового регистра U1010 (управляет MUX 301, 401)
|
|
@@ -32,9 +37,9 @@ uint16_t ai_alarm; // слово аварий входов
|
|
|
uint16_t ai_gain[AI_COMMON_NUMBER]; // массив коэффициентов усиленя (modbus)
|
|
|
|
|
|
uint16_t adc_com_raw_data[AI_COMMON_NUMBER]; // сырые данные
|
|
|
-float adc_com_data[AI_COMMON_NUMBER]; // пересчитанные, фильтрованные данные
|
|
|
+float adc_com_data[AI_COMMON_NUMBER]; // пересчитанные, фильтрованные данные
|
|
|
|
|
|
-uint16_t adc_com_fil_data[AI_COMMON_NUMBER];
|
|
|
+uint16_t adc_com_fil_data[AI_COMMON_NUMBER]; // Фильтрованные данные (только для отладки)
|
|
|
|
|
|
uint16_t adc_add_raw_data[AI_ADD_NUMBER];
|
|
|
|
|
@@ -205,30 +210,30 @@ void ai_processing(void)
|
|
|
adc_com_fil_data[0 + 6] = average_int(&average_filter[0 + 6], adc_com_raw_data[0 + 6]);
|
|
|
#endif
|
|
|
|
|
|
-#if 1
|
|
|
+
|
|
|
// 12 основных каналов
|
|
|
for (uint8_t i = 0; i < AI_COMMON_NUMBER/2; i++)
|
|
|
{
|
|
|
adc_meas_two_channels(&settings.ai[i], &settings.ai[i + 6],
|
|
|
&adc_com_raw_data[i], &adc_com_raw_data[i + 6]);
|
|
|
|
|
|
- // Фильтрация
|
|
|
+ adc_com_data[i] =
|
|
|
+ adc_com_data[i + 6] =
|
|
|
+
|
|
|
+ // Фильтрация. Скользящее среднее. Только для отладки.
|
|
|
adc_com_fil_data[i] = average_int(&average_filter[i], adc_com_raw_data[i]);
|
|
|
adc_com_fil_data[i + 6] = average_int(&average_filter[i + 6], adc_com_raw_data[i + 6]);
|
|
|
}
|
|
|
-#endif
|
|
|
-
|
|
|
-
|
|
|
-#if 1
|
|
|
+
|
|
|
// 4 дополнительных канала
|
|
|
for (uint8_t i = 0; i < AI_ADD_NUMBER/2; i++)
|
|
|
{
|
|
|
adc_meas_two_channels(&settings.ai_add[i], &settings.ai_add[i + 2],
|
|
|
&adc_add_raw_data[i], &adc_add_raw_data[i + 2]);
|
|
|
}
|
|
|
-#endif
|
|
|
|
|
|
-#if 0
|
|
|
+
|
|
|
+#if 1
|
|
|
printf("end\r\n");
|
|
|
adc_print_data();
|
|
|
//adc_print_data_extend();
|
|
@@ -301,23 +306,28 @@ void adc_print_data(void)
|
|
|
printf("\033[2J");
|
|
|
printf("\033[H");
|
|
|
|
|
|
- printf("AN_INP_1: 0x%X, %.3f\r\n", adc_com_raw_data[0], (double)adc_com_raw_data[0]*0.00001785305/0.0961538);
|
|
|
- printf("AN_INP_2: 0x%X, %f\r\n", adc_com_raw_data[1], (double)adc_com_raw_data[1]*0.00001785305/0.0961538);
|
|
|
- printf("AN_INP_3: 0x%X, %f\r\n", adc_com_raw_data[2], (double)adc_com_raw_data[2]*0.00001785305/0.0961538);
|
|
|
- printf("AN_INP_4: 0x%X, %f\r\n", adc_com_raw_data[3], (double)adc_com_raw_data[3]*0.00001785305/0.0961538);
|
|
|
- printf("AN_INP_5: 0x%X, %f\r\n", adc_com_raw_data[4], (double)adc_com_raw_data[4]*0.00001785305/0.0961538);
|
|
|
- printf("AN_INP_6: 0x%X, %f\r\n", adc_com_raw_data[5], (double)adc_com_raw_data[5]*0.00001785305/0.0961538);
|
|
|
- printf("AN_INP_7: 0x%X, %f\r\n", adc_com_raw_data[6], (double)adc_com_raw_data[6]*0.00001785305/0.0961538);
|
|
|
- printf("AN_INP_8: 0x%X, %f\r\n", adc_com_raw_data[7], (double)adc_com_raw_data[7]*0.00001785305/0.0961538);
|
|
|
- printf("AN_INP_9: 0x%X, %f\r\n", adc_com_raw_data[8], (double)adc_com_raw_data[8]*0.00001785305/0.0961538);
|
|
|
- printf("AN_INP_10: 0x%X, %f\r\n",adc_com_raw_data[9], (double)adc_com_raw_data[9]*0.00001785305/0.0961538);
|
|
|
- printf("AN_INP_11: 0x%X, %f\r\n",adc_com_raw_data[10],(double)adc_com_raw_data[10]*0.00001785305/0.0961538);
|
|
|
- printf("AN_INP_12: 0x%X, %f\r\n",adc_com_raw_data[11],(double)adc_com_raw_data[11]*0.00001785305/0.0961538);
|
|
|
|
|
|
- printf("V_ISO_CL: 0x%X, %f\r\n", adc_add_raw_data[0], (double)adc_add_raw_data[0]*0.00001785305/0.0961538);
|
|
|
- printf("V_ISO: 0x%X, %f\r\n", adc_add_raw_data[1], (double)adc_add_raw_data[1]*0.00001785305/0.0961538);
|
|
|
- printf("CRNT_LIM_U_BFR_R: 0x%X, %f\r\n", adc_add_raw_data[2],(double)adc_add_raw_data[2]*0.00001785305/0.0961538);
|
|
|
- printf("CRNT_LIM_U_ABFR_R: 0x%X, %f\r\n",adc_add_raw_data[3],(double)adc_add_raw_data[3]*0.00001785305/0.0961538);
|
|
|
+ printf("AN_INP_1: 0x%X, %.3f\r\n", adc_com_raw_data[0], (double)adc_com_raw_data[0]*VOLTAGE_FACTOR);
|
|
|
+
|
|
|
+#if 0
|
|
|
+ printf("AN_INP_1: 0x%X, %.3f\r\n", adc_com_raw_data[0], (double)adc_com_raw_data[0]*VOLTAGE_FACTOR);
|
|
|
+ printf("AN_INP_2: 0x%X, %f\r\n", adc_com_raw_data[1], (double)adc_com_raw_data[1]*VOLTAGE_FACTOR);
|
|
|
+ printf("AN_INP_3: 0x%X, %f\r\n", adc_com_raw_data[2], (double)adc_com_raw_data[2]*VOLTAGE_FACTOR);
|
|
|
+ printf("AN_INP_4: 0x%X, %f\r\n", adc_com_raw_data[3], (double)adc_com_raw_data[3]*VOLTAGE_FACTOR);
|
|
|
+ printf("AN_INP_5: 0x%X, %f\r\n", adc_com_raw_data[4], (double)adc_com_raw_data[4]*VOLTAGE_FACTOR);
|
|
|
+ printf("AN_INP_6: 0x%X, %f\r\n", adc_com_raw_data[5], (double)adc_com_raw_data[5]*VOLTAGE_FACTOR);
|
|
|
+ printf("AN_INP_7: 0x%X, %f\r\n", adc_com_raw_data[6], (double)adc_com_raw_data[6]*VOLTAGE_FACTOR);
|
|
|
+ printf("AN_INP_8: 0x%X, %f\r\n", adc_com_raw_data[7], (double)adc_com_raw_data[7]*VOLTAGE_FACTOR);
|
|
|
+ printf("AN_INP_9: 0x%X, %f\r\n", adc_com_raw_data[8], (double)adc_com_raw_data[8]*VOLTAGE_FACTOR);
|
|
|
+ printf("AN_INP_10: 0x%X, %f\r\n",adc_com_raw_data[9], (double)adc_com_raw_data[9]*VOLTAGE_FACTOR);
|
|
|
+ printf("AN_INP_11: 0x%X, %f\r\n",adc_com_raw_data[10],(double)adc_com_raw_data[10]*VOLTAGE_FACTOR);
|
|
|
+ printf("AN_INP_12: 0x%X, %f\r\n",adc_com_raw_data[11],(double)adc_com_raw_data[11]*VOLTAGE_FACTOR);
|
|
|
+
|
|
|
+ printf("V_ISO_CL: 0x%X, %f\r\n", adc_add_raw_data[0], (double)adc_add_raw_data[0]*VOLTAGE_FACTOR);
|
|
|
+ printf("V_ISO: 0x%X, %f\r\n", adc_add_raw_data[1], (double)adc_add_raw_data[1]*VOLTAGE_FACTOR);
|
|
|
+ printf("CRNT_LIM_U_BFR_R: 0x%X, %f\r\n", adc_add_raw_data[2],(double)adc_add_raw_data[2]*VOLTAGE_FACTOR);
|
|
|
+ printf("CRNT_LIM_U_ABFR_R: 0x%X, %f\r\n",adc_add_raw_data[3],(double)adc_add_raw_data[3]*VOLTAGE_FACTOR);
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
//
|