python的工业过程控制场景模拟第一百一十三篇:开发储罐联锁逻辑仿真,液位超高关闭进料阀,液位过低关闭出料泵。
储罐联锁逻辑仿真 —— 液位超高/过低安全保护系统那年半夜A3罐液位计突然卡死在60%实际液位悄悄爬到98%进料阀还开着。幸亏SIS系统的联锁在99%硬切断否则就是一场漫溢事故。那一刻我才明白安全联锁不是万一的保险而是必须的底线。—— 哈尔滨工程大学《工业过程控制》课程核心思想延伸一、实际应用场景描述在石化仓储、液化气站、精细化工等场景储罐液位失控是最致命的安全隐患之一┌──────────────────────────────────────────────┐│ 储罐联锁保护系统SIS ││ ││ ┌────────────────────────────┐ ││ │ 液位变送器 (LT) │ ││ │ • 雷达/伺服/差压式 │ ││ │ • 4-20mA 输出 │ ││ │ • 两选一/三选二 冗余 │ ││ └────────────┬───────────────┘ ││ │ PV (0~100%) ││ ▼ ││ ┌────────────────────────────┐ ││ │ 联锁逻辑处理器 (SIS) │ ││ │ │ ││ │ ┌───────────────────┐ │ ││ │ │ 超高联锁 (HH) │ │ ││ │ │ if PV ≥ 95%: │ │ ││ │ │ CLOSE FV-101 │ │ ││ │ │ ALARM HIHI │ │ ││ │ └───────────────────┘ │ ││ │ │ ││ │ ┌───────────────────┐ │ ││ │ │ 高低联锁 (LL) │ │ ││ │ │ if PV ≤ 10%: │ │ ││ │ │ STOP P-201 │ │ ││ │ │ ALARM LOLO │ │ ││ │ └───────────────────┘ │ ││ │ │ ││ │ ┌───────────────────┐ │ ││ │ │ 中间报警 (H/L) │ │ ││ │ │ 80% 预警, 20% 预警 │ │ ││ │ └───────────────────┘ │ ││ │ │ ││ │ • 表决逻辑 (2oo3) │ │ ││ │ • 去抖动/死区 │ │ ││ │ • 联锁旁路管理 │ │ ││ └────────────┬───────────────┘ ││ │ DO信号 ││ ▼ ││ ┌────────────────────────────┐ ││ │ 执行机构 │ ││ │ • FV-101 进料调节阀 │ ││ │ • P-201 出料泵 (MCC) │ ││ │ • XV-301 紧急切断阀 │ ││ └───────────────────────────┘ ││ ││ 核心: 独立保护层 表决冗余 失效安全 全行程测试 │└──────────────────────────────────────────────┘DCS 逻辑 vs SIS 独立联锁维度 DCS 软逻辑 SIS 独立联锁独立性 ❌ 与控制系统共用硬件 ✅ 独立硬件独立电源可靠性 ❌ MTBF 较低 ✅ SIL2/3 认证响应时间 ❌ 扫描周期 100ms ✅ ≤50ms 硬切断旁路管理 ❌ 容易误操作 ✅ 钥匙锁审计追踪测试验证 ❌ 无系统测试 ✅ 定期全行程测试故障模式 ❌ 可能输出危险值 ✅ Fail-Safe 设计二、引入痛点2.1 现场的真实困境场景 现场发生了什么 根因漫溢事故 A3罐满了阀还开着喷出原料 液位计卡死无独立联锁抽空事故 泵空转2小时机封烧毁 低液位未联锁停泵假液位 变送器故障显示60%实际98% 单点测量无冗余表决联锁旁路 检修后忘恢复联锁一直旁路 旁路管理不规范DCS死机 操作站蓝屏阀门全失控 控制与联锁未分离2.2 核心矛盾安全联锁的本质不是让生产更顺畅而是在一切失控时保证不伤人、不毁设备、不污染环境。DCS 是优化生产的工具SIS 是保命的底线——两者必须物理隔离、逻辑独立、各司其职。2.3 我们要解决什么用一段精简的 Python 程序构建一个 储罐联锁逻辑仿真系统实现1. 多级液位报警 —— LO/LOLO/HI/HIHI 四段式2. 双向联锁 —— 超高关进料阀过低停出料泵3. 冗余表决 —— 2oo3 三取二逻辑4. 失效安全 —— 信号丢失→安全侧动作5. 旁路管理 —— 受控旁路超时自动恢复6. 事件记录 —— 完整审计追踪三、核心逻辑讲解3.1 理论基础安全仪表系统SIS本工具基于哈工程《工业过程控制》第十四章安全仪表系统和第十五章系统可靠性① 保护层概念Layers of Protection┌─────────────────────────────────────┐│ 第1层: 工艺设计余量安全系数 │├─────────────────────────────────────┤│ 第2层: 基本过程控制系统BPCS/DCS │├─────────────────────────────────────┤│ 第3层: 安全仪表系统SIS⭐本工具 │├─────────────────────────────────────┤│ 第4层: 物理保护安全阀/爆破片 │├─────────────────────────────────────┤│ 第5层: 厂区应急围堰/消防 │└─────────────────────────────────────┘② 表决逻辑Voting Logic1oo1: 单点最不可靠2oo2: 两点中有任一点触发即动作高可用低安全性2oo3: 三取二兼顾可用性与安全性⭐推荐1oo2: 两点都触发才动作低可用高安全性③ SIL 等级与 PFDSIL等级 PFD范围 要求SIL1 10⁻² ~ 10⁻¹ 基本联锁SIL2 10⁻³ ~ 10⁻² 中等风险SIL3 10⁻⁴ ~ 10⁻³ 高风险SIL4 10⁻⁵ ~ 10⁻⁴ 极高风险核/航天④ 失效安全Fail-Safe原则信号丢失 → 阀门关闭弹簧复位电源丢失 → 泵停止运转通信中断 → 保持安全状态CPU故障 → 看门狗触发安全输出3.2 联锁逻辑架构┌─────────────┐│ 3个液位变送器 ││ LT-101A/B/C │└──────┬──────┘│ 4-20mA × 3┌─────────▼─────────┐│ 信号调理 合理性检查 ││ • 量程转换 ││ • 偏差检测(5%报警) ││ • 信号丢失检测 │└─────────┬─────────┘│ PV_A, PV_B, PV_C┌─────────▼─────────┐│ 2oo3 表决逻辑 ││ 多数表决 → PV_valid ││ 全故障 → 安全侧 │└─────────┬─────────┘│ PV_effective┌─────────▼─────────┐│ 联锁逻辑判断 ││ ┌─────────────┐ ││ │ PV≥95% → HH │ ││ │ PV≥80% → HI │ ││ │ PV≤20% → LO │ ││ │ PV≤10% → LL │ ││ └─────────────┘ ││ 旁路状态检查 ││ 去抖动延时 │└─────────┬─────────┘│ 联锁动作指令┌─────────▼─────────┐│ 输出处理 ││ • 超高→关进料阀 ││ • 过低→停出料泵 ││ • 双通道冗余输出 │└───────────────────┘四、代码讲解面向对象设计4.1 类结构总览类名 职责 设计模式TankConfig 储罐配置dataclass 值对象InterlockLevels 联锁阈值dataclass 值对象AnalogSignal 模拟量信号含故障注入 策略模式LevelTransmitter 液位变送器含冗余 装饰器模式VotingLogic 表决逻辑2oo3/1oo2 策略模式InterlockLogic 联锁逻辑处理器 模板方法FinalElement 最终执行元件 状态模式BypassManager 旁路管理器 单例模式EventLogger 事件记录器 观察者模式TankSIS SIS 聚合根 聚合根TankSimulator 储罐过程模型 领域模型SISVisualizer 可视化工具 封装4.2 核心代码完整可运行完整源码约 400 行包含 12 个类、2oo3 表决、多级联锁、旁路管理、事件记录。以下为精简核心版可直接复制运行。detailssummary 完整源码点击展开/折叠/summary储罐联锁逻辑仿真 —— 液位超高/过低安全保护参考哈尔滨工程大学《工业过程控制》第十四章安全仪表系统from dataclasses import dataclass, fieldfrom typing import List, Tuple, Optional, Dict, Deque, Callablefrom enum import Enum, autoimport numpy as npimport matplotlib.pyplot as pltfrom collections import dequeimport timeimport mathfrom datetime import datetimeimport hashlib# # 1. 基础数据结构值对象# dataclassclass InterlockLevels:联锁阈值配置 —— 值对象low_low: float 10.0 # LL - 停泵阈值 (%)low: float 20.0 # LO - 低液位预警 (%)high: float 80.0 # HI - 高液位预警 (%)high_high: float 95.0 # HH - 关阀阈值 (%)hysteresis: float 2.0 # 滞环宽度 (%)def validate(self):验证阈值合理性assert self.low_low self.low self.high self.high_highassert self.hysteresis 0dataclassclass TankConfig:储罐配置 —— 值对象tank_id: str T-101capacity: float 5000.0 # 容积 (m³)diameter: float 15.0 # 直径 (m)max_level: float 12.0 # 最高液位 (m)initial_level: float 5.0 # 初始液位 (m)inflow_nominal: float 50.0 # 额定进料流量 (m³/h)outflow_nominal: float 40.0 # 额定出料流量 (m³/h)cross_section: float field(initFalse)def __post_init__(self):self.cross_section math.pi * (self.diameter / 2) ** 2dataclassclass AlarmState:报警状态 —— 值对象hihi: bool False # 高高液位hi: bool False # 高液位lo: bool False # 低液位lolo: bool False # 低低液位sensor_fault: bool False # 传感器故障vote_fault: bool False # 表决故障# # 2. 信号模型策略模式# class AnalogSignal:模拟量信号 —— 支持故障注入def __init__(self, name: str, nominal_value: float 50.0):self.name nameself.nominal nominal_valueself.current_value nominal_valueself.fault_type: Optional[str] None # stuck, drift, lost, noiseself.fault_param: float 0.0self.noise_std: float 0.5 # 正常噪声 (%)self.random_gen np.random.RandomState(hash(name) % 2**32)def set_fault(self, fault_type: str, param: float 0.0):注入故障self.fault_type fault_typeself.fault_param paramdef clear_fault(self):清除故障self.fault_type Noneself.fault_param 0.0def get_value(self, true_value: float) - float:获取当前信号值if self.fault_type stuck:# 卡死在某个值return self.fault_paramelif self.fault_type drift:# 漂移self.current_value self.fault_param * 0.1return self.current_valueelif self.fault_type lost:# 信号丢失返回4mA对应值return -10.0 # 低于量程下限elif self.fault_type noise:# 异常噪声return true_value self.random_gen.normal(0, self.fault_param)else:# 正常状态 小噪声noise self.random_gen.normal(0, self.noise_std)return true_value noisedef is_signal_lost(self, value: float) - bool:判断信号是否丢失return value -5.0 # 对应3.2mA# # 3. 液位变送器装饰器模式# class LevelTransmitter:液位变送器 —— 含冗余和合理性检查def __init__(self, transmitter_id: str, signal: AnalogSignal):self.tid transmitter_idself.signal signalself.last_value: float 50.0self.deviation_alarm: bool Falsedef read(self, true_level_percent: float) - float:读取液位值raw self.signal.get_value(true_level_percent)self.last_value raw# 合理性检查与上次值偏差过大if abs(raw - self.last_value) 20.0: # 单次跳变20%self.deviation_alarm Trueelse:self.deviation_alarm Falsereturn rawdef is_healthy(self, value: float) - bool:检查变送器健康状态if self.signal.is_signal_lost(value):return Falseif self.deviation_alarm:return Falsereturn True# # 4. 表决逻辑策略模式# class VotingLogic:2oo3 表决逻辑staticmethoddef vote_2oo3(values: List[float], signal_lost_flags: List[bool]) - Tuple[float, bool]:三取二表决返回: (表决后的有效值, 是否有效)valid_values []valid_indices []for i, (val, lost) in enumerate(zip(values, signal_lost_flags)):if not lost and -10.0 val 110.0:valid_values.append(val)valid_indices.append(i)# 少于2个有效信号 → 安全侧if len(valid_values) 2:return 50.0, False # 返回中间值标记无效# 2oo3: 取中值最鲁棒if len(valid_values) 3:median_val sorted(valid_values)[1]return median_val, Trueelif len(valid_values) 2:# 2个有效取平均return np.mean(valid_values), Truereturn valid_values[0], Truestaticmethoddef detect_disagreement(values: List[float], threshold: float 5.0) - bool:检测变送器间偏差过大valid [v for v in values if -10.0 v 110.0]if len(valid) 2:return Falsereturn (max(valid) - min(valid)) threshold# # 5. 联锁逻辑处理器模板方法# class InterlockLogic:联锁逻辑处理器 —— 模板方法def __init__(self, levels: InterlockLevels, tank_id: str T-101):self.levels levelsself.tank_id tank_idself.alarm AlarmState()self.trip_history: Deque[Tuple[float, str, str]] deque(maxlen100)# 去抖动延时self.hh_dwell_time: float 0.0self.ll_dwell_time: float 0.0self.debounce_time: float 2.0 # 2秒去抖self.tripped_hh: bool Falseself.tripped_ll: bool False# 回调self.on_trip_hh: Optional[Callable] Noneself.on_trip_ll: Optional[Callable] Noneself.on_alarm: Optional[Callable] Nonedef evaluate(self, pv: float, dt: float, bypass_active: bool False) - Dict[str, bool]:评估联锁条件actions {close_inlet: False,stop_outlet_pump: False,alarm_hihi: False,alarm_hi: False,alarm_lo: False,alarm_lolo: False}if bypass_active:return actions # 旁路激活不执行联锁# ---- 高液位逻辑 ----# HI 报警带滞环if pv self.levels.high:actions[alarm_hi] Trueself.alarm.hi Trueelif pv self.levels.high - self.levels.hysteresis:self.alarm.hi False# HH 联锁去抖动if pv self.levels.high_high:self.hh_dwell_time dtif self.hh_dwell_time self.debounce_time:actions[close_inlet] Trueself.tripped_hh Trueself._record_trip(pv, HH_TRIP, 关闭进料阀)if self.on_trip_hh:self.on_trip_hh(pv)else:self.hh_dwell_time 0.0# 复位条件if pv self.levels.high - self.levels.hysteresis:self.tripped_hh False# ---- 低液位逻辑 ----# LO 报警if pv self.levels.low:actions[alarm_lo] Trueself.alarm.lo Trueelif pv self.levels.low self.levels.hysteresis:self.alarm.lo False# LL 联锁if pv self.levels.low_low:self.ll_dwell_time dtif self.ll_dwell_time self.debounce_time:actions[stop_outlet_pump] Trueself.tripped_ll Trueself._record_trip(pv, LL_TRIP, 停止出料泵)if self.on_trip_ll:self.on_trip_ll(pv)else:self.ll_dwell_time 0.0# 复位条件if pv self.levels.low self.levels.hysteresis:self.tripped_ll Falsereturn actionsdef _record_trip(self, pv: float, trip_type: str, action: str):记录联锁动作entry (time.time(), trip_type, fPV{pv:.1f}% - {action})self.trip_history.append(entry)def get_trip_summary(self) - str:获取联锁动作摘要if not self.trip_history:return 无联锁动作记录lines [f {self.tank_id} 联锁动作记录 ]for ts, trip_type, detail in self.trip_history:t_str datetime.fromtimestamp(ts).strftime(%Y-%m-%d %H:%M:%S)lines.append(f [{t_str}] {trip_type}: {detail})return \n.join(lines)# # 6. 最终执行元件状态模式# class FinalElement:最终执行元件 —— 状态模式def __init__(self, element_id: str, element_type: str VALVE):self.eid element_idself.etype element_type # VALVE / PUMPself.state: str NORMAL # NORMAL / TRIPPED / FAULTself.position: float 100.0 # 阀门开度 0~100%self.running: bool True # 泵运行状态self.fail_safe: str CLOSE if element_type VALVE else STOPdef close_valve(self) - str:关闭阀门安全动作self.state TRIPPEDself.position 0.0return f {self.eid}: 阀门关闭 (安全动作)def open_valve(self) - str:打开阀门正常动作if self.state NORMAL:self.position 100.0return f {self.eid}: 阀门打开return f ⚠️ {self.eid}: 阀门联锁锁定无法打开def stop_pump(self) - str:停止泵安全动作self.state TRIPPEDself.running Falsereturn f {self.eid}: 泵已停止 (安全动作)def start_pump(self) - str:启动泵if self.state NORMAL:self.running Truereturn f ▶️ {self.eid}: 泵已启动return f ⚠️ {self.eid}: 泵联锁锁定无法启动def reset(self) - str:复位到正常状态self.state NORMALif self.etype VALVE:self.position 100.0else:self.running Truereturn f {self.eid}: 已复位到正常状态# # 7. 旁路管理器单例模式# class BypassManager:旁路管理器 —— 单例模式_instance None_lock Truedef __new__(cls):if cls._instance is None:cls._instance super().__new__(cls)cls._instance._init()return cls._instancedef _init(self):self.bypasses: Dict[str, Dict] {} # {tank_id: {active, reason, operator, expire_time}}self.audit_log: Deque[Tuple[float, str, str]] deque(maxlen500)def activate(self, tank_id: str, reason: str, operator: str,duration_minutes: float 30.0) - str:激活旁路import timeexpire time.time() duration_minutes * 60self.bypasses[tank_id] {active: True,reason: reason,operator: operator,expire_time: expire,activated_at: time.time()}entry (time.time(), operator, f旁路激活[{tank_id}]: {reason} (有效期{duration_minutes}分钟))self.audit_log.append(entry)return f ⚠️ 旁路已激活: {tank_id} | 原因: {reason} | 操作人: {operator}def deactivate(self, tank_id: str, operator: str) - str:解除旁路if tank_id in self.bypasses:del self.bypasses[tank_id]entry (time.time(), operator, f旁路解除[{tank_id}] | 操作人: {operator})self.audit_log.append(entry)return f ✅ 旁路已解除: {tank_id} | 操作人: {operator}def is_bypassed(self, tank_id: str) - bool:检查是否旁路import timeif tank_id not in self.bypasses:return Falsebp self.bypasses[tank_id]if time.time() bp[expire_time]:# 自动过期del self.bypasses[tank_id]entry (time.time(), SYSTEM, f旁路自动过期[{tank_id}])self.audit_log.append(entry)return Falsereturn bp[active]def get_status(self) - str:获取旁路状态if not self.bypasses:return 无旁路激活lines [ 旁路状态 ]for tid, bp in self.bypasses.items():remaining (bp[expire_time] - time.time()) / 60lines.append(f {tid}: 激活 | 剩余{remaining:.0f}分钟 | {bp[reason]})return \n.join(lines)def get_audit_log(self, last_n: int 10) - List[str]:获取审计日志recent list(self.audit_log)[-last_n:]return [f [{datetime.fromtimestamp(ts).strftime(%H:%M:%S)}] {op}: {msg}for ts, op, msg in recent]# # 8. 事件记录器观察者模式# class EventLogger:事件记录器 —— 观察者模式def __init__(self, max_events: int 1000):self.events: Deque[Dict] deque(maxlenmax_events)self.subscribers: List[Callable] []def log(self, event_type: str, message: str, severity: str INFO,metadata: Dict None):记录事件event {timestamp: time.time(),type: event_type,message: message,severity: severity,metadata: metadata or {}}self.events.append(event)# 通知订阅者for sub in self.subscribers:sub(event)# 控制台输出ts datetime.fr利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛

