
附件里的这段程序是从主程序里剪切出来的,我在D3000~ 和D2502~ 和D449~都设置了初始值。CPU类型是Q01的,我在办公室里试过,没有报错,更改一下PLC类型,可以传到Q00j里试看看。
顺便发一段PI D参数设置要求,注意最后一栏,要是超出范围的话会报4100错误
PID控制数据
| 数据号 | 名称 | 说明 | 设定范围 | 设置数据 | 设定的数据超出范围时 | ||
| 共用数据区 | 0 | 总回路数 | 设定PID回路的数量 | 1至32 | 1至32 | PID指令不运行 | |
| 1 | 每扫描周期运行数 | 采样周期时间达到后,PID指令执行的回路数 | |||||
| 每一回路的参数 | 2 | PID的运行方式 | 正反作用选择 | 正:0 反:1 | 0或1 | 相应回路的PID不运行 | |
| 3 | 采样周期(Ts) | 设置PID运行周期 | 0.01至60.00s | 1至6000 (单位:10ms) | |||
| 4 | 比例常数(Kp) | 比例常数 | 0.01至100.00 | 1至10000 (单位:0.01) | |||
| 5 | 积分常数(Ti) | 比例常数 | 01至3000.0 | 1至32767 (单位:100ms) | 当设定的值小于0时,相应回路的PID不运行 | ||
| ∞设定的Ti超过3000.0s | |||||||
| 6 | 微分常数(Td) | 微分常数 | 0.01至300.00s | 0至30000(单位:10ms) | 相应回路的PID不运行 | ||
| 7 | 过滤系数(а) | 过滤系数 | 1至100% | 0至100 | |||
| 8 | 操作值下限(MVLL) | 设定操作值的下限,当PID运算出的操作值低于设定的MVLL时,操作值等于MVLL | *1 | -50至2050 | -50至2050 | 当PID为ON。设定的MVLL或MVHL低于-50时,设定值会强制改为-50;设定的MVLL或MVHL高于2050时,设定值会强制改为2050。 | |
| *2 | -32767至32767 | -32767至32767 | |||||
| 9 | 操作值上限(MVHL) | 设定操作值的下限,当PID运算出的操作值高于设定的MVHL时,操作值等于MVHL | *1 | -50至2050 | -50至2050 | ||
| *2 | -32767至32767 | -32767至32767 | |||||
| 10 | 操作值变化率(∆MVL) | 限定前一操作值跟当前操作值的变化大小 | *1 | 0至2000 | 0至2000 | 操作值MV不作 | |
| *2 | -32767至32767 | -32767至32767 | |||||
| 11 | 过程值变化率(∆PVL) | 限定前一过程值跟当前过程值的变化大小 | *1 | 0至2000 | 0至2000 | 过程值PV不作 | |
| *2 | -32767至32767 | -32767至32767 | |||||
*2 当PID为OFF。
控制存储区数据列表
| 数据区 | 内容 | 备注 |
| +0 | 总回路数 | 公共区 |
| +1 | 每扫描周期运行数 | |
| +2 | PID的运行方式 | 回路1 |
| +3 | 采样周期(Ts) | |
| +4 | 比例常数(Kp) | |
| +5 | 积分常数(Ti) | |
| +6 | 微分常数(Td) | |
| +7 | 过滤系数 | |
| +8 | 操作值下限(MVLL) | |
| +9 | 操作值上限(MVHL) | |
| +10 | 操作值变化率(∆MVL) | |
| +11 | 过程值变化率(∆PVL) | |
| +12 | PID的运行方式 | 回路2 |
| +13 | 采样周期(Ts) | |
| +14 | 比例常数(Kp) | |
| +15 | 积分常数(Ti) | |
| +16 | 微分常数(Td) | |
| +17 | 过滤系数 | |
| +18 | 操作值下限(MVLL) | |
| +19 | 操作值上限(MVHL) | |
| +20 | 操作值变化率(∆MVL) | |
| +21 | 过程值变化率(∆PVL) |
| +22 | PID的运行方式 | 回路3 |
| +23 | 采样周期(Ts) | |
| 至 | 至 | |
| +m | PID的运行方式 | 回路n |
| +(m+1) | 采样周期(Ts) | |
| +(m+2) | 比例常数(Kp) | |
| +(m+3) | 积分常数(Ti) | |
| +(m+4) | 微分常数(Td) | |
| +(m+5) | 过滤系数 | |
| +(m+6) | 操作值下限(MVLL) | |
| +(m+7) | 操作值上限(MVHL) | |
| +(m+8) | 操作值变化率(∆MVL) | |
| +(m+9) | 过程值变化率(∆PVL) |
| 数据名称 | 描述 | 设定范围 | 备注 | ||
| 设定值 | SV | PID控制目标 | *1 | 0至2000 | 当PID为ON:如果SV小于0,则SV强制设定为0;如果SV大于2050,则SV强制设定为2050 |
| *2 | -32767至32767 | ||||
| 过程值 | PV | 采样值 | *1 | -50至2050 | 当PID为ON:如果PV小于-50,则PV强制设定为-50;如果PV大于2050,则SV强制设定为2050 |
| *2 | -32767至32767 | ||||
| 操作值 | MV | PID运算的输出值 | *1 | -50至2050 | - |
| *2 | -32767至32767 | ||||
| 经过滤波的过程值 | PV1 | 经过滤波处理的过程值 | *1 | -50至2050 | |
| *2 | -32767至32767 | ||||
| 手动操作值 | MVMAN | 设置成手动操作时输出的操作值 | *1 | -50至2050 | 当PID为ON:如果MVMAN小于-50,则MVMAN强制设定为-50;如果MVMAN大于2050,则MVMAN强制设定为2050
|
| *2 | -32767至32767 | ||||
| 手动/自动选择 | MAN/AUTO | 手动/自动选择 | 0:手动; 1:自动。 | 当设定值为0和1以外的值时,相应的PID不运行 | |
| 报警 | ALARM | MV和PV超出范围时报警,一旦设置,报警数据将保持到手动复位。 MV超出范围时:bit0位置1; PV超出范围时:bit1位置1 | - | ||
*2 当PID为OFF。
