Merge branch 'feature/main_ui' of http://www.xj-robot.com:3000/xiongyi/Feeding_control_system into feature/main_ui

This commit is contained in:
2026-01-11 18:20:05 +08:00
108 changed files with 12185 additions and 944 deletions

View File

@ -141,7 +141,31 @@ class IniManager:
def log_path(self):
"""获取日志文件路径"""
return self._read_config_value('app', 'LOG_PATH', 'logs/app.log', str)
@property
def opcua_endpoint(self):
"""获取OPC UA服务器端点"""
return self._read_config_value('app', 'OPCUA_ENDPOINT', 'opc.tcp://192.168.250.64:4840/zjsh_feed/server/', str)
@property
def upper_transmitter_ip(self):
"""获取上料斗变送器IP"""
return self._read_config_value('app', 'UPPER_TRANSMITTER_IP', '192.168.250.63', str)
@property
def upper_transmitter_port(self):
"""获取上料斗变送器端口"""
return self._read_config_value('app', 'UPPER_TRANSMITTER_PORT', 502, int)
@property
def lower_transmitter_ip(self):
"""获取下料斗变送器IP"""
return self._read_config_value('app', 'LOWER_TRANSMITTER_IP', '192.168.250.66', str)
@property
def lower_transmitter_port(self):
"""获取下料斗变送器端口"""
return self._read_config_value('app', 'LOWER_TRANSMITTER_PORT', 8234, int)
ini_manager = IniManager()

View File

@ -5,11 +5,15 @@ class Settings:
def __init__(self):
# 项目根目录
self.project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
self.test_need_weight=2000
# 网络继电器配置
self.relay_host = '192.168.0.18'
self.relay_host = '192.168.250.62'
self.relay_port = 50000
self.debug_feeding=False
#调试模式上,网络继点器禁用,模型推理启用
self.debug_mode=False
# 摄像头配置
self.camera_type = "ip"
self.camera_ip = "192.168.1.51"
@ -18,17 +22,37 @@ class Settings:
self.camera_password = "XJ123456"
self.camera_channel = 1
self.camera_configs = {
# 'cam1': {
# 'type': 'ip',
# 'ip': '192.168.250.60',
# 'port': 554,
# 'username': 'admin',
# 'password': 'XJ123456',
# 'channel': 1
# },
'cam2': {
'type': 'ip',
'ip': '192.168.250.61',
'port': 554,
'username': 'admin',
'password': 'XJ123456',
'channel': 1
}
}
# 下料控制参数
self.min_required_weight = 500 # 模具车最小需要重量(kg)
self.target_vehicle_weight = 5000 # 目标模具车重量(kg)
self.upper_buffer_weight = 500 # 上料斗缓冲重量(kg)
self.single_batch_weight = 2500 # 单次下料重量(kg)
# 角度控制参数
self.target_angle = 20.0 # 目标角度
self.target_angle = 30.0 # 目标角度
self.min_angle = 10.0 # 最小角度
self.max_angle = 80.0 # 最大角度
self.angle_threshold = 60.0 # 角度阈值
self.angle_threshold = 50.0 # 角度阈值
self.angle_tolerance = 5.0 # 角度容差
# 变频器配置
@ -36,19 +60,19 @@ class Settings:
self.frequencies = [220.0, 230.0, 240.0] # 下料阶段频率Hz
# 模型路径配置
self.models_dir = os.path.join(self.project_root, 'vision', 'models')
self.angle_model_path = os.path.join(self.models_dir, 'angle.pt')
self.overflow_model_path = os.path.join(self.models_dir, 'overflow.pt')
self.alignment_model_path = os.path.join(self.models_dir, 'alig.pt')
self.models_dir = os.path.join(self.project_root, 'vision')
self.angle_model_path = os.path.join(self.models_dir, 'obb_angle_model', 'obb.rknn')
self.overflow_model_path = os.path.join(self.models_dir,'overflow_model', 'yiliao_cls.rknn')
# self.alignment_model_path = os.path.join(self.models_dir, 'align_model', 'yolov11_cls_640v6.rknn')
# ROI路径配置
self.roi_file_path = os.path.join(self.project_root, 'vision', 'roi_coordinates', '1_rois.txt')
self.roi_file_path = os.path.join(self.models_dir, 'overflow_model', 'roi_coordinates', '1_rois.txt')
# 系统控制参数
self.visual_check_interval = 1.0 # 视觉检查间隔(秒)
self.alignment_check_interval = 0.5 # 对齐检查间隔(秒)
self.max_error_count = 3 # 最大错误计数
self.lower_feeding_interval = 1.0 # 下料轮询间隔(秒)
self.lower_feeding_interval = 0.1 # 下料轮询间隔(秒)
# RFID配置
self.rfid_host = '192.168.1.190'
@ -60,6 +84,11 @@ class Settings:
# self.block_numbers=['B1','B2','B3','L1','L2','F']
#需核实上下位漏斗容量
self.max_upper_volume = 2.4 # 上料斗容量(方)
self.max_lower_volume = 2.4 # 下料斗容量(方)
#下料到下料斗最大下到多少,并非最大容量
self.max_lower_volume = 2.2 # 下料斗容量(方)
#led
self.led_interval = 2 # LED闪烁间隔(秒)
app_set_config = Settings()