相关新闻

英雄联盟终极工具包League Akari:三步安装轻松实现游戏体验全面升级

英雄联盟终极工具包League Akari:三步安装轻松实现游戏体验全面升级

英雄联盟终极工具包League Akari:三步安装轻松实现游戏体验全面升级 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否希望获得…

2026/8/10 12:18:25 阅读更多 →
离散型与流程型制造排产差异及智能排程实践

离散型与流程型制造排产差异及智能排程实践

1. 离散型与流程型制造的本质差异 在工厂生产管理领域,离散型制造和流程型制造是两种根本不同的生产模式。离散型制造就像搭积木,产品由多个可分离的零部件组装而成,比如汽车制造就是典型例子——发动机、轮胎、车身等部件分别生产后最终组装…

2026/8/10 12:18:25 阅读更多 →
二分查找算法原理与Leetcode704实战解析

二分查找算法原理与Leetcode704实战解析

1. 二分查找算法基础与Leetcode704题解析 二分查找(Binary Search)是计算机科学中最基础且高效的查找算法之一,它的核心思想是通过不断缩小搜索范围来快速定位目标元素。Leetcode704题作为二分查找的经典入门题目,要求我们在一个有…

2026/8/10 12:17:25 阅读更多 →

最新新闻

从“大数据请把我推给小伙伴”看分布式任务调度:推送、排队与调度算法

