m_sng1SvPvdx2 = m_sng1SvPvdx2+m_sng1SvPvdx m_sng1SvPvdx1 = m_sng1SvPvdx
'设定m_sng1SvPvdx1的初值为111111;标记是否第一次进行PID计算,防止m_sng1SvPvdx和1m_sng1SvPvdx2的值为0
If m_sng1SvPvdx1 = 111111 Then m_sng1SvPvdx1 = m_sng1SvPvdx m_sng1SvPvdx2 = m_sng1SvPvdx EndIf
'* 进行PID运算,sng1ParI=0 和 sng1ParI<>0的算法不一样
'sng1ControlT :调节周期,和设备的采集周期相同(单位为:秒)
If sng1ParI <> 0 Then
sng1Outdx = sng1ParP * (m_sng1SvPvdx - m_sng1SvPvdx1 + m_sng1SvPvdx * sng1ControlT / sng1ParI + (m_sng1SvPvdx - 2 * m_sng1SvPvdx1 + m_sng1SvPvdx2) * sng1ParD / sng1ControlT) Else
sng1Outdx = sng1ParP * (m_sng1SvPvdx - m_sng1SvPvdx1 + (m_sng1SvPvdx - 2 * m_sng1SvPvdx1 + m_sng1SvPvdx2) * sng1ParD / sng1ControlT) EndIf
'* 处在死区范围,输出值保持不变
If !Abs(m_sng1SvPvdx) < !Abs(sng1ChangeMin) Then sng1Outdx = 0
'* 当PID控制的调节方向方向不一样时,输出值的处理方法不一致 If sng1CtlDirection = 1 Then
sng1OP = sng1OP + sng1Outdx '* 正向控制时的超调处理
If !Abs(m_sng1SvPvdx) >= sng1ChangeMax And sng1ChangeMax > 0 Then If m_sng1SvPvdx > 0 Then sng1OP = sng1OutPutMax EndIf Else
sng1OP = sng1OP - sng1Outdx
'* 反向控制时的超调处理
If !Abs(m_sng1SvPvdx) >= sng1ChangeMax And sng1ChangeMax > 0 Then If m_sng1SvPvdx < 0 Then sng1OP = sng1OutPutMax EndIf EndIf
- 16 -
'* OP值必须在设定的限值范围之内
If sng1OP < sng1OpMin Then sng1OP = sng1OpMin If sng1OP > sng1OpMax Then sng1OP = sng1OpMax !SaveDataInit()
!SaveSingleDataInit(sng1ParP) !SaveSingleDataInit(sng1ParI) !SaveSingleDataInit(sng1ParD) !SaveData(sng1OP )
8安全监控:
炉膛安全监控
执行点火程序,并对供风系统、引风系统、炉膛压力、汽包水位等进行监视,对出现的危险情况进行报警、执行相应的联锁程序,记录事故前后的相关数据。锅炉起停和正常运行时,一旦检测到危及系统安全的条件时,立即进行动作,切断主燃料,指出首次跳闸原因,并给出声光报警信号,进行有关的联锁和顺控动作,以保证锅炉的安全。当出现以下情况时,燃烧系统停止。 a.燃烧用供风故障;
b.引风机故障或烟气通道阻塞; c.炉膛压力过高或过低; d.汽包水位低于下限;
e.过热器出口温度高于上限; f.按下紧急按钮(MFT)
总结
通过本次实验及工程系统的设计,是我对MCGS组态软件的认识从理论知识转化
为具体的实践过程,对各功能模块能够更熟练的运用,把抽象的知识具体化、实物化。在实验中,我能重分运用所学知识构建系统模型,并注意与同学间的交流。实验很大程度上提高了我的动手实际操作能力、团队合作能力以及编程能力,同时,锻炼了我独立思考的能力。
在实验中我也曾遇到一些问题,如编程方法不灵活,对有些模块的性能不是彻底的了解,或者属性设置时不全面以及接线不熟练等问题,但经过不断地练习操作后这些情况都有了很大的改善,最终在指导老师的帮助下顺利的完成了实验。通过这次实习对MCGS有了初步的认识和掌握,觉得MCGS是一种有效的仿真软件。MCGS工控组态软件的功能和特点可归纳如下:概念简单,易于理解和使用,功能齐全,便于方案设计,实时性与并行处理,建立实时数据库,便于用户分步组态等功能。在这次实习中我受益颇丰。
- 17 -