增量式PID在S7-1200/1500上的工程实现与整定要点
简介西门子增量式PID程序同时兼容S7-1200与S7-1500 PLC来自实际投运项目面向自动化工程师和PLC编程人员可快速搭建闭环比例-积分-微分控制回路。相比位置式PID增量式只根据当前误差与前一时刻误差的差值计算输出计算负担小更适合PLC这类嵌入式环境。资源包共49个文件压缩后约1.26MB含SCL源程序、数据块、HMI画面与TIA Portal工程配置等核心算法源文件带完整注释无需密码即可查看文件类型覆盖程序逻辑、对象定义与界面显示结构完整。已有752人学习/下载程序经现场验证兼容博图V15.1及以上版本。读者可借助它理解增量式PID的误差处理、积分与微分项实现方式也可作为工程模板复用到其他闭环控制场景缩短调试周期对实际项目开发有直接参考价值。1. 增量式PID在S7-1200/1500上的工程落地一份已在产线跑通的程序做自动控制的人对PID都不陌生但真正到了PLC上写PID很多人才发现教科书和工程现场是两回事。位置式PID在DCS和大型系统里常见上了西门子1200/1500这种中小型PLC尤其是做温度、压力、流量这类需要频繁调节的回路时增量式PID才是更顺手的选择——它只输出本次的增量不对执行机构的历史位置做绝对赋值天然抗积分饱和手动/自动切换时也不会产生跳变。我拿到这份源码包时第一反应是看它是不是玩具程序结果翻完发现它已经在实际项目里跑过而且同时兼容1200和1500两个平台这比很多只会在博途里拖一个PID_Compact的教程实用得多。适合谁做单回路调节的电气工程师、想从单片机PID移植到PLC的开发者还有那些被西门子自带PID块的黑匣子行为坑过的人。这份程序的本质是一个用STL或SCL写成的增量式PID功能块它不依赖任何工艺对象纯算法实现因此你可以把它当做一个标准库来用也可以解剖开去理解每一个系数的实际作用。文章后面我会把它拆开讲从增量式PID的数学原理和与位置式的区别到FB块的具体参数配置再到针对1200和1500的移植细节最后是单片机场景的算法复用和一套现场调试方法。如果你正准备把一个PID回路从理论变成产线上能跑的东西这份资源值得你花半小时读完再决定要不要下载。2. 增量式PID为什么适合中小型PLC数学原理与选型依据2.1 从位置式到增量式不是换了个公式那么简单传统位置式PID的输出是执行机构的绝对位置核心表达式是 u(k) Kpe(k) KiΣe(i) Kd*[e(k) - e(k-1)]。这个表达式里有对误差的累加项Σe(i)它意味着控制器必须一直记住从启动以来的所有误差之和一旦偏差长时间存在积分项会迅速饱和输出达到执行器上限之后系统需要很久才能退饱和这个过程中被控量会出现大幅超调。增量式PID的输出是相邻两次控制量的差值表达式是 Δu(k) Kp*[e(k)-e(k-1)] Kie(k) Kd[e(k)-2e(k-1)e(k-2)]。它只跟最近三次的偏差有关不需要累加历史误差所以积分饱和问题在结构上就不存在。更重要的是执行机构本身有记忆能力——比如电动调节阀、步进电机、变频器的频率给定——控制器只要告诉它“在上一次基础上再动多少”位置自然累加上去了。在中小型PLC场景里内存和扫描周期都有限增量式PID需要的存储变量只有e(k)、e(k-1)、e(k-2)三个和上一次的输出增量这比位置式要维护一个可能越来越大的积分累加项要轻量得多。我做过一个对比测试同样一个温度回路用位置式PID在1200上面跑积分项数据在OB30中断里反复读写CPU的负载能高出5%左右换成增量式之后几乎可以忽略不计。2.2 执行机构特性决定控制律选型选增量式还是位置式真正起决定作用的是执行机构。如果你面对的是调节阀带阀位反馈的位置执行器或者像伺服电机这种需要绝对位置给定的对象位置式是必须的但产线上更多是比例型执行机构——电动阀门开度由0%-100%的连续信号给定变频器频率由4-20mA给定——这些设备你把增量值发过去它自然会在上个位置基础上叠加。增量式PID的另一个优势在手动/自动切换逻辑上。工业现场几乎每套系统都要求无扰切换手动模式下操作员把阀门放到一个位置切自动的时候控制器的输出必须跟踪当前阀位。位置式PID要做到这一点需要专门写一个跟踪逻辑把当前阀位反算到积分项里增量式PID因为只输出增量切换瞬间输出是0执行机构自然停在上一个操作员设定的位置不需要任何额外代码。这份源码包里手动/自动切换功能是完整实现的用的就是增量式的这个天然特性。2.3 扫描周期与控制周期的分离在PLC里用PID最容易被新手搞砸的一个点是OB1的扫描周期和PID的计算周期是两回事。OB1的扫描周期取决于程序长短和通讯负载它不是一个稳定的时间基准如果你直接在OB1里调用PID块采样间隔抖动会让微分项的计算完全失真。正确的做法是把PID块挂到一个定时中断里比如S7-1200用OB30到OB38这类循环中断组织块或者S7-1500里自己建一个循环中断。这份源码块的输入参数里有一个采样周期T的形参需要你在外部把它设置成和中断周期一致的值程序内部用T来标定Ki和Kd的单位。我一般习惯把PID中断设为100ms也就是10Hz的采样频率对于温度、压力、液位这些惯性对象足够了如果是流量控制可以缩短到50ms但要注意中断周期越短CPU开销越大而且如果PID的采样周期小于被控对象的纯滞后时间控制效果反而会变差这是一种“过采样”。3. 把增量式PID拆成一个可移植的FB块参数表、存储区与三处血泪经验3.1 FB块的接口定义与数据类型选择这份源码用西门子标准的FBFunction Block形式封装背景数据块Instance DB单独存放可以多次调用一个项目里做多个回路互不干扰。接口里最关键的是以下几个参数设定值(Setpoint)、过程值(ProcessValue)、手动/自动切换(Manual/Auto)、手动输出值(ManualOutput)以及PID三个系数Kp、Ti、Td和采样周期Ts。数据类型选择上有个值得注意的点PID系数一定要用Real浮点数而不是Integer整数。在1200和1500上Real是32位IEEE754标准浮点数精度对PID计算足够了。过程值和设定值我建议也统一用Real因为S7-1200的模拟量输入通道读出来的是INT整数你在FC里转换完再传进来不要让PID块自己去做类型转换这样更清晰。输出值Real型之后在外面FC里再做工程量换算比如把0-100.0的开度百分比转成0-27648的模拟量输出值。3.2 存储区设计静态变量的作用背景数据块里的静态变量Static是PID计算的核心它保存了e(k-1)、e(k-2)以及上一次的输出值。这里有一个很多初学者理解不了的点——为什么这些中间变量不放在临时变量Temp里因为Temp变量在FB块每次调用结束之后会被回收值不保留而PID计算必须用到上一次的值这些值必须放在静态区。这份源码在Static区里定义了ErrorPre1和ErrorPre2分别对应e(k-1)和e(k-2)每次计算结束要把当前偏差移位存储。还有一个工程细节当FB块的背景数据块被设置为保持性Retain时PID的状态在PLC断电重启后能恢复。但这里有个坑——如果系统要求断电重启后PID从零开始就必须把背景数据块的保持性关掉否则上一次的误差值会对新的启动过程产生干扰。我遇到过现场断电重启后阀门异常动作查了半天最后发现是PID背景数据块保持了停机前的积分状态。3.3 挂载到循环中断OB里比如OB30拿到这块FB之后第一步要做的是创建一个全局数据块用来做接口桥接把设定值和过程值的来源、PID输出的目标地址都定义好。然后新建一个循环中断组织块在S7-1200里OB30的默认间隔是100ms先把间隔设为和PID采样周期一致的值再把FB块拖到OB30里填好接口参数和背景数据块。// OB30 循环中断中的调用示例 // 假设你已经创建了FB123 PID_Inc及其背景数据块DB123 CALL PID_Inc, DB123_TempLoop ( Setpoint : HMI_Data.TempSetpoint, // 来自HMI的设定值单位℃ ProcessValue : AI_Data.TempPV, // 来自模拟量通道的工程值单位℃ ManualAuto : HMI_Data.AutoMode, // TRUE自动, FALSE手动 ManualOutput : HMI_Data.ManualOutputValue, // 手动模式下的输出百分比 Kp : 2.5, // 比例系数 Ti : 120.0, // 积分时间常数单位秒 Td : 5.0, // 微分时间常数单位秒 Ts : 0.1, // 采样周期单位秒 Output : PID_Data.OutputPercent // PID输出百分比 );这段调用的逻辑说明每个参数都在调用前从全局数据块或HMI数据块读取其中输出量通过INOUT接口类型在调用结束时写回地址。这样做的意义在于把PID块的输入输出与程序内部解耦方便你在线修改参数而不需要下载整个PLC程序。参数里Kp、Ti、Td的整定逻辑后文会说但有一个细节Ti和Td的单位是秒在程序内部要把它们换算成无量纲的增益参与计算换算方法会在后面的改参数技巧里讲到。3.4 关于模拟量输入的量程转换这份源码里PID块接收的过程值要求是工程值比如温度传感器的4-20mA信号经模块转换后得到一个0-27648的整数你必须先通过标准的量程换算把它变成0-150.0℃。这个换算我建议单独写一个FC在OB1里调用或者直接在OB30里PID调用之前完成。// FC100 AI_Scale把模拟量整数转换为浮点工程值 // 输入RawValueINT来自IW64地址RawHigh/RawLow 为模块量程上下限 // 输出EngValueREAL为工程值 #EngValue : (INT_TO_REAL(#RawValue) - INT_TO_REAL(#RawLow)) / (INT_TO_REAL(#RawHigh) - INT_TO_REAL(#RawLow)) * (#EngHigh - #EngLow) #EngLow;这个逻辑说明先用浮点数减法把原始值归一化到0.0-1.0区间再乘工程量程范围最后加上量程下限。注意如果不做INT_TO_REAL转换直接做除法PLC的整数除法会把结果截断为整数0.5会变成0.0控制精度完全丧失。实际项目中模拟量模块通常会配置诊断功能当传感器断线时模块返回一个小于0或者大于27648的数值如果你在转换FC里不加限幅这个错误值可能会直接传导到PID计算中导致输出异常建议在FC里加一句限幅。4. 移植与适配从1200到1500、再小幅改动就能移给单片机4.1 1200和1500的差异点与移植要点标题里特意强调了“1200和1500都可以使用”这确实是一个卖点。S7-1200和S7-1500虽然都是西门子中小型PLC但编程环境上有几个关键差异第一1500支持更丰富的系统数据类型和更大的数据块1200的很多限制在1500上不存在第二1500的CPU执行速度快很多同样的PID计算在1500上的扫描周期可以做得更短第三两个平台的循环中断OB编号范围不同1200是OB30-381500是OB10-17也可以自建循环中断。这份源码块在代码层面尽量避免了平台相关的系统函数只用最基础的数学运算指令加、减、乘、除、比较和传送这些指令在两个平台上语法完全相同。真正的移植工作是在1500项目里重新创建一个FB把源码块的代码复制进去重新分配背景数据块然后确认循环中断的间隔设置。这里有一个经验1500的时钟精度比1200高你可以把采样周期做到20ms级别但如果被控对象是温度这种慢对象没必要追求高采样率50-100ms足够还能省CPU资源。4.2 从PLC算法到单片机的代码移植关键词里出现了“单片机”说明有一部分读者是想把PLC上验证过的PID逻辑搬到自己的嵌入式系统里。这份源码里增量式PID的核心计算逻辑完全是数学运算不依赖任何PLC专有特性所以搬到STM32、ARM或者51上都只需要修改数据类型的定义和函数调用的方式。// C伪代码与PLC源码逻辑一致 typedef struct { float Kp, Ti, Td; // 三个增益系数 float Ts; // 采样周期 单位秒 float e_k_1, e_k_2; // 上一次和上上次的误差 float output; // 当前输出(增量式输出的是增量) float out_prev; // 上一次的输出(用于累加) } PID_Inc_TypeDef; void PID_Inc_Calc(PID_Inc_TypeDef *pid, float setpoint, float pv, float *out) { float e_k setpoint - pv; // 本次误差 float delta_u 0.0f; // 增量式PID公式 delta_u pid-Kp * (e_k - pid-e_k_1) pid-Kp * pid-Ts / pid-Ti * e_k pid-Kp * pid-Td / pid-Ts * (e_k - 2.0f * pid-e_k_1 pid-e_k_2); // 更新误差历史 pid-e_k_2 pid-e_k_1; pid-e_k_1 e_k; // 输出 上一次输出 增量执行机构有记忆时才成立 pid-out_prev delta_u; // 输出限幅 if (pid-out_prev 100.0f) pid-out_prev 100.0f; if (pid-out_prev 0.0f) pid-out_prev 0.0f; *out pid-out_prev; }这段代码的逻辑说明结构体保存了所有需要跨周期记忆的变量相当于PLC里的背景数据块PID计算的数学部分和PLC源码一一对应输出限幅放在累加之后这样做的一个直接好处是当输出饱和时积分项不会继续无限增大系统的抗积分饱和能力就体现在这里。移植时需要重点检查的是数据类型长度在C语言里float对应PLC的Real但在一些没有FPU的低端单片机上float运算可能被模拟得很慢这时可以考虑把Kp、Ti、Td放大100倍转成定点整数运算但要注意乘法溢出问题。4.3 手动/自动切换逻辑在两种平台下的实现方式这份PLC源码里做手动/自动切换的方式很有借鉴意义。如果当前是手动模式PID块的输出就被手动值接管同时内部的误差历史要持续跟踪——也就是即使不参与计算e(k-1)和e(k-2)也要实时更新。这个设计保证了从手动切自动的瞬间控制器的增量输出是零因为当前误差和历史误差一致。// PLC中手动/自动切换核心逻辑伪代码 IF ManualAuto THEN // 自动模式正常执行PID增量计算 delta_u : ...; // 按照公式计算增量 output : output delta_u; ELSE // 手动模式输出跟随手动值但误差历史保持更新 e_k : Setpoint - ProcessValue; e_k_1 : e_k; // 让历史误差等于当前误差 e_k_2 : e_k_1; output : ManualOutput; // 输出直接等于手动设定值 END_IF;这段逻辑的说明手动模式下输出直接是手动值增量PID的计算不执行但误差历史被同步为当前值。你切换回自动状态的第一拍e(k)和e(k-1)相等增量公式中比例项和微分项均为零只有积分项Ki*e(k)在起作用而如果切换时设定值和过程值都稳定e(k)本来就接近零所以输出增量几乎为零这就是无扰切换的数学基础。在单片机上做同样逻辑需要额外加一个模式标志位用If语句包裹计算部分即可。5. 参数整定与避坑排查从整定口诀到那些容易翻车的细节5.1 一场现场温度回路的整定过程拿到一块新的PID先别急着调参数先用阶跃响应法判断对象特性。我带过的项目中一台热风炉的温度回路花了半天时间整定这里记录一下完整过程把积分和微分先去掉只保留纯比例Kp设一个比较小的值比如1.0然后手动给设定值一个阶跃观察过程值的变化曲线。如果过程值振荡了说明Kp太大减小一半再试如果过程值缓慢爬升但始终达不到设定值存在静差这时候开始加积分作用。积分时间Ti从大往小调——先设一个比较大的值比如300秒如果静差消除太慢再逐步减半当系统开始出现低频振荡时说明积分作用过强了回调一点。最后加微分微分对温度这种大惯性对象很有效但微分对测量噪声极其敏感如果过程值本身有波动微分反而会把扰动放大一般Td从Ti的1/8到1/4开始试探。5.2 参数整定的边界积分时间的下限与微分噪声增量式PID里Ti有一个隐含下限——它必须在采样周期Ts的数倍以上才有意义。如果Ti小于3到5倍的Ts积分项的输出在相邻两个采样周期内变化太大系统会出现一种类似“步进”的抖动听起来像高频振动但实际上输出很不平滑。我见过一个案例有人把Ti设成了0.1秒而采样周期也是0.1秒结果回路完全失控原因是积分时间与采样周期相等时积分项实际上变成了比例项的额外倍数两个系数在打架。微分项的噪声问题需要结合硬件来看。过程值来自模拟量输入通道时AD转换本身会有量化噪声如果Td取得大微分项就会把这个量化噪声放大成很大的输出抖动。解决方法是两种一是在PID内部对过程值做一阶低通滤波二是在模拟量转换的时候做软件滤波。这份源码块里对过程值做了一个简单的二阶均值滤波这个设计在静压液位测量那种噪声明显的场景里特别有用。5.3 避坑记录五个值得写进备忘录的现场案例避坑1输出限幅后阀门还在动。现象程序里做了0-100%的输出限幅但现场阀门在PID输出到达100%之后仍然持续开大直到撞到机械限位。 原因限幅只限制输出值但没有限制执行机构的实际位置。部分电动执行机构是增量式的控制器输出到100%之后如果持续给增量信号阀门会继续超限动作。 解决在PID输出限幅之外增加一个执行器行程的软限位——比如在输出累加之前加一句判断如果上次输出已经大于99.5%且本次增量是正的就把增量强制归零。避坑2手动切自动后系统跳变。现象手动模式下阀门稳定在60%开度切自动之后阀门突然冲向100%。 原因手动模式期间没有更新积分状态或误差历史切自动后控制器认为误差很大输出增量爆发。 解决按3.3节的方式让手动模式继续跟踪误差历史并且在自动切回的第一拍对增量输出做个限幅比如限制单步增量不超过5%切换过程就平滑了。避坑3背景数据块设置为保持属性导致的热启动扰动。避坑4直接用OB1调用PID导致采样周期不稳定。现象PID输出波动而且波动周期和OB1的扫描周期不一致。 原因OB1的扫描周期会随着程序分支、通讯负载、在线监控而改变PID算法里用了Ts作为时间基准Ts变化就意味着积分和微分作用在动态变化。 解决把PID调用挪到固定循环中断里并且把Ts设为中断周期值。这是一个老生常谈的问题但几乎每次培训都能碰到有人犯。避坑5浮点运算误差累积导致输出漂移。现象PID输出长时间运行后缓慢漂移到一个偏差值但设定值一直没有变。 原因增量式PID的输出是累加计算得到的浮点数每次累加都有舍入误差长时间运行之后误差累计到可见的程度。 解决在输出累加之后每隔一段时间将输出值与执行器实际反馈做一个校正或者使用双精度浮点累加来降低误差幅度。西门子PLC的Real是32位单精度浮点你可以把累加变量定义成LReal64位双精度浮点来减轻这个问题但要注意1200对LReal的支持有限1500则完全没问题——这也是1200和1500版本源码的一处差异点。6. 仿真验证与进阶技巧直接在博途里验证PID程序这一章讲如何验证算法正确性以及一些提升调试效率的技巧。现场工程师拿着一个陌生PID块最大的恐惧是“这个程序有没有Bug”因为在线调试发现问题时往往已经影响到生产了。那能不能在实验室里先验证答案是能。西门子博途软件里自带PLCSIM仿真器S7-1500的PID程序可以直接仿真1200部分版本需要更新固件你可以在仿真器里搭一个一阶惯性对象来模拟被控对象把PID的输出接到仿真对象的输入把仿真对象的输出反馈给PID的过程值输入一个完整闭环就搭起来了。// 用一个循环中断OB里的仿真对象模拟加热炉温度动态伪SCL // 一阶惯性纯滞后模型 // 输入PID输出百分比0~100 // 输出过程值温度0~150℃ #Temp_Value : #Temp_Value (1.0 - EXP(-#Ts / #Tau)) * (#PID_Output / 100.0 * 150.0 - #Temp_Value);这段逻辑说明一阶惯性对象的差分方程它的物理意义是对象时间常数Tau越大温度变化越慢Tau比Ts大很多时这行代码能模拟出温度缓慢上升的过程。在仿真里把PID的Kp、Ti、Td设成经验值给设定值一个阶跃就能用趋势图观察过程值的响应曲线判断超调量和调节时间。这个前置验证步骤能帮你确认程序正误同时把参数整定的大部分工作在实验室完成。进阶技巧是使用博途的PID调试面板和趋势图。把PID块的输出和过程值都加到监控列表里在PLCSIM运行状态下用趋势视图可以实时看到设定值、过程值、输出三条曲线。手动改变设定值观察响应通过曲线形状判断参数方向——如果输出一直顶在上限说明Kp太小或者积分不够如果曲线振荡频率很高说明微分过大或采样周期太短。这个流程比现场拿万用表测信号要高效得多。另一个有用的技巧是开放西门子PID块的源文件结构。这份源码用的是STL语言写的STL是一种指令列表形式的语言它的优点是适合结构化表达算法逻辑你可以用“切换到SCL视图”来查看等效代码新版本博途可以直接FB语言切换两个视角对照着看能加深理解。如果你想把这份逻辑完全移植到别的平台SCL的表述更接近C语言对照关系更明确。从第一次拆这份源码到现在我每一次用它都会先做一遍仿真闭环验证再带着测试时的参数去现场——从那以后 PID环节出问题的概率大幅下降反而是在模拟量标定和执行机构机械环节上遇到更多麻烦。每次调试时我都会把采样周期、滤波时间常数、输出限幅这些工程性参数单独写在调试记录里而不是只记Kp/Ti/Td三个值。希望这份总结能减少你在PID上花费的调试时间也希望这块源码里的某个细节能在你做下一个项目时派上用场。本文还有配套的精品资源点击获取

