Browse Source

Баг в modbus, скрипты.

unknown 7 months ago
parent
commit
d8439082af

+ 3 - 2
fw/modules/io/analog_input.c

@@ -248,16 +248,17 @@ void ai_processing(void)
     }
     }
     
     
     // Работа с уставками
     // Работа с уставками
+/*    
     for (int i = 0; i < AI_COMMON_NUMBER; i++)
     for (int i = 0; i < AI_COMMON_NUMBER; i++)
     {      
     {      
         adc_com_data[i] = i + 1;
         adc_com_data[i] = i + 1;
     }
     }
           
           
     preset_process(adc_com_data);
     preset_process(adc_com_data);
-      
+*/      
     
     
     
     
-#if 1    
+#if 0    
     printf("end\r\n");
     printf("end\r\n");
     adc_print_data();
     adc_print_data();
     //adc_print_data_extend();
     //adc_print_data_extend();

BIN
output/fw.bin


File diff suppressed because it is too large
+ 366 - 362
project/ewarm/iap/iap.dep


File diff suppressed because it is too large
+ 675 - 676
project/ewarm/module_universal_io.dep


+ 1 - 1
project/ewarm/module_universal_io.ewp

@@ -225,7 +225,7 @@
                     <state>AT_START_F403A_V1</state>
                     <state>AT_START_F403A_V1</state>
                     <state>PRINTF_STDLIB</state>
                     <state>PRINTF_STDLIB</state>
                     <state>DEBUG</state>
                     <state>DEBUG</state>
-                    <state>MDIO_88</state>
+                    <state>MAI_12</state>
                 </option>
                 </option>
                 <option>
                 <option>
                     <name>CCPreprocFile</name>
                     <name>CCPreprocFile</name>

+ 18 - 9
tools/analog_in.py

@@ -3,11 +3,12 @@ from modbus import Modbus
 from log_reader import AnalogInputLogReader
 from log_reader import AnalogInputLogReader
 import colorama
 import colorama
 from colorama import Fore
 from colorama import Fore
-from time import sleep
+from time import sleep, time
 from serial import Serial
 from serial import Serial
 import matplotlib.pyplot as plt 
 import matplotlib.pyplot as plt 
 import matplotlib.animation as animation 
 import matplotlib.animation as animation 
 from mb_registers import SysReg, AiReg
 from mb_registers import SysReg, AiReg
+import struct
 
 
 ai_name = {'AIN_1': 0, 'AIN_2': 1, 'AIN_3': 2, 'AIN_4': 3, 'AIN_5': 4, 
 ai_name = {'AIN_1': 0, 'AIN_2': 1, 'AIN_3': 2, 'AIN_4': 3, 'AIN_5': 4, 
            'AIN_6': 5, 'AIN_7': 6, 'AIN_8': 7, 'AIN_9': 8, 'AIN_10': 9, 
            'AIN_6': 5, 'AIN_7': 6, 'AIN_8': 7, 'AIN_9': 8, 'AIN_10': 9, 
@@ -91,10 +92,16 @@ class IO_AnalogInput(IO_Module):
 
 
     def get_fil_inputs(self):
     def get_fil_inputs(self):
         'Фильтрованные данные'
         'Фильтрованные данные'
-        data = []
-        for i in range(12):
-            data.append(self.modbus.read_float_holding(AiReg.IN_FILTER.value + i*2))
-        return data
+        start_time = time()
+        data = self.modbus.read_holding_registers_raw(AiReg.IN_FILTER.value, 24)
+        return struct.unpack('>ffffffffffff', data)
+        # print(f'Request time: {time() - start_time}')
+        # return struct.unpack('>f', self.read_holding_registers_raw(address, 2))[0]
+
+        # data = []
+        # for i in range(12):
+        #     data.append(self.modbus.read_float_holding(AiReg.IN_FILTER.value + i*2))
+        # return data
 
 
 
 
     def get_presets_state(self):
     def get_presets_state(self):
@@ -303,7 +310,7 @@ def main():
     # print(ai.sys.get_rtc())     
     # print(ai.sys.get_rtc())     
     
     
     # print(ai.get_inputs_state())
     # print(ai.get_inputs_state())
-    ai.set_inputs_state(0b1111_1111_1111)
+    # ai.set_inputs_state(0b1111_1111_1111)
     # print(ai.sys.get_module_state())
     # print(ai.sys.get_module_state())
     # ai.set_inputs_state(0b0000_0000_0001)
     # ai.set_inputs_state(0b0000_0000_0001)
     # ai.set_inputs_state(0b1111_1111_1111)
     # ai.set_inputs_state(0b1111_1111_1111)
@@ -326,9 +333,11 @@ def main():
 
 
     '''Данные каналов'''
     '''Данные каналов'''
     while True:
     while True:
-        ai.print_raw_inputs()
-        ai.print_filtered_inputs()
-        sleep(1)
+        # ai.get_raw_inputs()
+        ai.get_fil_inputs()
+        # ai.print_raw_inputs()
+        # ai.print_filtered_inputs()
+        sleep(0.1)
 
 
     # ai.get_raw_inputs()
     # ai.get_raw_inputs()
     # ai.print_raw_inputs()
     # ai.print_raw_inputs()

BIN
tools/fw.bin


+ 0 - 0
tools/tester_ai.py


Some files were not shown because too many files changed in this diff