فهرست منبع

增加拉力值的计算

liuxingchen 1 سال پیش
والد
کامیت
f1a5bb54a2
1فایلهای تغییر یافته به همراه29 افزوده شده و 2 حذف شده
  1. 29 2
      004_H515/jikong/get_laliji_param.py

+ 29 - 2
004_H515/jikong/get_laliji_param.py

@@ -36,7 +36,8 @@ class GetLalijiParam:
                         status = True
 
                 if status:
-                    self.save_param()
+                    param_dict = self.save_param()
+                    self.lalijisuan(real_data_dict, param_dict)
 
                 # format_data = {'c869': '3', 'c870': '6', 'c871': '4', 'c872': '2', 'c873': '1', 'c874': '2'}
                 # format_data = {'c869': 40379.57, 'c870': 38944, 'c871': 38954, 'c872': 38844, 'c873': 38974, 'c874': 38904}
@@ -50,6 +51,32 @@ class GetLalijiParam:
         param_dict = {}
         for each in param_res:
             param_dict[each['serial_number']] = each['value']
-        print("---------------------------------------------------", param_dict)
         self._storage.real_time_data_storage(param_dict)
 
+        return param_dict
+
+
+    def lalijisuan(self, original_dict, param):
+        """计算拉力值,并存入redis中"""
+
+        lali_data = {}
+        serial_dict = {
+            'c795': ["c787", "c789", "c790", "c791"],
+            'c796': ["c788", "c792", "c793", "c794"]
+        }
+
+        for k, v in serial_dict.items():
+            original = int(original_dict[v[0]])  # S485读取的无符号整数
+            a = param[v[1]]  # 参数A
+            b = param[v[2]]  # 参数b
+            f0 = param[v[3]]  # 参数f0
+            if original and original == 0:
+                lali_data[k] = 0
+            elif original and original != 0 and a and b and f0:
+                f = 80000000 / original  # 受力时频率f=80000000/(S485读取的无符号整数)
+                p = a * (f * f - f0 * f0) - b * (f - f0)  # P=A(f²-f0²)-B(f-f0)
+                lali_data[k] = round(p, 2)
+            else:
+                lali_data[k] = None
+
+        self._storage.real_time_data_storage(lali_data)