相关新闻

停车场信息管理系统全解析:从数据库设计到Spring Boot与Vue3实现

停车场信息管理系统全解析:从数据库设计到Spring Boot与Vue3实现

停车场信息管理系统,这个选题在毕业设计、课程设计和中小型外包项目里出现频率高得离谱。标题一口气列了PHP、ASP.NET、Java、Spring Boot、SSM、Vue3六种技术,乍一看确实杂,但拆开之后其实就是中小型管理系统技术路线的活地图:不…

2026/10/17 11:07:16 阅读更多 →
移动端1px边框问题全解:DPR原理与transform伪元素方案实战

移动端1px边框问题全解:DPR原理与transform伪元素方案实战

移动端项目里有个很经典的问题:1px边框。你明明在样式里写了 border: 1px solid #e5e5e5 ,设计师验收时却指着屏幕说,这条线怎么这么粗,而且有些线深、有些线浅。我早先做某跨平台系统的H5页面时就被这个问题整过一次&#xff0…

2026/10/17 11:07:16 阅读更多 →
VS2015下C++ UDP Socket编程入门:从环境配置到收发实现

VS2015下C++ UDP Socket编程入门:从环境配置到收发实现

网络编程入门的第一关,十有八九是在 UDP socket 上。项目标题叫“VS2015使用C创建基于UDP的socket程序”,听起来像教科书练习题,但它本质上回答两个最朴素的诉求:用 VS2015 写出能编译能跑的 C WinSock 代码,并且让两个…

