·SBR0·(调相时供气压水子程序)LDN I0.4 //转轮室水位低于下限值R Q0.1,1 //关闭主给气阀LD I0.3 //转轮室水位高于上限值S Q0.1,1 //开启主给气阀LD V5000.1 //机组进入发电运行状态O V5000.2 //机组停机复归CRET //供气压水子程序有条件返回
·SBR1·(甩负荷时输气治抬机子程序)LD M0.1LPSS Q0.0,1 //电动进气调节阀加上工作电源LRDA SM0.1 //**扫描置1S Q0.1,1 //主给气阀立即开至全开LPPXORD AC0,AC0 //清空累加器AC0XORD AC1,AC1 //清空累加器AC1XORD AC2,AC2 //清空累加器AC2XORD AC3,AC3 //清空累加器AC3MOVW AIW6,AC3 //把4号压力传感器信号(模拟量)存入累加器AC3/I 4,AC3 //取4号压力传感器信号量的1/4MOVW AIW4,AC2 //把3号压力传感器信号(模拟量)存入累加器AC2/I 4,AC2 //取3号压力传感器信号量的1/4MOVW AIW2,AC1 //把2号压力传感器信号(模拟量)存入累加器AC1/I 4,AC1 //取2号压力传感器信号量的1/4MOVW AIW0,AC0 //把1号压力传感器信号(模拟量)存入累加器AC0/I 4,AC0 //取1号压力传感器信号量的1/4+I AC1,AC0+I AC2,AC0+I AC3,AC0ITD AC0,AC0 //把16位整数转换成32位整数DTR AC0,AC0 //把32位整数转换成实数/R 32000.0,AC0 //标准化AC0中的值作为PID运算设定值SPn(0.0~1.0之间)LD SM0.1A M0.1CALL SBR_2 //调用初始化(回路表赋值)子程序LD V5000.2 //机组停机复归R Q0.1,1 //主给气阀立即全关
·SBR_2·(初始化/回路表赋值子程序)LD SM0.0MOVR AC0,VD104 //装入回路表设定值SPn(0.0~1.0之间)/甩前压强大小值MOVR Kc,VD112 //装入回路增益Kc(常数)MOVR 0.004,VD116 //装入采样时间0.004sMOVR Ti,VD120 //装入积分时间Ti分钟MOVR Td,VD124 //装入微分时间Td分钟MOVR 4,SMB34 //设定定时中断0的时间间隔为4msATCH INT_0,10 //设置定时中断以定时执行PID指令ENI //允许中断LD V5000.2 //机组停机复归CRET
·INT_0·(中断程序)LD SM0.0XORD AC0,AC0XORD AC1,AC1XORD AC2,AC2 XORD AC3,AC3 MOVW AIW6,AC3/I 4,AC3MOVW AIW4,AC2/I 4,AC2MOVW AIW2,AC1/I 4,AC1 MOVW AIW0,AC0/I 4,AC0 +I AC1,AC0+I AC2,AC0+I AC3,AC0 //此时AC0中的数值为转轮室顶盖下压强之平均值ITD AC0,AC0 //把16位整数转换成32位整数DTR AC0,AC0 //把32位整数转换成实数/R 32000.0,AC0 //标准化AC0中的值作为PID运算过程变量PVn(0.0~1.0之间)MOVR AC0,VD100 //将AC0中的值存入回路表VD100LD M0.1PID VB100,0 //执行PID指令LD SM0.0XORD AC0,AC0 //清空累加器AC0MOVR VD108,AC0 // 把PID运算输出送到AC0(输出Mn,在0.0~1.0之间)*R 32000.0,AC0 //将AC0中的值刻度化ROUND AC0,AC0 //四舍五入将实数转换成32位整数DTI AC0,AC0 //将32位整数转换成16位整数MOVW AC0,AQW0 //将16位整数值写到模拟量输出寄存器,去控制调节阀进气开度LD V5000.2 //机组停机复归CRETI //中断返回
程序编制说明采用主程序、子程序、中断程序的程序结构形式,起到优化程序结构,减小扫描周期时间的效果。主程序OB1的功能是完成本合成神经元小系统控制,**子程序SBR0、SBR1的功能是分别完成调相压水控制和甩负荷防治抬机控制;SBR2是**子程序SBR1下嵌套的二级子程序,其功能是初始化给PID回路表赋值;INT0则是**子程序SBR1下对甩负荷后向转轮室的进气量进行PID控制。辅给气阀由不带电工作的ZT电磁铁驱动,故安排Q0.3、Q0.4分别控制开启、关闭;主给气阀是需工作电源的电动调节阀,为防止阀关闭进程中未到全关位置失电,采取关阀启动后延时5S再切除电源;为防止不调相期间向转轮室“乱”给气,程序中在调相结束时切除电极式水位信号器DSX电源;主给气阀在甩负荷治抬机时初始化即开启至全开,以后各扫描周期由PID输出控制其开度;使用AC0、AC1、AC2、AC3时先清零,读入采样数值后取其1/4再累加得到平均值,是为了防止数值溢出;SBR1中使用LPS、LRD、LPP是为了减小扫描时间[20>。