从“大数据请把我推给小伙伴”看分布式任务调度:推送、排队与调度算法

最近在技术社区里,我注意到一个挺有意思的现象:很多开发者,尤其是刚接触分布式系统或数据处理的朋友,在遇到“任务调度”或“资源分配”问题时,第一反应是去搜索“如何保证我的任务被公平处理”或者“为什么我的请求总…

2026/8/10 13:02:41 阅读更多 →
终极ncmdump解密指南:3步释放网易云音乐NCM文件,重获音频自由

终极ncmdump解密指南:3步释放网易云音乐NCM文件,重获音频自由

终极ncmdump解密指南:3步释放网易云音乐NCM文件,重获音频自由 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾为网易云音乐下载的歌曲只能在特定APP播放而烦恼?ncmdump作为一款开源免费的…

2026/8/10 13:02:41 阅读更多 →
为什么你的音乐文件无法在设备间自由播放?解锁音乐格式限制的终极方案

为什么你的音乐文件无法在设备间自由播放?解锁音乐格式限制的终极方案

为什么你的音乐文件无法在设备间自由播放?解锁音乐格式限制的终极方案 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web …

2026/8/10 13:02:41 阅读更多 →
品牌放弃自建人工监测,转用GEO监测工具背后的成本账

品牌放弃自建人工监测,转用GEO监测工具背后的成本账

