3. iQ-R过程控制CPU编程基础
三菱iQ-R系列过程控制CPU(如R08PCPU、R16PCPU、R32PCPU)与通用可编程控制器最大的区别,在于它把"连续过程量的闭环调节"当作一等公民来对待。理解它的编程模型,不能只停留在"写梯形图"的层面,而要同时看清四件事:标签如何给过程量命名、程序块如何把控制逻辑切分成可复用的单元、任务如何决定这些单元在什么时机执行、扫描周期如何决定控制品质。这四者共同构成过程控制CPU的运行时骨架,而过程控制专用指令则是挂在这套骨架上的"调节工具"。
一、标签:过程量的"实名制"
在过程控制中,一个回路往往牵涉PV(测量值)、SP(设定值)、MV(操作量)、PID参数、报警限值、手自动状态等十几个变量。若全部用X/Y/M/D这类软元件地址书写,程序可读性会迅速崩塌。iQ-R过程控制CPU支持标签(Label)编程,允许用有工程含义的名字直接引用数据。
标签分为全局标签与局部标签。全局标签在工程内所有程序块可见,适合定义跨回路共享的工艺参数;局部标签只在所属程序块内有效,适合定义该块的中间计算量。标签需要指定数据类型,过程控制中常用的有:
- REAL(32位浮点):用于PV、SP、MV、PID参数等连续量,是过程控制的主力类型;
- INT/DINT:用于模式字、报警代码、计数器;
- BOOL:用于联锁、使能、手自动切换等开关量;
- 结构体(STRUCT):把同一回路的PV、SP、MV、Kp、Ti、Td、报警限打包成一个变量,例如
Loop1.PV、Loop1.SP,这是过程控制编程中最值得养成的习惯。
需要特别注意的是:标签最终仍要映射到实际软元件或过程控制CPU的专用数据区。标签只是"别名",不改变数据的物理位置。因此定义标签时必须确认其分配地址不与其它程序块冲突,否则会出现"两个名字改同一个数"的隐蔽故障。
二、程序块与任务:把逻辑放进正确的时间槽
iQ-R过程控制CPU的程序由若干程序块组成,每个程序块是一段可独立编译、独立指定执行条件的程序。程序块本身不决定"什么时候跑",决定这件事的是任务(Task)。任务把程序块与执行时机绑定,常见类型包括:
- 初始任务:上电后执行一次,用于初始化PID参数、清零积分项、置初始MV;
- 扫描任务:每个扫描周期执行一次,是过程控制回路运算的主体;
- 事件任务:由中断或特定事件触发,用于快速联锁或高速采样;
- 定周期任务:按固定时间间隔执行,适合对采样周期一致性要求高的调节回路。
这里有一个过程控制特有的关键点:PID运算的采样周期必须稳定。如果把PID程序块挂在普通扫描任务上,而扫描周期随程序量波动,积分项和微分项的计算就会失真。因此工程上通常把调节回路放在定周期任务中,或至少确认扫描周期的抖动在可接受范围内。
三、扫描周期:过程控制的"心跳"
扫描周期是CPU完成一轮"输入刷新→程序执行→输出刷新"的时间。对过程控制而言,它直接决定三件事:
- 采样分辨率:周期越长,能捕捉的过程变化越粗,快速扰动容易被漏掉;
- PID运算的时间基准:PID指令内部按采样时间做积分与微分,采样时间与实际扫描周期不一致会引入误差;
- 联锁响应速度:安全联锁若放在慢任务中,可能来不及在危险发生前动作。
因此,过程控制CPU编程的一个基本纪律是:先估算扫描周期,再决定哪些逻辑放哪个任务。粗略估算可按"程序步数×每步执行时间+过程控制指令开销+通信开销"累加。若某回路要求采样周期100ms,而实测扫描周期已达80ms,余量就非常紧张,应考虑拆分任务或减少该任务中的程序量。
四、过程控制专用指令:不只是PID
过程控制CPU在通用指令之外,提供了一组面向连续量调节的专用指令。最核心的是PID运算指令,它通常以结构化的方式接收PV、SP、Kp、Ti、Td、采样周期、MV上下限、积分限幅等参数,输出MV。与通用PLC里用加减乘除自己搭PID相比,专用指令的优势在于:
- 内置积分抗饱和(anti-windup)处理,MV到达限幅时自动停止积分累积;
- 支持微分先行或对PV微分,避免SP阶跃时微分冲击;
- 支持手动/自动无扰切换,切换瞬间MV不跳变;
- 采样周期以参数形式明确给出,运算时间基准清晰。
除PID外,常用的还有:报警检测指令(上下限、偏差、变化率报警)、信号滤波指令(一阶滤波、移动平均,用于抑制测量噪声)、开方指令(差压流量计信号线性化)、累积指令(流量累积)、斜坡/限幅指令(MV变化率限制,保护执行机构)。这些指令的共同特点是:它们都围绕"连续量的采集—处理—输出"这条链路服务。
五、一个最小回路的编程顺序
把上述概念落到一个具体回路上,合理的编程顺序是:
- 先定义结构体标签,例如
Loop1,包含PV、SP、MV、Kp、Ti、Td、采样周期、MV上限、MV下限、报警上限、报警下限; - 在初始任务中装载PID参数与初始MV,清零积分项;
- 在定周期任务中放置PID调节块,采样周期与任务周期一致;
- 在扫描任务中放置报警处理块与联锁逻辑块;
- 确认扫描周期余量,必要时把非关键逻辑移出定周期任务。
掌握这套编程基础后,后续的回路整定、串级控制、比值控制才有可靠的落脚点。过程控制CPU的编程,本质上是在"逻辑正确"之外,额外承担了"时间正确"的责任。