FC198中计算筛掉最大值和最小值后的平均值,主要程序如下:
FOR index := 0 TO num DO
IF (Mode = TRUE) THEN //去掉最大最小值的平均值
IF ((index <> pmax) AND (index <> pmin)) THEN
all := all + tmp[index];
END_IF;
ELSE all := all + tmp[index];
END_IF;
END_FOR;
OUT:= all / INT_TO_REAL(num - 1);
(2)、非标信号处理
燃气轮机燃油流量信号电压幅值<10VDC,而FM350-2可辨识幅值>11VDC,通过自制信号调理模块放大输入电压幅值到24VDC,输入至FM350-2。
转子转速信号:频率30-3000Hz幅值为0.1V-50V正弦波信号,通过自制信号调理模块把输入信号转换为电压幅值为24V,频率不变的方波,输入至FM350-2。
燃油泄放阀控制信号:燃油泄放阀接收频率为5Hz,幅值为27V的单边方波,通过PWM(脉冲宽度调制)调节燃油泄放高速电磁阀的开启/关断。通过自制信号调理模块把西门子模拟量输出模块0-10V电压信号转换为频率为5Hz,幅值为27V的PWM信号。
(3)、软油门杆
在上位监控界面实现燃气轮机试车过程中油门杆功能。如图七 主操作屏(工况),使用WinCC图形编辑和VB脚本语言,链接变量为油门杆角度输出(模拟量输出变量)。
(4)、Excel报表
试验过程中需要输出指定工作状态下性能相关参数和性能指标参数至性能报表,见图十一。根据报表要求采用WinCC的VB脚本实现报表记录功能,利用控件Microsoft Common Dialog实现,程序示例如下:
Sub OnLButtonDown(Byval Item, Byval Flags, Byval x, Byval y)
Dim xls
Dim strDT
Set xls = CreateObject("Excel.Application")
xls.Workbooks.Open ("E:\性能计算\Form\性能计算.xls")
xls.Cells(2, 2).Value = Year(Date) & "/" & Month(Date) & "/" & Day(Date)
xls.Cells(2, 5).Value = Hour(Time) & ":" & Minute(Time) & ":" & Second(Time)
xls.Cells(2, 8).Value=HMIRuntime.Tags("CtrlPG/Perf_DataBuff.GK").Read
(以下省略数据记录……)
strDT = "(" & Year(Date) & "-" & Month(Date) & "-" & Day(Date) & " " & Hour(Time) & "." & Minute(Time) & "." & Second(Time) & ")"
HMIRuntime.Tags("PerformanceRptTime").Write strDT
xls.Workbooks(1).SaveAs ("E:\性能计算\" & "性能计算报表" & strDT& ".xls")
xls.Workbooks(1).Close
xls.Quit
Set xls = Nothing
End Sub
图十一 性能报表
在报表系统试用过程中,发现整个报表记录时Excel存取数据的时间大于下位性能计算程序执行周期,导致记录的性能数据不同步。于是在下位新建DB块作为性能报表数据记录缓冲区,当操作员点击“采集参数”按钮,性能数据记录到数据缓冲区中,再点击“记录性能报表”,把数据缓冲区中性能数据记录到EXCEL报表中。
增加上位按钮实现报表预览和报表打印功能。
“报表预览”按钮VB脚本代码:
Sub OnLButtonDown(Byval Item, Byval Flags, Byval x, Byval y)
Dim xls
Dim PerformanceRptTime
PerformanceRptTime = HMIRuntime.Tags("PerformanceRptTime").Read
Set xls = CreateObject("Excel.Application")
xls.Workbooks.Open ("E:\性能计算\性能计算报表" & PerformanceRptTime & ".xls")
xls.Application.Visible = True
xls.Workbooks(1).PrintPreview
xls.Workbooks(1).Close
xls.Quit
Set xls = Nothing
End Sub
“报表打印”VB脚本代码:
Sub OnLButtonDown(Byval Item, Byval Flags, Byval x, Byval y)
Dim xls
Dim PerformanceRptTime
PerformanceRptTime = HMIRuntime.Tags("PerformanceRptTime").Read
Set xls = CreateObject("Excel.Application")
xls.Workbooks.Open ("E:\性能计算\性能计算报表" & PerformanceRptTime & ".xls")
xls.Workbooks(1).PrintOut
xls.Workbooks(1).Close
xls.Quit
Set xls = Nothing
End Sub
(5)、喘振裕度
见图十二 喘振裕度,红线为喘振裕度稳态工作边界线,为已知曲线,在WinCC用户归档中建立喘振裕度稳态工作边界线的描点数据,即多组(X,Y)数据。在上位界面WinCC趋势控件中建立2条趋势,1条为用户归档中的喘振裕度稳态工作边界线,另1条为实时计算的喘振裕度。当实时喘振点在稳态工作边界线下方时,表示燃气轮机没有喘振。
图十二 喘振裕度
项目运行、应用体会 燃气轮机试验台控制系统于2008年6月开始投入试验台试车试用,经过半年多的使用和系统功能修改,于2009年1月基本完善系统,通过项目验收。试验台控制系统经过2009年到2010年1年多的使用,电器硬件,系统模块和控制程序工作稳定可靠,监控界面功能和操作在试车过程中很好地满足了客户中航工业西航的要求,与英国罗-罗等专业燃机控制系统的监控软件比较,量身定制的该燃气轮机控制系统已经达到行业先进水平,系统可扩展性和操作兼容性更强。
Siemens PCS7上下位集成一体化设计大大节约了上下位的兼容性工作。不过,Siemens的PCS7系统针对工业应用场合开发,处理的输入输出信号为标准信号,对燃气轮机某些特殊非标信号,需另加方式实现。