소스 검색

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

unknown 7 달 전
부모
커밋
d8439082af
8개의 변경된 파일1063개의 추가작업 그리고 1050개의 파일을 삭제
  1. 3 2
      fw/modules/io/analog_input.c
  2. BIN
      output/fw.bin
  3. 366 362
      project/ewarm/iap/iap.dep
  4. 675 676
      project/ewarm/module_universal_io.dep
  5. 1 1
      project/ewarm/module_universal_io.ewp
  6. 18 9
      tools/analog_in.py
  7. BIN
      tools/fw.bin
  8. 0 0
      tools/tester_ai.py

+ 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++)
     {      
         adc_com_data[i] = i + 1;
     }
           
     preset_process(adc_com_data);
-      
+*/      
     
     
-#if 1    
+#if 0    
     printf("end\r\n");
     adc_print_data();
     //adc_print_data_extend();

BIN
output/fw.bin


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 366 - 362
project/ewarm/iap/iap.dep


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 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>PRINTF_STDLIB</state>
                     <state>DEBUG</state>
-                    <state>MDIO_88</state>
+                    <state>MAI_12</state>
                 </option>
                 <option>
                     <name>CCPreprocFile</name>

+ 18 - 9
tools/analog_in.py

@@ -3,11 +3,12 @@ from modbus import Modbus
 from log_reader import AnalogInputLogReader
 import colorama
 from colorama import Fore
-from time import sleep
+from time import sleep, time
 from serial import Serial
 import matplotlib.pyplot as plt 
 import matplotlib.animation as animation 
 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, 
            '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):
         'Фильтрованные данные'
-        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):
@@ -303,7 +310,7 @@ def main():
     # print(ai.sys.get_rtc())     
     
     # 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())
     # ai.set_inputs_state(0b0000_0000_0001)
     # ai.set_inputs_state(0b1111_1111_1111)
@@ -326,9 +333,11 @@ def main():
 
     '''Данные каналов'''
     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.print_raw_inputs()

BIN
tools/fw.bin


+ 0 - 0
tools/tester_ai.py


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.