将TCP修改为OPC

This commit is contained in:
xiongyi
2025-11-18 11:23:03 +08:00
parent b40bc9e067
commit 67cce2411e
4 changed files with 23 additions and 94 deletions

19
main.py
View File

@ -8,7 +8,7 @@ from services.monitoring_service import MonitoringService
from database.access_db import AccessDB
from database.sql_server import SQLServerDB
from tcp.server import TCPServer
from tcp.client import TCPClient
from opc.client import OPCClient
from config.settings import (
ACCESS_DB_PATH, ACCESS_DB_PASSWORD,
TCP_HOST, TCP_PORT, TCP_CLIENT_HOST, TCP_CLIENT_PORT,
@ -16,6 +16,10 @@ from config.settings import (
)
from utils.helpers import cleanup_old_timestamps
# 假设同事提供的函数
def save_to_custom_table(misid, flag, task_id, produce_mix_id, project_name, beton_grade, adjusted_volume, artifact_id):
"""保存到自定义数据表的函数"""
print(f"保存到自定义数据表: MISID={misid}, Flag={flag}, TaskID={task_id}, 调整后方量={adjusted_volume}")
def start_api_service():
"""启动配比重量API服务"""
@ -34,8 +38,8 @@ def main():
tcp_server_thread.daemon = True
tcp_server_thread.start()
# 初始化发送数据的TCP客户端
data_client = TCPClient(host=TCP_CLIENT_HOST, port=TCP_CLIENT_PORT)
# 初始化发送数据的OPC客户端
data_client = OPCClient(url=f'opc.tcp://{TCP_CLIENT_HOST}:{TCP_CLIENT_PORT}')
data_client.start()
# 等待服务端启动
@ -121,14 +125,14 @@ def main():
if task["block_number"] == "补方":
print(f"任务 {task['artifact_id']} 的 block_number 为 '补方',跳过派单")
task_service.insert_into_produce_table(sql_db, task_info, task["beton_volume"], erp_id,
task["artifact_id"], 0)
task["artifact_id"], half_volume, 0)
continue
print(f"处理新任务: {task['artifact_id']}")
# 步骤3获取任务单信息
# 获取任务单信息
task_service.insert_into_produce_table(sql_db, task_info, task["beton_volume"], erp_id,
task["artifact_id"], 1)
task["artifact_id"], half_volume, 1)
with monitoring_service.tasks_lock:
monitoring_service.monitored_tasks.add(erp_id)
monitoring_service.inserted_tasks[erp_id] = task["artifact_id"]
@ -148,7 +152,6 @@ def main():
except Exception as e:
print(f"发生错误: {e}")
# 继续循环,避免程序退出
time.sleep(2)
except KeyboardInterrupt:
@ -156,7 +159,7 @@ def main():
# 停止TCP服务端
if 'tcp_server' in locals():
tcp_server.stop()
# 停止TCP客户端
# 停止OPC客户端
if 'data_client' in locals():
data_client.stop()