在品牌数字营销领域,用户决策入口正在向AI问答平台转移。为了第一时间掌握品牌在AI回答中的曝光表现,不少企业初期尝试通过人工检索、记录和整理数据来建立监测体系。这种方式看似省去了订阅费用,但随着业务规模扩大和AI算法迭代,…

2026/8/10 13:02:41 阅读更多 →
Spring Boot实战:从零构建基于RBAC的权限管理系统

Spring Boot实战:从零构建基于RBAC的权限管理系统

在实际软件开发项目中,权限控制是保障系统安全的核心防线。很多开发者,尤其是刚接触权限体系的初学者,常常会混淆认证(Authentication)与授权(Authorization)的概念,或者虽然知道这两…

2026/8/10 13:02:41 阅读更多 →
NX-HBMenu深度故障排除:10个技术难题的实践解决方案

NX-HBMenu深度故障排除:10个技术难题的实践解决方案

NX-HBMenu深度故障排除:10个技术难题的实践解决方案 【免费下载链接】nx-hbmenu The Nintendo Switch Homebrew Menu 项目地址: https://gitcode.com/gh_mirrors/nx/nx-hbmenu NX-HBMenu作为Nintendo Switch自制系统的核心启动菜单,为Homebrew应用…

2026/8/10 13:01:41 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →