Prechádzať zdrojové kódy

金家渠支架压力新增

q 1 rok pred
rodič
commit
165a93a13a
2 zmenil súbory, kde vykonal 73 pridanie a 2 odobranie
  1. 2 2
      jjq_support_1.py
  2. 71 0
      jinjiaqu/jjq_support_2.py

+ 2 - 2
jjq_support_1.py

@@ -42,7 +42,7 @@ async def connect_and_read_opcua_data():
                     result_arr["sys_point"]["support"].append(res)
                 finally:
                     continue
-            now = datetime.now().strftime('Start_time:%Y-%m-%d %H:%M:%S.%f')
+            now = datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
             result_arr["data_time"] = now
             json_data = json.dumps(result_arr, indent=4)
             return json_data
@@ -67,5 +67,5 @@ if __name__ == '__main__':
     result = loop.run_until_complete(connect_and_read_opcua_data())
 
     redis_conn = redis.StrictRedis(host=redis_ip, port=6379, decode_responses=True)
-    redis_conn.set("jinjiaqu_support_1", result)
+    redis_conn.set("jinjiaqu_support", result)
 

+ 71 - 0
jinjiaqu/jjq_support_2.py

@@ -0,0 +1,71 @@
+#!/usr/bin/env python3
+import json
+import redis
+import asyncio
+import tracemalloc
+
+from asyncua import Client
+from datetime import datetime
+
+opc_server_url = "opc.tcp://10.71.190.71:8098/TM.LongWallMind.OPCUAServer5.x"  # OPC UA服务器的URL
+redis_ip = '127.0.0.1'
+tracemalloc.start()
+# OPC.电液控.支架集.052.立柱压力.后柱压力
+point_arr = [f"OPC.电液控.支架集.{num:03d}.立柱压力.后柱压力" for num in range(1, 138)]
+
+
+async def connect_and_read_opcua_data():
+    ns = 2
+    result_arr = {
+        "sys_id": "support_2",
+        "sys_name": "工作面支架压力",
+        "data_time": "",
+        "sys_point": {
+            "support": []
+        }
+    }
+    try:
+        async with Client(url=opc_server_url, timeout=1) as client:
+            await client.connect()
+            for i in range(len(point_arr)):
+                try:
+                    data = point_arr[i]
+                    node = f"ns={ns};s={data}"
+                    tag = client.get_node(node)
+                    value = await tag.read_value()
+                    res = {
+                        "key": data,
+                        "name": f"{i}号立柱压力",
+                        "unit": "Mpa",
+                        "val": value
+                    }
+                    result_arr["sys_point"]["support"].append(res)
+                finally:
+                    continue
+            now = datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
+            result_arr["data_time"] = now
+            json_data = json.dumps(result_arr, indent=4)
+            return json_data
+    except TimeoutError:
+        msg = "连接超时,请检查网络、服务器状态和连接参数。"
+        error = {
+            "code": -1,
+            "msg": msg
+        }
+        return error
+    except Exception as e:
+        msg = f"发生其他错误: {e}"
+        error = {
+            "code": -2,
+            "msg": msg
+        }
+        return error
+
+
+if __name__ == '__main__':
+    loop = asyncio.get_event_loop()
+    result = loop.run_until_complete(connect_and_read_opcua_data())
+
+    redis_conn = redis.StrictRedis(host=redis_ip, port=6379, decode_responses=True)
+    redis_conn.set("jinjiaqu_support_2", result)
+