pid.txt

来自「非常使用的PID算法」· 文本 代码 · 共 35 行

TXT
35
字号
主程序:
LD     SM0.1
CALL   SBR_0
子程序:
LD     SM0.0
MOVR   0.75, VD104                 // 载入循环定点 = 注满75%
MOVR   0.25, VD112                 // 载入循环增益 = 0.25
MOVR   0.2, VD116                  // 载入循环采样时间 = 0.1秒
MOVR   30.0, VD120                 // 载入积分时间 = 30分钟

MOVR   0.0, VD124                  // 设置无微分计算
MOVB   200, SMB34                  // 为定时中断INT_0
                                   // 设置定时间隔(100毫秒)。
ATCH   INT_0, 10                   // 设置定时中断,激活
                                   // PID执行。
ENI                                // 启用中断
中断程序:
// 将PV标度为标准化实数
LD     SM0.0
MOVW   AIW0, AC0                   // 将整数数值转换为双整数
DTR    AC0, AC0                    // 将双整数转换为实数

/R     32000.0, AC0                // 使数值正常化
MOVR   AC0, VD100                  // 将正常化PV存储在循环表中
LD     I0.0
PID    VB100, 0
LD     SM0.0
MOVR   VD108, AC0                  // 将循环输出移至累加器
*R     32000.0, AC0                // 标度累加器中的数值
ROUND  AC0, AC0                    // 将实数转换为双整数

DTI    AC0, AC0                    // 将双整数转换为整数
MOVW   AC0, AQW0                   // 将数值写入模拟输出

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?