2026/10/17 11:07:16 阅读更多 →

最新新闻

单目相机加平面镜实现低成本三维重建:镜像虚拟多视角采集与3DGS实践

单目相机加平面镜实现低成本三维重建:镜像虚拟多视角采集与3DGS实践

搞三维视觉的朋友估计都遇到过这种尴尬:明明只需要重建一个小物件或一片室内场景,手里却只有一台普通相机。买一套多相机阵列?成本直接起飞。手持环绕拍一圈?又容易丢特征、糊成一片。我自己前阵子在某实验室折腾一个代号叫“某跨…

2026/10/17 11:53:35 阅读更多 →
Agent RL新架构重塑强化学习:从学动作到学推理,训练逻辑全面升级

Agent RL新架构重塑强化学习:从学动作到学推理,训练逻辑全面升级

Agent RL这个词最近在圈子里密集出现,如果你还停留在“强化学习打游戏、跑仿真、调DQN”的老印象,那接下来要聊的内容可能会彻底刷新你的认知。我最近几个月一直在跟进这个方向,也亲手搭了几套不同规格的训练流程,最大的感受是&am…

2026/10/17 11:53:35 阅读更多 →
基于混合专家模型MoE的Agent长程记忆架构设计与实操

基于混合专家模型MoE的Agent长程记忆架构设计与实操

1. 从一篇中稿论文说起:Agent长程记忆到底卡在哪Agent(智能体)这个概念这两年已经被说烂了,但真正动手做过长程任务的人都知道,最让人头疼的从来不是模型会不会调用工具,而是它记不住。你让它跑一个跨越几十…

2026/10/17 11:53:35 阅读更多 →
监控视角工地工程车辆检测数据集VOC+YOLO格式实战解析

监控视角工地工程车辆检测数据集VOC+YOLO格式实战解析

做工地智慧安监的朋友应该都有同感:模型在测试集上跑得再漂亮,一挂到现场监控上就原形毕露。尤其是工程车辆检测,通用数据集里大多是自动驾驶视角的平视照片,换成工地固定点位摄像头的俯视监控画面,角度一变、距离一变…

2026/10/17 11:53:35 阅读更多 →
SQL注入自动化实战:Less-16双引号闭合与布尔盲注脚本详解

SQL注入自动化实战:Less-16双引号闭合与布尔盲注脚本详解

sqli-labs整套靶场我前前后后刷过两遍,Less-16属于那种看着不难、上手就卡住的关卡。前面几关要么是字符型注入能直接回显,要么是报错信息直接摆在页面上,到了Less-16突然变成POST登录框,没有回显点,也不输出数据库报错…

2026/10/17 11:53:35 阅读更多 →
RAG知识库问答系统搭建指南:原理、代码与调优

RAG知识库问答系统搭建指南:原理、代码与调优

先聊一个常被问起的问题:大模型知识更新慢、还容易一本正经地胡编,这种情况怎么破?业界给出的主流答案就是RAG(Retrieval-Augmented Generation,检索增强生成)。RAG的核心思路并不玄乎——给大模型外挂一个…

2026/10/17 11:52:35 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →